Add tests 57/14857/1
authorTalio <tali.orenbach@amdocs.com>
Sun, 24 Sep 2017 07:59:37 +0000 (10:59 +0300)
committertalio <tali.orenbach@amdocs.com>
Sun, 24 Sep 2017 07:59:43 +0000 (10:59 +0300)
Add test and test files for port mirroring

Issue - ID : SDC-351

Change-Id: I67fd8397a4fe41eb9979b8f1435fedb413328b70
Signed-off-by: talio <tali.orenbach@amdocs.com>
67 files changed:
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/java/org/openecomp/sdc/enrichment/impl/tosca/PortMirroringEnricherTest.java [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/catalogInstance/in/GlobalSubstitutionTypesServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/catalogInstance/in/MainServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/catalogInstance/in/Nested_pd_serverServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/catalogInstance/out/GlobalSubstitutionTypesServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/catalogInstance/out/MainServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/catalogInstance/out/Nested_pd_serverServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/in/GlobalSubstitutionTypesServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/in/MainServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/in/Nested_pd_serverServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/in/Nested_pd_server_1ServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/in/Nested_pd_server_2ServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/in/Nested_pd_server_3ServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/in/Nested_pd_server_4ServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/in/Nested_pd_server_5ServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/in/Nested_pd_server_6ServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/in/Nested_pd_server_7ServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/in/nested-no-computeServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/in/nested1ServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/in/nested2ServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/in/nested3ServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/out/GlobalSubstitutionTypesServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/out/MainServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/out/Nested_pd_serverServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/out/Nested_pd_server_1ServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/out/Nested_pd_server_2ServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/out/Nested_pd_server_3ServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/out/Nested_pd_server_4ServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/out/Nested_pd_server_5ServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/out/Nested_pd_server_6ServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/out/Nested_pd_server_7ServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/out/nested-no-computeServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/out/nested1ServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/out/nested2ServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/out/nested3ServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/oneLevel/in/GlobalSubstitutionTypesServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/oneLevel/in/MainServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/oneLevel/in/Nested_computeServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/oneLevel/in/nested-pcm_v0.1ServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/oneLevel/out/GlobalSubstitutionTypesServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/oneLevel/out/MainServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/oneLevel/out/Nested_computeServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/oneLevel/out/nested-pcm_v0.1ServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/noPorts/in/GlobalSubstitutionTypesServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/noPorts/in/MainServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/noPorts/in/Nested_pd_serverServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/noPorts/out/GlobalSubstitutionTypesServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/noPorts/out/MainServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/noPorts/out/Nested_pd_serverServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/scalingInstance/in/GlobalSubstitutionTypesServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/scalingInstance/in/MainServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/scalingInstance/in/Nested_pd_serverServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/scalingInstance/out/GlobalSubstitutionTypesServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/scalingInstance/out/MainServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/scalingInstance/out/Nested_pd_serverServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/singleSubstitution/diffPortType/in/GlobalSubstitutionTypesServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/singleSubstitution/diffPortType/in/MainServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/singleSubstitution/diffPortType/in/Nested_pd_serverServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/singleSubstitution/diffPortType/out/GlobalSubstitutionTypesServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/singleSubstitution/diffPortType/out/MainServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/singleSubstitution/diffPortType/out/Nested_pd_serverServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/singleSubstitution/samePortType/in/GlobalSubstitutionTypesServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/singleSubstitution/samePortType/in/MainServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/singleSubstitution/samePortType/in/Nested_pd_serverServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/singleSubstitution/samePortType/out/GlobalSubstitutionTypesServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/singleSubstitution/samePortType/out/MainServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/singleSubstitution/samePortType/out/Nested_pd_serverServiceTemplate.yaml [new file with mode: 0644]

diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/java/org/openecomp/sdc/enrichment/impl/tosca/PortMirroringEnricherTest.java b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/java/org/openecomp/sdc/enrichment/impl/tosca/PortMirroringEnricherTest.java
new file mode 100644 (file)
index 0000000..0a8fe43
--- /dev/null
@@ -0,0 +1,114 @@
+package org.openecomp.sdc.enrichment.impl.tosca;
+
+import org.openecomp.sdc.datatypes.error.ErrorMessage;
+import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
+import org.testng.annotations.AfterClass;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+import java.io.IOException;
+import java.util.List;
+import java.util.Map;
+
+public class PortMirroringEnricherTest extends BaseToscaEnrichmentTest {
+
+  private PortMirroringEnricher portMirroringEnricher;
+
+  @BeforeMethod(alwaysRun = true)
+  public void init() throws IOException {
+    portMirroringEnricher = new PortMirroringEnricher();
+  }
+
+  @Test
+  public void testEnrichNoPorts() throws Exception {
+    outputFilesPath = "/mock/enrichPortMirroring/noPorts/out/";
+    ToscaServiceModel toscaServiceModel =
+        loadToscaServiceModel("/mock/enrichPortMirroring/noPorts/in/",
+            "/mock/toscaGlobalServiceTemplates/",
+            "MainServiceTemplate.yaml");
+    Map<String, List<ErrorMessage>> errors =
+        portMirroringEnricher.enrich(toscaServiceModel);
+
+    compareActualAndExpectedModel(toscaServiceModel);
+  }
+
+  @Test
+  public void testEnrichSingleSubstitutionSamePortType() throws Exception {
+    outputFilesPath = "/mock/enrichPortMirroring/singleSubstitution/samePortType/out/";
+    ToscaServiceModel toscaServiceModel =
+        loadToscaServiceModel("/mock/enrichPortMirroring/singleSubstitution/samePortType/in",
+            "/mock/toscaGlobalServiceTemplates/",
+            "MainServiceTemplate.yaml");
+    Map<String, List<ErrorMessage>> errors =
+        portMirroringEnricher.enrich(toscaServiceModel);
+
+    compareActualAndExpectedModel(toscaServiceModel);
+  }
+
+  @Test
+  public void testEnrichSingleSubstitutionDiffPortType() throws Exception {
+    outputFilesPath = "/mock/enrichPortMirroring/singleSubstitution/diffPortType/out/";
+    ToscaServiceModel toscaServiceModel =
+        loadToscaServiceModel("/mock/enrichPortMirroring/singleSubstitution/diffPortType/in",
+            "/mock/toscaGlobalServiceTemplates/",
+            "MainServiceTemplate.yaml");
+    Map<String, List<ErrorMessage>> errors =
+        portMirroringEnricher.enrich(toscaServiceModel);
+
+    compareActualAndExpectedModel(toscaServiceModel);
+  }
+
+  @Test
+  public void testEnrichScalingInstance() throws Exception {
+    outputFilesPath = "/mock/enrichPortMirroring/scalingInstance/out/";
+    ToscaServiceModel toscaServiceModel =
+        loadToscaServiceModel("/mock/enrichPortMirroring/scalingInstance/in",
+            "/mock/toscaGlobalServiceTemplates/",
+            "MainServiceTemplate.yaml");
+    Map<String, List<ErrorMessage>> errors =
+        portMirroringEnricher.enrich(toscaServiceModel);
+
+    compareActualAndExpectedModel(toscaServiceModel);
+  }
+
+  @Test
+  public void testEnrichCatalogInstance() throws Exception {
+    outputFilesPath = "/mock/enrichPortMirroring/catalogInstance/out/";
+    ToscaServiceModel toscaServiceModel =
+        loadToscaServiceModel("/mock/enrichPortMirroring/catalogInstance/in",
+            "/mock/toscaGlobalServiceTemplates/",
+            "MainServiceTemplate.yaml");
+    Map<String, List<ErrorMessage>> errors =
+        portMirroringEnricher.enrich(toscaServiceModel);
+
+    compareActualAndExpectedModel(toscaServiceModel);
+  }
+
+  @Test
+  public void testEnrichNestedOneLevel() throws Exception {
+    outputFilesPath = "/mock/enrichPortMirroring/nested/oneLevel/out/";
+    ToscaServiceModel toscaServiceModel =
+        loadToscaServiceModel("/mock/enrichPortMirroring/nested/oneLevel/in",
+            "/mock/toscaGlobalServiceTemplates/",
+            "MainServiceTemplate.yaml");
+    Map<String, List<ErrorMessage>> errors =
+        portMirroringEnricher.enrich(toscaServiceModel);
+
+    compareActualAndExpectedModel(toscaServiceModel);
+  }
+
+  @Test
+  public void testEnrichNestedMultiLevel() throws Exception {
+    outputFilesPath = "/mock/enrichPortMirroring/nested/multiLevel/out/";
+    ToscaServiceModel toscaServiceModel =
+        loadToscaServiceModel("/mock/enrichPortMirroring/nested/multiLevel/in",
+            "/mock/toscaGlobalServiceTemplates/",
+            "MainServiceTemplate.yaml");
+    Map<String, List<ErrorMessage>> errors =
+        portMirroringEnricher.enrich(toscaServiceModel);
+
+    compareActualAndExpectedModel(toscaServiceModel);
+  }
+
+}
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/catalogInstance/in/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/catalogInstance/in/GlobalSubstitutionTypesServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..c24fab0
--- /dev/null
@@ -0,0 +1,422 @@
+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
+      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
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/catalogInstance/in/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/catalogInstance/in/MainServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..095a6c1
--- /dev/null
@@ -0,0 +1,214 @@
+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
+      type: string
+      description: flavor name of PD instance
+      default: m3.xlarge
+    dummy_net_name_1:
+      label: csb ineternal cidr
+      hidden: false
+      immutable: false
+      type: string
+      description: csb internal cidr
+      default: mog_dummy_1
+    availabilityzone_name:
+      label: availabilityzone name
+      hidden: false
+      immutable: false
+      type: string
+      description: availabilityzone name
+      default: nova
+    packet_internal_network_name:
+      label: packet internal network name
+      hidden: false
+      immutable: false
+      type: string
+      description: name of the network
+    pd_image_name:
+      label: image name
+      hidden: false
+      immutable: false
+      type: string
+      description: PD image name
+      default: MOG_BASE_8.0
+    pd_server_names:
+      label: PD server names
+      hidden: false
+      immutable: false
+      type: list
+      description: name of the PD instance
+      default:
+      - ZRDM1MOGX01MPD001
+      - ZRDM1MOGX01MPD002
+      - ' ZRDM1MOGX01MPD003'
+      entry_schema:
+        type: string
+    oam_net_name:
+      label: oam network name
+      hidden: false
+      immutable: false
+      type: string
+      description: name of the oam network
+  node_templates:
+    packet_external_network:
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+      properties:
+        network_name:
+          get_input: packet_internal_network_name
+    packet_internal_network:
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+      properties:
+        network_name:
+          get_input: packet_internal_network_name
+    abstract_pd_server_2:
+      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
+          - 2
+        vm_flavor_name:
+          get_input: pd_flavor_name
+        port_pd01_port_mac_requirements:
+          mac_count_required:
+            is_required: false
+        vm_image_name:
+          get_input: pd_image_name
+        port_pd01_port_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        port_pd01_port_network:
+        - packet_external_network
+        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_pd_server_pd01_port:
+          capability: tosca.capabilities.network.Linkable
+          node: packet_external_network
+          relationship: tosca.relationships.network.LinksTo
+    network_policy_server:
+      type: org.openecomp.resource.vfc.rules.nodes.heat.network.contrail.NetworkRules
+      properties:
+        name:
+          get_input: dummy_net_name_1
+    abstract_pd_server_0:
+      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
+        port_pd01_port_mac_requirements:
+          mac_count_required:
+            is_required: false
+        vm_image_name:
+          get_input: pd_image_name
+        port_pd01_port_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        port_pd01_port_network:
+        - packet_internal_network
+        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_pd_server_pd01_port:
+          capability: tosca.capabilities.network.Linkable
+          node: packet_internal_network
+          relationship: tosca.relationships.network.LinksTo
+    abstract_pd_server_1:
+      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:
+        - packet_internal_network
+        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_pd_server_pd01_port:
+          capability: tosca.capabilities.network.Linkable
+          node: packet_internal_network
+          relationship: tosca.relationships.network.LinksTo
+  groups:
+    hot-mog-0108-bs1271_group:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/hot-mog-0108-bs1271.yml
+        description: heat template that creates MOG stack
+      members:
+      - packet_external_network
+      - packet_internal_network
+      - network_policy_server
+      - abstract_pd_server_0
+      - abstract_pd_server_1
+      - abstract_pd_server_2
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/catalogInstance/in/Nested_pd_serverServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/catalogInstance/in/Nested_pd_serverServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..fc9395c
--- /dev/null
@@ -0,0 +1,294 @@
+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.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.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
+      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-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/catalogInstance/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/catalogInstance/out/GlobalSubstitutionTypesServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..34406ed
--- /dev/null
@@ -0,0 +1,518 @@
+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_pd01_port_0_floating_ip_count:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_0_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_0_network_role_tag:
+        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_pd01_port_0_ip_count:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      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_1_floating_ip_count:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_1_ip_count:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_1_mac_count:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_1_network_role_tag:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_0_mac_count:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_1_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      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_1:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_pd_server_pd01_port_1:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_pd_server_pd01_port_0:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_pd_server_pd01_port_0:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    capabilities:
+      binding_pd_server_pd01_port_0:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      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
+      binding_pd_server_pd01_port_1:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - 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.packets_pd_server_pd01_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.iops_pd_server:
+        type: org.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_1:
+        type: org.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_1:
+        type: org.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_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_pd_server_pd01_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_pd_server_pd01_port_1:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_pd_server_pd01_port_1:
+        type: org.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_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      vcpus_pd_server:
+        type: org.openecomp.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
+      attachment_pd_server_pd01_port_0:
+        type: tosca.capabilities.Attachment
+        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
+      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.incoming.packets_pd_server_pd01_port_1:
+        type: org.openecomp.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.outgoing.bytes.rate_pd_server_pd01_port_1:
+        type: org.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_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_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
+      network.incoming.bytes_pd_server_pd01_port_1:
+        type: org.openecomp.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
+      network.outgoing.bytes_pd_server_pd01_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_pd_server_pd01_port_1:
+        type: org.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_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.requests.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
+      network.outpoing.packets_pd_server_pd01_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_pd_server_pd01_port_1:
+        type: org.openecomp.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
+      feature_pd_server_pd01_port_1:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_pd_server_pd01_port_0:
+        type: tosca.capabilities.Node
+        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
+      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
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/catalogInstance/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/catalogInstance/out/MainServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..095a6c1
--- /dev/null
@@ -0,0 +1,214 @@
+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
+      type: string
+      description: flavor name of PD instance
+      default: m3.xlarge
+    dummy_net_name_1:
+      label: csb ineternal cidr
+      hidden: false
+      immutable: false
+      type: string
+      description: csb internal cidr
+      default: mog_dummy_1
+    availabilityzone_name:
+      label: availabilityzone name
+      hidden: false
+      immutable: false
+      type: string
+      description: availabilityzone name
+      default: nova
+    packet_internal_network_name:
+      label: packet internal network name
+      hidden: false
+      immutable: false
+      type: string
+      description: name of the network
+    pd_image_name:
+      label: image name
+      hidden: false
+      immutable: false
+      type: string
+      description: PD image name
+      default: MOG_BASE_8.0
+    pd_server_names:
+      label: PD server names
+      hidden: false
+      immutable: false
+      type: list
+      description: name of the PD instance
+      default:
+      - ZRDM1MOGX01MPD001
+      - ZRDM1MOGX01MPD002
+      - ' ZRDM1MOGX01MPD003'
+      entry_schema:
+        type: string
+    oam_net_name:
+      label: oam network name
+      hidden: false
+      immutable: false
+      type: string
+      description: name of the oam network
+  node_templates:
+    packet_external_network:
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+      properties:
+        network_name:
+          get_input: packet_internal_network_name
+    packet_internal_network:
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+      properties:
+        network_name:
+          get_input: packet_internal_network_name
+    abstract_pd_server_2:
+      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
+          - 2
+        vm_flavor_name:
+          get_input: pd_flavor_name
+        port_pd01_port_mac_requirements:
+          mac_count_required:
+            is_required: false
+        vm_image_name:
+          get_input: pd_image_name
+        port_pd01_port_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        port_pd01_port_network:
+        - packet_external_network
+        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_pd_server_pd01_port:
+          capability: tosca.capabilities.network.Linkable
+          node: packet_external_network
+          relationship: tosca.relationships.network.LinksTo
+    network_policy_server:
+      type: org.openecomp.resource.vfc.rules.nodes.heat.network.contrail.NetworkRules
+      properties:
+        name:
+          get_input: dummy_net_name_1
+    abstract_pd_server_0:
+      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
+        port_pd01_port_mac_requirements:
+          mac_count_required:
+            is_required: false
+        vm_image_name:
+          get_input: pd_image_name
+        port_pd01_port_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        port_pd01_port_network:
+        - packet_internal_network
+        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_pd_server_pd01_port:
+          capability: tosca.capabilities.network.Linkable
+          node: packet_internal_network
+          relationship: tosca.relationships.network.LinksTo
+    abstract_pd_server_1:
+      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:
+        - packet_internal_network
+        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_pd_server_pd01_port:
+          capability: tosca.capabilities.network.Linkable
+          node: packet_internal_network
+          relationship: tosca.relationships.network.LinksTo
+  groups:
+    hot-mog-0108-bs1271_group:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/hot-mog-0108-bs1271.yml
+        description: heat template that creates MOG stack
+      members:
+      - packet_external_network
+      - packet_internal_network
+      - network_policy_server
+      - abstract_pd_server_0
+      - abstract_pd_server_1
+      - abstract_pd_server_2
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/catalogInstance/out/Nested_pd_serverServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/catalogInstance/out/Nested_pd_serverServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..fc9395c
--- /dev/null
@@ -0,0 +1,294 @@
+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.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.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
+      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-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/in/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/in/GlobalSubstitutionTypesServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..c6c6d41
--- /dev/null
@@ -0,0 +1,8572 @@
+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_4:
+    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
+      port_ps02_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      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_ps02_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_ps02_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_ps02_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_ps02_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_ps02_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_ps02_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_ps02_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      compute_pd_server_user_data_format:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_ps02_port_network:
+        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_ps02_port:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_pd_server_ps02_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
+      binding_pd_server_ps02_port:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - 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.incoming.bytes.rate_pd_server_ps02_port:
+        type: org.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
+      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
+      network.incoming.packets.rate_pd_server_ps02_port:
+        type: org.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
+      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
+      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.incoming.bytes_pd_server_ps02_port:
+        type: org.openecomp.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
+      attachment_pd_server_ps02_port:
+        type: tosca.capabilities.Attachment
+        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
+      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
+      feature_pd_server_ps02_port:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_pd_server_ps02_port:
+        type: org.openecomp.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
+      network.outgoing.packets.rate_pd_server_ps02_port:
+        type: org.openecomp.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_ps02_port:
+        type: org.openecomp.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
+      network.outgoing.bytes_pd_server_ps02_port:
+        type: org.openecomp.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
+      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.incoming.packets_pd_server_ps02_port:
+        type: org.openecomp.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_5:
+    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
+      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_6:
+    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_pd02_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd02_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_pd02_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd02_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd02_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd02_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd02_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_pd02_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_pd02_port_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      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_pd02_port:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_pd_server_pd02_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
+      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
+      binding_pd_server_pd02_port:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      network.outgoing.packets.rate_pd_server_pd02_port:
+        type: org.openecomp.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.bytes_pd_server_pd02_port:
+        type: org.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_pd02_port:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_pd_server_pd02_port:
+        type: org.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_pd02_port:
+        type: org.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
+      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
+      network.incoming.packets_pd_server_pd02_port:
+        type: org.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
+      network.outpoing.packets_pd_server_pd02_port:
+        type: org.openecomp.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
+      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
+      attachment_pd_server_pd02_port:
+        type: tosca.capabilities.Attachment
+        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
+      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
+      network.incoming.packets.rate_pd_server_pd02_port:
+        type: org.openecomp.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
+      network.incoming.bytes_pd_server_pd02_port:
+        type: org.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:
+    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_pd02_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd02_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_pd02_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd02_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd02_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd02_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd02_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_pd02_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_pd02_port_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      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_pd02_port:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_pd_server_pd02_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
+      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
+      binding_pd_server_pd02_port:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      network.outgoing.packets.rate_pd_server_pd02_port:
+        type: org.openecomp.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.bytes_pd_server_pd02_port:
+        type: org.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_pd02_port:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_pd_server_pd02_port:
+        type: org.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_pd02_port:
+        type: org.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
+      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
+      network.incoming.packets_pd_server_pd02_port:
+        type: org.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
+      network.outpoing.packets_pd_server_pd02_port:
+        type: org.openecomp.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
+      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
+      attachment_pd_server_pd02_port:
+        type: tosca.capabilities.Attachment
+        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
+      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
+      network.incoming.packets.rate_pd_server_pd02_port:
+        type: org.openecomp.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
+      network.incoming.bytes_pd_server_pd02_port:
+        type: org.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_7:
+    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
+      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
+      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
+      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_2:
+    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_pd02_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd02_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_pd02_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd02_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd02_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd02_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd02_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_pd02_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_pd02_port_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      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_pd02_port:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_pd_server_pd02_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
+      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
+      binding_pd_server_pd02_port:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      network.outgoing.packets.rate_pd_server_pd02_port:
+        type: org.openecomp.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.bytes_pd_server_pd02_port:
+        type: org.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_pd02_port:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_pd_server_pd02_port:
+        type: org.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_pd02_port:
+        type: org.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
+      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
+      network.incoming.packets_pd_server_pd02_port:
+        type: org.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
+      network.outpoing.packets_pd_server_pd02_port:
+        type: org.openecomp.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
+      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
+      attachment_pd_server_pd02_port:
+        type: tosca.capabilities.Attachment
+        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
+      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
+      network.incoming.packets.rate_pd_server_pd02_port:
+        type: org.openecomp.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
+      network.incoming.bytes_pd_server_pd02_port:
+        type: org.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.nested-no-compute:
+    derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+    properties:
+      cmaui_names:
+        type: list
+        description: CMAUI1, CMAUI2 server names
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      p1:
+        type: string
+        description: UID of OAM network
+        required: true
+        status: SUPPORTED
+      p2:
+        type: string
+        description: UID of OAM network
+        required: true
+        status: SUPPORTED
+      cmaui_image:
+        type: string
+        description: Image for CMAUI server
+        required: true
+        status: SUPPORTED
+      cmaui_flavor:
+        type: string
+        description: Flavor for CMAUI server
+        required: true
+        status: SUPPORTED
+      packet_internal_network_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      packet_external_network_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      security_group_name:
+        type: list
+        description: CMAUI1, CMAUI2 server names
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      availability_zone_0:
+        type: string
+        description: availabilityzone name
+        required: true
+        status: SUPPORTED
+      cmaui_oam_ips:
+        type: string
+        required: true
+        status: SUPPORTED
+      net:
+        type: string
+        required: true
+        status: SUPPORTED
+    attributes:
+      no_compute_attr_1:
+        type: string
+        description: no_compute_attr_1
+        status: SUPPORTED
+    requirements:
+    - dependency_cmaui_port_2:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - binding_cmaui_port_2:
+        capability: tosca.capabilities.network.Bindable
+        relationship: tosca.relationships.network.BindsTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_packet_external_network:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_packet_internal_network:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_cmaui_port_1:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - binding_cmaui_port_1:
+        capability: tosca.capabilities.network.Bindable
+        relationship: tosca.relationships.network.BindsTo
+        occurrences:
+        - 1
+        - 1
+    capabilities:
+      network.incoming.packets_cmaui_port_2:
+        type: org.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_cmaui_port_1:
+        type: org.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_cmaui_port_1:
+        type: org.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_cmaui_port_2:
+        type: org.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_cmaui_port_1:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cmaui_port_2:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      end_point_packet_internal_network:
+        type: tosca.capabilities.Endpoint
+        occurrences:
+        - 1
+        - UNBOUNDED
+      link_packet_internal_network:
+        type: tosca.capabilities.network.Linkable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_packet_internal_network:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      end_point_packet_external_network:
+        type: tosca.capabilities.Endpoint
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_cmaui_port_2:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_cmaui_port_2:
+        type: org.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_cmaui_port_1:
+        type: org.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_cmaui_port_2:
+        type: org.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_cmaui_port_1:
+        type: org.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_cmaui_port_1:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_cmaui_port_1:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      binding_cmaui_port_2:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      network.incoming.bytes.rate_cmaui_port_1:
+        type: org.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_cmaui_port_2:
+        type: org.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_packet_internal_network:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_cmaui_port_1:
+        type: org.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_cmaui_port_2:
+        type: org.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_cmaui_port_2:
+        type: org.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_cmaui_port_1:
+        type: org.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_packet_external_network:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes_cmaui_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      link_packet_external_network:
+        type: tosca.capabilities.network.Linkable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_packet_external_network:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes_cmaui_port_1:
+        type: org.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_3:
+    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
+      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.nested1:
+    derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+    properties:
+      pd_flavor_name:
+        type: string
+        description: Flavor for CMAUI server
+        required: true
+        status: SUPPORTED
+      p1:
+        type: string
+        description: UID of OAM network
+        required: true
+        status: SUPPORTED
+      p2:
+        type: string
+        description: UID of OAM network
+        required: true
+        status: SUPPORTED
+      availabilityzone_name:
+        type: string
+        description: availabilityzone name
+        required: true
+        status: SUPPORTED
+      security_group_name:
+        type: list
+        description: CMAUI1, CMAUI2 server names
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      pd_image_name:
+        type: string
+        description: Image for CMAUI server
+        required: true
+        status: SUPPORTED
+      pd_server_names:
+        type: list
+        description: CMAUI1, CMAUI2 server names
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      net:
+        type: string
+        required: true
+        status: SUPPORTED
+      oam_net_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      jsa_name:
+        type: string
+        description: network name of jsa log network
+        required: true
+        status: SUPPORTED
+    requirements:
+    - dependency_ps02_port_0:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_ps02_port_0:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_pd01_port_1:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - binding_pd01_port_1:
+        capability: tosca.capabilities.network.Bindable
+        relationship: tosca.relationships.network.BindsTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_pd01_port_0:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_packet_internal_network_nested_1:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_server_pd_2:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - local_storage_server_pd_2:
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_server_pd_1:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - local_storage_server_pd_1:
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_test_nested2Level:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_pd01_port_0_test_nested2Level:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_pd01_port_0_test_nested2Level:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_server_pd_2_test_nested2Level:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - local_storage_server_pd_2_test_nested2Level:
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_server_pd_1_test_nested2Level:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - local_storage_server_pd_1_test_nested2Level:
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_pd02_port_0_test_nested2Level:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_pd02_port_0_test_nested2Level:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_test_nested3Level_test_nested2Level:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_pd01_port_0_test_nested3Level_test_nested2Level:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_pd01_port_0_test_nested3Level_test_nested2Level:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_server_pd_2_test_nested3Level_test_nested2Level:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - local_storage_server_pd_2_test_nested3Level_test_nested2Level:
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_server_pd_1_test_nested3Level_test_nested2Level:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - local_storage_server_pd_1_test_nested3Level_test_nested2Level:
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_pd02_port_0_test_nested3Level_test_nested2Level:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_pd02_port_0_test_nested3Level_test_nested2Level:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_test_nested_no_compute_test_nested3Level_test_nested2Level:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_cmaui_port_2_test_nested_no_compute_test_nested3Level_test_nested2Level:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - binding_cmaui_port_2_test_nested_no_compute_test_nested3Level_test_nested2Level:
+        capability: tosca.capabilities.network.Bindable
+        relationship: tosca.relationships.network.BindsTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_packet_external_network_test_nested_no_compute_test_nested3Level_test_nested2Level:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_packet_internal_network_test_nested_no_compute_test_nested3Level_test_nested2Level:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_cmaui_port_1_test_nested_no_compute_test_nested3Level_test_nested2Level:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - binding_cmaui_port_1_test_nested_no_compute_test_nested3Level_test_nested2Level:
+        capability: tosca.capabilities.network.Bindable
+        relationship: tosca.relationships.network.BindsTo
+        occurrences:
+        - 1
+        - 1
+    capabilities:
+      vcpus_server_pd_1_test_nested2Level:
+        type: org.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_pd02_port_0_test_nested3Level_test_nested2Level:
+        type: org.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_server_pd_2_test_nested2Level:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_server_pd_2_test_nested3Level_test_nested2Level:
+        type: tosca.capabilities.network.Bindable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.iops_server_pd_1:
+        type: org.openecomp.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_server_pd_2:
+        type: org.openecomp.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_server_pd_2:
+        type: org.openecomp.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_server_pd_1:
+        type: org.openecomp.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_server_pd_2_test_nested2Level:
+        type: org.openecomp.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_server_pd_1_test_nested2Level:
+        type: org.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_cmaui_port_2_test_nested_no_compute_test_nested3Level_test_nested2Level:
+        type: org.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_pd01_port_0_test_nested3Level_test_nested2Level:
+        type: org.openecomp.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_server_pd_1_test_nested2Level:
+        type: org.openecomp.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_server_pd_2_test_nested3Level_test_nested2Level:
+        type: org.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_pd02_port_0_test_nested3Level_test_nested2Level:
+        type: org.openecomp.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_server_pd_1_test_nested2Level:
+        type: org.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_server_pd_2_test_nested2Level:
+        type: org.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_server_pd_2_test_nested3Level_test_nested2Level:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.usage_server_pd_1_test_nested3Level_test_nested2Level:
+        type: org.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_server_pd_1_test_nested2Level:
+        type: tosca.capabilities.OperatingSystem
+        occurrences:
+        - 1
+        - UNBOUNDED
+      end_point_packet_internal_network_test_nested_no_compute_test_nested3Level_test_nested2Level:
+        type: tosca.capabilities.Endpoint
+        occurrences:
+        - 1
+        - UNBOUNDED
+      host_server_pd_2_test_nested2Level:
+        type: tosca.capabilities.Container
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.ephemeral.size_server_pd_2_test_nested2Level:
+        type: org.openecomp.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_server_pd_2_test_nested2Level:
+        type: org.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_server_pd_1:
+        type: org.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_server_pd_2_test_nested2Level:
+        type: tosca.capabilities.OperatingSystem
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.latency_server_pd_1_test_nested2Level:
+        type: org.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_server_pd_2:
+        type: org.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_server_pd_1_test_nested3Level_test_nested2Level:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_server_pd_1_test_nested3Level_test_nested2Level:
+        type: tosca.capabilities.network.Bindable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_server_pd_1_test_nested2Level:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_pd01_port_0_test_nested2Level:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.bytes_server_pd_1_test_nested3Level_test_nested2Level:
+        type: org.openecomp.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_server_pd_2:
+        type: org.openecomp.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_server_pd_1:
+        type: org.openecomp.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_server_pd_1_test_nested2Level:
+        type: org.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_cmaui_port_2_test_nested_no_compute_test_nested3Level_test_nested2Level:
+        type: org.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_packet_internal_network_test_nested_no_compute_test_nested3Level_test_nested2Level:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cmaui_port_2_test_nested_no_compute_test_nested3Level_test_nested2Level:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_pd01_port_1:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      binding_pd01_port_0_test_nested3Level_test_nested2Level:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      binding_pd01_port_0:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      host_server_pd_1_test_nested2Level:
+        type: tosca.capabilities.Container
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.bytes_server_pd_1:
+        type: org.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_pd02_port_0_test_nested2Level:
+        type: org.openecomp.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_server_pd_2:
+        type: org.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_pd01_port_0_test_nested3Level_test_nested2Level:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      instance_server_pd_1_test_nested3Level_test_nested2Level:
+        type: org.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_pd01_port_1:
+        type: org.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_server_pd_1_test_nested2Level:
+        type: org.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_pd01_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.bytes.rate_server_pd_2_test_nested2Level:
+        type: org.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_packet_external_network_test_nested_no_compute_test_nested3Level_test_nested2Level:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_cmaui_port_2_test_nested_no_compute_test_nested3Level_test_nested2Level:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.latency_server_pd_2_test_nested3Level_test_nested2Level:
+        type: org.openecomp.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_server_pd_2_test_nested3Level_test_nested2Level:
+        type: org.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_pd01_port_0_test_nested3Level_test_nested2Level:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_ps02_port_0:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.capacity_server_pd_1_test_nested2Level:
+        type: org.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_pd02_port_0_test_nested3Level_test_nested2Level:
+        type: org.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_pd02_port_0_test_nested2Level:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.usage_server_pd_1_test_nested2Level:
+        type: org.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_test_nested2Level:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.bytes_server_pd_2_test_nested3Level_test_nested2Level:
+        type: org.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_cmaui_port_1_test_nested_no_compute_test_nested3Level_test_nested2Level:
+        type: org.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_cmaui_port_1_test_nested_no_compute_test_nested3Level_test_nested2Level:
+        type: org.openecomp.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_server_pd_1_test_nested2Level:
+        type: org.openecomp.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_server_pd_1_test_nested2Level:
+        type: org.openecomp.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_server_pd_2_test_nested2Level:
+        type: org.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_server_pd_2_test_nested3Level_test_nested2Level:
+        type: org.openecomp.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_server_pd_1_test_nested2Level:
+        type: org.openecomp.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_server_pd_2_test_nested3Level_test_nested2Level:
+        type: org.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_server_pd_1_test_nested2Level:
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.allocation_server_pd_2_test_nested2Level:
+        type: org.openecomp.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_server_pd_2:
+        type: org.openecomp.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_server_pd_1_test_nested2Level:
+        type: org.openecomp.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_server_pd_1:
+        type: org.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_server_pd_2:
+        type: org.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_pd01_port_1:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu_server_pd_1:
+        type: org.openecomp.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_server_pd_1_test_nested3Level_test_nested2Level:
+        type: org.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_pd01_port_0:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_cmaui_port_2_test_nested_no_compute_test_nested3Level_test_nested2Level:
+        type: org.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_pd01_port_0_test_nested2Level:
+        type: org.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_cmaui_port_1_test_nested_no_compute_test_nested3Level_test_nested2Level:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      endpoint_server_pd_2:
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory.resident_server_pd_2_test_nested2Level:
+        type: org.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_pd01_port_0_test_nested3Level_test_nested2Level:
+        type: org.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_server_pd_1:
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences:
+        - 1
+        - UNBOUNDED
+      vcpus_server_pd_1:
+        type: org.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_server_pd_2:
+        type: org.openecomp.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_server_pd_2_test_nested3Level_test_nested2Level:
+        type: org.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_server_pd_2_test_nested3Level_test_nested2Level:
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.requests_server_pd_1_test_nested2Level:
+        type: org.openecomp.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_server_pd_2_test_nested3Level_test_nested2Level:
+        type: org.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_pd01_port_0_test_nested2Level:
+        type: org.openecomp.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_server_pd_2_test_nested3Level_test_nested2Level:
+        type: org.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_pd01_port_0_test_nested2Level:
+        type: org.openecomp.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_server_pd_1:
+        type: org.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_server_pd_1_test_nested2Level:
+        type: org.openecomp.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_server_pd_2:
+        type: org.openecomp.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_server_pd_1_test_nested3Level_test_nested2Level:
+        type: org.openecomp.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_server_pd_1_test_nested3Level_test_nested2Level:
+        type: org.openecomp.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_server_pd_2_test_nested2Level:
+        type: org.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_pd01_port_0_test_nested3Level_test_nested2Level:
+        type: org.openecomp.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_server_pd_1_test_nested2Level:
+        type: org.openecomp.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_server_pd_2_test_nested2Level:
+        type: org.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_pd01_port_0_test_nested2Level:
+        type: org.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_server_pd_2_test_nested2Level:
+        type: org.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_pd01_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.latency_server_pd_1_test_nested3Level_test_nested2Level:
+        type: org.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_pd01_port_1:
+        type: org.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_pd02_port_0_test_nested2Level:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_packet_internal_network_test_nested_no_compute_test_nested3Level_test_nested2Level:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu_util_server_pd_1_test_nested3Level_test_nested2Level:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      link_packet_internal_network_test_nested_no_compute_test_nested3Level_test_nested2Level:
+        type: tosca.capabilities.network.Linkable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.allocation_server_pd_1_test_nested2Level:
+        type: org.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_cmaui_port_1_test_nested_no_compute_test_nested3Level_test_nested2Level:
+        type: org.openecomp.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_server_pd_2_test_nested3Level_test_nested2Level:
+        type: org.openecomp.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_server_pd_2_test_nested3Level_test_nested2Level:
+        type: org.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_server_pd_1:
+        type: org.openecomp.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_server_pd_1:
+        type: org.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_pd02_port_0_test_nested2Level:
+        type: org.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_server_pd_2:
+        type: org.openecomp.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_server_pd_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.capacity_server_pd_1_test_nested3Level_test_nested2Level:
+        type: org.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_pd02_port_0_test_nested2Level:
+        type: org.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_ps02_port_0:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      disk.write.bytes.rate_server_pd_2_test_nested3Level_test_nested2Level:
+        type: org.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_server_pd_1:
+        type: org.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_server_pd_2:
+        type: org.openecomp.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_server_pd_2:
+        type: org.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_cmaui_port_2_test_nested_no_compute_test_nested3Level_test_nested2Level:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.capacity_server_pd_2_test_nested2Level:
+        type: org.openecomp.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_server_pd_2:
+        type: org.openecomp.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_server_pd_1:
+        type: org.openecomp.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_server_pd_2:
+        type: org.openecomp.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_server_pd_1:
+        type: org.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_pd01_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.capacity_server_pd_2:
+        type: org.openecomp.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_server_pd_2_test_nested2Level:
+        type: org.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_pd01_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.capacity_server_pd_1:
+        type: org.openecomp.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_server_pd_2_test_nested3Level_test_nested2Level:
+        type: org.openecomp.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_server_pd_1:
+        type: org.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_pd01_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      end_point_packet_internal_network_nested_1:
+        type: tosca.capabilities.Endpoint
+        occurrences:
+        - 1
+        - UNBOUNDED
+      os_server_pd_2_test_nested3Level_test_nested2Level:
+        type: tosca.capabilities.OperatingSystem
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_ps02_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu.delta_server_pd_1_test_nested3Level_test_nested2Level:
+        type: org.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_cmaui_port_2_test_nested_no_compute_test_nested3Level_test_nested2Level:
+        type: org.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_packet_internal_network_nested_1:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.allocation_server_pd_1_test_nested3Level_test_nested2Level:
+        type: org.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_pd01_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_server_pd_2:
+        type: tosca.capabilities.network.Bindable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      link_packet_external_network_test_nested_no_compute_test_nested3Level_test_nested2Level:
+        type: tosca.capabilities.network.Linkable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.requests_server_pd_2:
+        type: org.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_server_pd_1:
+        type: tosca.capabilities.network.Bindable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.requests_server_pd_1:
+        type: org.openecomp.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_server_pd_1_test_nested2Level:
+        type: org.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_cmaui_port_2_test_nested_no_compute_test_nested3Level_test_nested2Level:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      binding_pd02_port_0_test_nested2Level:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      disk.write.requests_server_pd_2_test_nested3Level_test_nested2Level:
+        type: org.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_pd01_port_0_test_nested2Level:
+        type: org.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_ps02_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.requests.rate_server_pd_2:
+        type: org.openecomp.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_server_pd_1:
+        type: org.openecomp.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_server_pd_1_test_nested3Level_test_nested2Level:
+        type: org.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_server_pd_1_test_nested3Level_test_nested2Level:
+        type: org.openecomp.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_server_pd_1:
+        type: org.openecomp.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_server_pd_2_test_nested2Level:
+        type: org.openecomp.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_server_pd_2:
+        type: org.openecomp.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_server_pd_2:
+        type: org.openecomp.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_server_pd_1:
+        type: org.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_server_pd_1_test_nested3Level_test_nested2Level:
+        type: tosca.capabilities.Container
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
+        occurrences:
+        - 1
+        - UNBOUNDED
+      vcpus_server_pd_2_test_nested3Level_test_nested2Level:
+        type: org.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_ps02_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      endpoint_server_pd_2_test_nested2Level:
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.requests_server_pd_1_test_nested3Level_test_nested2Level:
+        type: org.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_server_pd_2_test_nested3Level_test_nested2Level:
+        type: org.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_cmaui_port_2_test_nested_no_compute_test_nested3Level_test_nested2Level:
+        type: org.openecomp.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_server_pd_1_test_nested2Level:
+        type: org.openecomp.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_server_pd_1_test_nested2Level:
+        type: org.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_server_pd_2_test_nested3Level_test_nested2Level:
+        type: tosca.capabilities.Container
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory_server_pd_2_test_nested2Level:
+        type: org.openecomp.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_server_pd_1_test_nested2Level:
+        type: org.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_server_pd_2_test_nested2Level:
+        type: tosca.capabilities.network.Bindable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_cmaui_port_1_test_nested_no_compute_test_nested3Level_test_nested2Level:
+        type: org.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_server_pd_2:
+        type: org.openecomp.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_server_pd_2_test_nested3Level_test_nested2Level:
+        type: org.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_server_pd_2:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_server_pd_1:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      scalable_server_pd_1_test_nested2Level:
+        type: tosca.capabilities.Scalable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu.delta_server_pd_1:
+        type: org.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_server_pd_1:
+        type: tosca.capabilities.Container
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_pd01_port_0_test_nested2Level:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      host_server_pd_2:
+        type: tosca.capabilities.Container
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory.usage_server_pd_1_test_nested3Level_test_nested2Level:
+        type: org.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_pd01_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_pd01_port_1:
+        type: org.openecomp.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_server_pd_2_test_nested3Level_test_nested2Level:
+        type: org.openecomp.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_server_pd_2_test_nested3Level_test_nested2Level:
+        type: org.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_server_pd_2_test_nested2Level:
+        type: org.openecomp.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_server_pd_1_test_nested3Level_test_nested2Level:
+        type: org.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_server_pd_2:
+        type: org.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_server_pd_1_test_nested2Level:
+        type: tosca.capabilities.network.Bindable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory_server_pd_1:
+        type: org.openecomp.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_server_pd_1_test_nested3Level_test_nested2Level:
+        type: org.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_server_pd_1_test_nested3Level_test_nested2Level:
+        type: tosca.capabilities.OperatingSystem
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.allocation_server_pd_1_test_nested3Level_test_nested2Level:
+        type: org.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_pd01_port_0_test_nested3Level_test_nested2Level:
+        type: org.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_cmaui_port_1_test_nested_no_compute_test_nested3Level_test_nested2Level:
+        type: org.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_packet_external_network_test_nested_no_compute_test_nested3Level_test_nested2Level:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_pd01_port_0_test_nested3Level_test_nested2Level:
+        type: org.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_server_pd_1_test_nested2Level:
+        type: org.openecomp.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_server_pd_2_test_nested2Level:
+        type: org.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_ps02_port_0:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.capacity_server_pd_2_test_nested3Level_test_nested2Level:
+        type: org.openecomp.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_server_pd_1_test_nested3Level_test_nested2Level:
+        type: org.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_pd01_port_0_test_nested2Level:
+        type: org.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_server_pd_1_test_nested2Level:
+        type: org.openecomp.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_server_pd_2_test_nested2Level:
+        type: org.openecomp.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_server_pd_1:
+        type: org.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_cmaui_port_2_test_nested_no_compute_test_nested3Level_test_nested2Level:
+        type: org.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_cmaui_port_1_test_nested_no_compute_test_nested3Level_test_nested2Level:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      scalable_server_pd_2_test_nested2Level:
+        type: tosca.capabilities.Scalable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.requests_server_pd_2:
+        type: org.openecomp.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_server_pd_1:
+        type: org.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_pd01_port_0_test_nested2Level:
+        type: org.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_server_pd_2_test_nested3Level_test_nested2Level:
+        type: org.openecomp.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_server_pd_2:
+        type: org.openecomp.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_server_pd_1:
+        type: org.openecomp.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_server_pd_2:
+        type: org.openecomp.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_server_pd_2:
+        type: org.openecomp.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_server_pd_1:
+        type: org.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_pd02_port_0_test_nested3Level_test_nested2Level:
+        type: org.openecomp.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_server_pd_2_test_nested3Level_test_nested2Level:
+        type: org.openecomp.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_server_pd_1_test_nested3Level_test_nested2Level:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.capacity_server_pd_2_test_nested3Level_test_nested2Level:
+        type: org.openecomp.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_server_pd_1:
+        type: org.openecomp.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_server_pd_2:
+        type: org.openecomp.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_server_pd_1:
+        type: org.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_server_pd_2_test_nested3Level_test_nested2Level:
+        type: org.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_server_pd_1_test_nested2Level:
+        type: org.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_server_pd_1_test_nested2Level:
+        type: org.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_pd02_port_0_test_nested3Level_test_nested2Level:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      disk.device.write.requests.rate_server_pd_2_test_nested3Level_test_nested2Level:
+        type: org.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_ps02_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_pd02_port_0_test_nested2Level:
+        type: org.openecomp.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_server_pd_1:
+        type: org.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_pd02_port_0_test_nested2Level:
+        type: org.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_ps02_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.bytes.rate_server_pd_1_test_nested2Level:
+        type: org.openecomp.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_server_pd_2:
+        type: org.openecomp.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_server_pd_2_test_nested2Level:
+        type: org.openecomp.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_server_pd_2_test_nested2Level:
+        type: org.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_server_pd_1_test_nested3Level_test_nested2Level:
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory_server_pd_1_test_nested3Level_test_nested2Level:
+        type: org.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_server_pd_2_test_nested3Level_test_nested2Level:
+        type: tosca.capabilities.Scalable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.requests_server_pd_2_test_nested2Level:
+        type: org.openecomp.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_server_pd_1_test_nested3Level_test_nested2Level:
+        type: org.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_pd01_port_0_test_nested2Level:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.root.size_server_pd_2:
+        type: org.openecomp.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_server_pd_2_test_nested2Level:
+        type: org.openecomp.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_server_pd_2:
+        type: org.openecomp.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_server_pd_1:
+        type: org.openecomp.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_server_pd_1_test_nested2Level:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      end_point_packet_external_network_test_nested_no_compute_test_nested3Level_test_nested2Level:
+        type: tosca.capabilities.Endpoint
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.latency_server_pd_1_test_nested2Level:
+        type: org.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_server_pd_2_test_nested3Level_test_nested2Level:
+        type: org.openecomp.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_server_pd_1_test_nested2Level:
+        type: org.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_ps02_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.requests_server_pd_2_test_nested2Level:
+        type: org.openecomp.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_server_pd_2:
+        type: org.openecomp.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_server_pd_1:
+        type: org.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_packet_internal_network_nested_1:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.bytes_server_pd_1_test_nested3Level_test_nested2Level:
+        type: org.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_pd02_port_0_test_nested3Level_test_nested2Level:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.allocation_server_pd_2_test_nested2Level:
+        type: org.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_pd02_port_0_test_nested3Level_test_nested2Level:
+        type: org.openecomp.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_server_pd_1_test_nested3Level_test_nested2Level:
+        type: org.openecomp.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_server_pd_1_test_nested3Level_test_nested2Level:
+        type: org.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_cmaui_port_1_test_nested_no_compute_test_nested3Level_test_nested2Level:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_cmaui_port_1_test_nested_no_compute_test_nested3Level_test_nested2Level:
+        type: org.openecomp.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_server_pd_2_test_nested2Level:
+        type: org.openecomp.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_server_pd_1_test_nested3Level_test_nested2Level:
+        type: org.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_cmaui_port_2_test_nested_no_compute_test_nested3Level_test_nested2Level:
+        type: org.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_pd01_port_1:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.latency_server_pd_2_test_nested2Level:
+        type: org.openecomp.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_server_pd_1_test_nested3Level_test_nested2Level:
+        type: org.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_pd01_port_0:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.latency_server_pd_2:
+        type: org.openecomp.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_server_pd_1_test_nested3Level_test_nested2Level:
+        type: org.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_server_pd_1_test_nested3Level_test_nested2Level:
+        type: org.openecomp.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_server_pd_1:
+        type: org.openecomp.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_server_pd_2_test_nested3Level_test_nested2Level:
+        type: org.openecomp.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_server_pd_1_test_nested2Level:
+        type: org.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_pd01_port_0_test_nested2Level:
+        type: org.openecomp.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_server_pd_2_test_nested2Level:
+        type: org.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_pd02_port_0_test_nested2Level:
+        type: org.openecomp.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_server_pd_1_test_nested3Level_test_nested2Level:
+        type: org.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_server_pd_2_test_nested3Level_test_nested2Level:
+        type: org.openecomp.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_server_pd_2_test_nested3Level_test_nested2Level:
+        type: org.openecomp.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_server_pd_1_test_nested3Level_test_nested2Level:
+        type: org.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_pd02_port_0_test_nested3Level_test_nested2Level:
+        type: org.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_server_pd_1_test_nested3Level_test_nested2Level:
+        type: tosca.capabilities.Scalable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.bytes.rate_server_pd_2_test_nested3Level_test_nested2Level:
+        type: org.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_test_nested_no_compute_test_nested3Level_test_nested2Level:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.requests_server_pd_1_test_nested2Level:
+        type: org.openecomp.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_server_pd_1_test_nested3Level_test_nested2Level:
+        type: org.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_pd02_port_0_test_nested3Level_test_nested2Level:
+        type: org.openecomp.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_server_pd_2_test_nested2Level:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      link_packet_internal_network_nested_1:
+        type: tosca.capabilities.network.Linkable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.bytes_server_pd_2_test_nested2Level:
+        type: org.openecomp.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_server_pd_1_test_nested2Level:
+        type: org.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_pd01_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory.resident_server_pd_1_test_nested3Level_test_nested2Level:
+        type: org.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_pd01_port_1:
+        type: org.openecomp.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_server_pd_1_test_nested2Level:
+        type: org.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_ps02_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes_pd01_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes_pd01_port_1:
+        type: org.openecomp.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_server_pd_2_test_nested3Level_test_nested2Level:
+        type: org.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_pd01_port_0_test_nested3Level_test_nested2Level:
+        type: org.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_cmaui_port_1_test_nested_no_compute_test_nested3Level_test_nested2Level:
+        type: org.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_pd01_port_0_test_nested3Level_test_nested2Level:
+        type: org.openecomp.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_server_pd_2_test_nested3Level_test_nested2Level:
+        type: org.openecomp.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_server_pd_1_test_nested2Level:
+        type: org.openecomp.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_server_pd_1_test_nested3Level_test_nested2Level:
+        type: org.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_pd01_port_1:
+        type: org.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_server_pd_2_test_nested2Level:
+        type: org.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_pd01_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_pd02_port_0_test_nested3Level_test_nested2Level:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu_util_server_pd_2_test_nested2Level:
+        type: org.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_pd01_port_0_test_nested3Level_test_nested2Level:
+        type: org.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_cmaui_port_1_test_nested_no_compute_test_nested3Level_test_nested2Level:
+        type: org.openecomp.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_server_pd_1:
+        type: org.openecomp.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_server_pd_2:
+        type: org.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_server_pd_2:
+        type: org.openecomp.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_server_pd_1_test_nested3Level_test_nested2Level:
+        type: org.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_pd02_port_0_test_nested2Level:
+        type: org.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_test_nested3Level_test_nested2Level:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes_pd02_port_0_test_nested2Level:
+        type: org.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_server_pd_1:
+        type: org.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_server_pd_2:
+        type: tosca.capabilities.OperatingSystem
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.latency_server_pd_1:
+        type: org.openecomp.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_server_pd_2:
+        type: org.openecomp.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_server_pd_2_test_nested2Level:
+        type: org.openecomp.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_server_pd_2_test_nested3Level_test_nested2Level:
+        type: org.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_pd02_port_0_test_nested3Level_test_nested2Level:
+        type: org.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_server_pd_2:
+        type: tosca.capabilities.Scalable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      scalable_server_pd_1:
+        type: tosca.capabilities.Scalable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.latency_server_pd_2_test_nested3Level_test_nested2Level:
+        type: org.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_ps02_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory.resident_server_pd_1_test_nested2Level:
+        type: org.openecomp.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_server_pd_2_test_nested2Level:
+        type: org.openecomp.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_server_pd_2_test_nested2Level:
+        type: org.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_server_pd_2_test_nested3Level_test_nested2Level:
+        type: org.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_server_pd_2_test_nested2Level:
+        type: org.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_server_pd_1:
+        type: tosca.capabilities.OperatingSystem
+        occurrences:
+        - 1
+        - UNBOUNDED
+  org.openecomp.resource.abstract.nodes.heat.nested2:
+    derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+    properties:
+      pd_flavor_name:
+        type: string
+        description: Flavor for CMAUI server
+        required: true
+        status: SUPPORTED
+      p1:
+        type: string
+        description: UID of OAM network
+        required: true
+        status: SUPPORTED
+      p2:
+        type: string
+        description: UID of OAM network
+        required: true
+        status: SUPPORTED
+      availabilityzone_name:
+        type: string
+        description: availabilityzone name
+        required: true
+        status: SUPPORTED
+      security_group_name:
+        type: list
+        description: CMAUI1, CMAUI2 server names
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      pd_image_name:
+        type: string
+        description: Image for CMAUI server
+        required: true
+        status: SUPPORTED
+      pd_server_names:
+        type: list
+        description: CMAUI1, CMAUI2 server names
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      net:
+        type: string
+        required: true
+        status: SUPPORTED
+      oam_net_name:
+        type: string
+        required: true
+        status: SUPPORTED
+    requirements:
+    - dependency_pd01_port_0:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_pd01_port_0:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_server_pd_2:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - local_storage_server_pd_2:
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_server_pd_1:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - local_storage_server_pd_1:
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_pd02_port_0:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_pd02_port_0:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_test_nested3Level:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_pd01_port_0_test_nested3Level:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_pd01_port_0_test_nested3Level:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_server_pd_2_test_nested3Level:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - local_storage_server_pd_2_test_nested3Level:
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_server_pd_1_test_nested3Level:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - local_storage_server_pd_1_test_nested3Level:
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_pd02_port_0_test_nested3Level:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_pd02_port_0_test_nested3Level:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_test_nested_no_compute_test_nested3Level:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_cmaui_port_2_test_nested_no_compute_test_nested3Level:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - binding_cmaui_port_2_test_nested_no_compute_test_nested3Level:
+        capability: tosca.capabilities.network.Bindable
+        relationship: tosca.relationships.network.BindsTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_packet_external_network_test_nested_no_compute_test_nested3Level:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_packet_internal_network_test_nested_no_compute_test_nested3Level:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_cmaui_port_1_test_nested_no_compute_test_nested3Level:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - binding_cmaui_port_1_test_nested_no_compute_test_nested3Level:
+        capability: tosca.capabilities.network.Bindable
+        relationship: tosca.relationships.network.BindsTo
+        occurrences:
+        - 1
+        - 1
+    capabilities:
+      disk.read.bytes.rate_server_pd_2_test_nested3Level:
+        type: org.openecomp.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_server_pd_2_test_nested3Level:
+        type: org.openecomp.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_server_pd_1:
+        type: org.openecomp.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_server_pd_2:
+        type: org.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_pd01_port_0_test_nested3Level:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      disk.write.bytes.rate_server_pd_2:
+        type: org.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_pd01_port_0_test_nested3Level:
+        type: org.openecomp.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_server_pd_1:
+        type: org.openecomp.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_server_pd_2_test_nested3Level:
+        type: org.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_server_pd_2_test_nested3Level:
+        type: tosca.capabilities.Scalable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets.rate_pd02_port_0_test_nested3Level:
+        type: org.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_pd02_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_packet_external_network_test_nested_no_compute_test_nested3Level:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      scalable_server_pd_1_test_nested3Level:
+        type: tosca.capabilities.Scalable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.bytes.rate_server_pd_1_test_nested3Level:
+        type: org.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_server_pd_1:
+        type: org.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_server_pd_2:
+        type: org.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_pd02_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_cmaui_port_1_test_nested_no_compute_test_nested3Level:
+        type: org.openecomp.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_server_pd_2:
+        type: org.openecomp.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_server_pd_1:
+        type: org.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_cmaui_port_2_test_nested_no_compute_test_nested3Level:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      binding_pd01_port_0:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      network.outgoing.bytes.rate_pd02_port_0_test_nested3Level:
+        type: org.openecomp.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_server_pd_1:
+        type: org.openecomp.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_server_pd_2:
+        type: org.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_pd02_port_0_test_nested3Level:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_server_pd_1_test_nested3Level:
+        type: tosca.capabilities.network.Bindable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_cmaui_port_2_test_nested_no_compute_test_nested3Level:
+        type: org.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_pd01_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_cmaui_port_2_test_nested_no_compute_test_nested3Level:
+        type: org.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_server_pd_2_test_nested3Level:
+        type: org.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_server_pd_1_test_nested3Level:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      link_packet_external_network_test_nested_no_compute_test_nested3Level:
+        type: tosca.capabilities.network.Linkable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu.delta_server_pd_1_test_nested3Level:
+        type: org.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_cmaui_port_1_test_nested_no_compute_test_nested3Level:
+        type: org.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_server_pd_1_test_nested3Level:
+        type: org.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_server_pd_2_test_nested3Level:
+        type: org.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_cmaui_port_1_test_nested_no_compute_test_nested3Level:
+        type: org.openecomp.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_server_pd_1_test_nested3Level:
+        type: org.openecomp.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_server_pd_1_test_nested3Level:
+        type: org.openecomp.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_server_pd_2_test_nested3Level:
+        type: org.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_cmaui_port_2_test_nested_no_compute_test_nested3Level:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.requests.rate_server_pd_2_test_nested3Level:
+        type: org.openecomp.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_server_pd_2:
+        type: org.openecomp.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_server_pd_1:
+        type: org.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_server_pd_2:
+        type: org.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_server_pd_1:
+        type: org.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_pd01_port_0:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.capacity_server_pd_1_test_nested3Level:
+        type: org.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_server_pd_2:
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences:
+        - 1
+        - UNBOUNDED
+      end_point_packet_external_network_test_nested_no_compute_test_nested3Level:
+        type: tosca.capabilities.Endpoint
+        occurrences:
+        - 1
+        - UNBOUNDED
+      endpoint_server_pd_1:
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_cmaui_port_1_test_nested_no_compute_test_nested3Level:
+        type: org.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_server_pd_1:
+        type: org.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_server_pd_2:
+        type: org.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_pd01_port_0_test_nested3Level:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cmaui_port_1_test_nested_no_compute_test_nested3Level:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.requests_server_pd_2_test_nested3Level:
+        type: org.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_pd01_port_0_test_nested3Level:
+        type: org.openecomp.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_server_pd_1:
+        type: org.openecomp.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_server_pd_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      link_packet_internal_network_test_nested_no_compute_test_nested3Level:
+        type: tosca.capabilities.network.Linkable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.usage_server_pd_1_test_nested3Level:
+        type: org.openecomp.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_server_pd_2_test_nested3Level:
+        type: org.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_pd01_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.requests.rate_server_pd_1_test_nested3Level:
+        type: org.openecomp.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_server_pd_2_test_nested3Level:
+        type: org.openecomp.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_server_pd_1_test_nested3Level:
+        type: org.openecomp.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_server_pd_1_test_nested3Level:
+        type: org.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_pd02_port_0_test_nested3Level:
+        type: org.openecomp.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_server_pd_1_test_nested3Level:
+        type: org.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_server_pd_1:
+        type: org.openecomp.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_server_pd_1:
+        type: org.openecomp.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_server_pd_1_test_nested3Level:
+        type: org.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_server_pd_2:
+        type: org.openecomp.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_server_pd_2:
+        type: org.openecomp.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_server_pd_1_test_nested3Level:
+        type: org.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_cmaui_port_1_test_nested_no_compute_test_nested3Level:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      attachment_pd02_port_0:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu_util_server_pd_1:
+        type: org.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_server_pd_2_test_nested3Level:
+        type: tosca.capabilities.Container
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu_util_server_pd_2:
+        type: org.openecomp.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_server_pd_2:
+        type: org.openecomp.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_server_pd_1_test_nested3Level:
+        type: org.openecomp.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_server_pd_2:
+        type: org.openecomp.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_server_pd_1:
+        type: org.openecomp.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_server_pd_2:
+        type: org.openecomp.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_server_pd_1:
+        type: org.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_pd01_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.capacity_server_pd_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.capacity_server_pd_1:
+        type: org.openecomp.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_server_pd_1:
+        type: org.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_server_pd_2_test_nested3Level:
+        type: org.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_pd02_port_0_test_nested3Level:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      feature_packet_external_network_test_nested_no_compute_test_nested3Level:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_pd01_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_server_pd_2:
+        type: tosca.capabilities.network.Bindable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.requests_server_pd_2:
+        type: org.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_server_pd_1:
+        type: tosca.capabilities.network.Bindable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.requests_server_pd_1:
+        type: org.openecomp.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_server_pd_2_test_nested3Level:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.capacity_server_pd_2_test_nested3Level:
+        type: org.openecomp.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_server_pd_2:
+        type: org.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_pd02_port_0_test_nested3Level:
+        type: org.openecomp.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_server_pd_1:
+        type: org.openecomp.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_server_pd_1:
+        type: org.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_server_pd_1_test_nested3Level:
+        type: org.openecomp.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_server_pd_2:
+        type: org.openecomp.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_server_pd_2:
+        type: org.openecomp.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_server_pd_1:
+        type: org.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_server_pd_1_test_nested3Level:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory_server_pd_2_test_nested3Level:
+        type: org.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_server_pd_1_test_nested3Level:
+        type: org.openecomp.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_server_pd_2_test_nested3Level:
+        type: org.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_server_pd_1_test_nested3Level:
+        type: org.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_pd01_port_0_test_nested3Level:
+        type: org.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_cmaui_port_1_test_nested_no_compute_test_nested3Level:
+        type: org.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_pd01_port_0_test_nested3Level:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.ephemeral.size_server_pd_1_test_nested3Level:
+        type: org.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_server_pd_2_test_nested3Level:
+        type: org.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_server_pd_1_test_nested3Level:
+        type: tosca.capabilities.OperatingSystem
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_cmaui_port_2_test_nested_no_compute_test_nested3Level:
+        type: org.openecomp.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_server_pd_1_test_nested3Level:
+        type: org.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_server_pd_2:
+        type: org.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_server_pd_2:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_server_pd_1:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu.delta_server_pd_1:
+        type: org.openecomp.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_server_pd_2_test_nested3Level:
+        type: org.openecomp.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_server_pd_2_test_nested3Level:
+        type: org.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_server_pd_1:
+        type: tosca.capabilities.Container
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.iops_server_pd_1_test_nested3Level:
+        type: org.openecomp.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_server_pd_2_test_nested3Level:
+        type: org.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_server_pd_2:
+        type: tosca.capabilities.Container
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_pd01_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      os_server_pd_2_test_nested3Level:
+        type: tosca.capabilities.OperatingSystem
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.bytes_server_pd_1_test_nested3Level:
+        type: org.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_server_pd_2:
+        type: org.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_server_pd_1:
+        type: org.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_test_nested_no_compute_test_nested3Level:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_cmaui_port_2_test_nested_no_compute_test_nested3Level:
+        type: org.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_pd02_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.requests_server_pd_2_test_nested3Level:
+        type: org.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_cmaui_port_1_test_nested_no_compute_test_nested3Level:
+        type: org.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_server_pd_1_test_nested3Level:
+        type: org.openecomp.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_server_pd_1_test_nested3Level:
+        type: org.openecomp.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_server_pd_2_test_nested3Level:
+        type: org.openecomp.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_server_pd_1:
+        type: org.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_server_pd_2_test_nested3Level:
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.requests_server_pd_2:
+        type: org.openecomp.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_server_pd_1:
+        type: org.openecomp.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_server_pd_2:
+        type: org.openecomp.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_server_pd_1:
+        type: org.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_pd02_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.requests_server_pd_2:
+        type: org.openecomp.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_server_pd_2:
+        type: org.openecomp.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_server_pd_1:
+        type: org.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_cmaui_port_1_test_nested_no_compute_test_nested3Level:
+        type: org.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_pd02_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes_pd02_port_0_test_nested3Level:
+        type: org.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_pd01_port_0_test_nested3Level:
+        type: org.openecomp.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_server_pd_1_test_nested3Level:
+        type: org.openecomp.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_server_pd_1:
+        type: org.openecomp.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_server_pd_2:
+        type: org.openecomp.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_server_pd_1:
+        type: org.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_packet_internal_network_test_nested_no_compute_test_nested3Level:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.allocation_server_pd_1_test_nested3Level:
+        type: org.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_server_pd_1_test_nested3Level:
+        type: tosca.capabilities.Container
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.iops_server_pd_1:
+        type: org.openecomp.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_server_pd_2:
+        type: org.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_pd02_port_0_test_nested3Level:
+        type: org.openecomp.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_server_pd_1_test_nested3Level:
+        type: org.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_pd02_port_0:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_pd01_port_0_test_nested3Level:
+        type: org.openecomp.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_server_pd_2:
+        type: org.openecomp.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_server_pd_2_test_nested3Level:
+        type: org.openecomp.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_server_pd_2:
+        type: org.openecomp.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_server_pd_1:
+        type: org.openecomp.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_server_pd_1_test_nested3Level:
+        type: org.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_server_pd_2_test_nested3Level:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.bytes_server_pd_1_test_nested3Level:
+        type: org.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_cmaui_port_2_test_nested_no_compute_test_nested3Level:
+        type: org.openecomp.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_server_pd_2_test_nested3Level:
+        type: org.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_pd01_port_0_test_nested3Level:
+        type: org.openecomp.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_server_pd_2_test_nested3Level:
+        type: org.openecomp.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_server_pd_2:
+        type: org.openecomp.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_server_pd_1:
+        type: org.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_server_pd_2_test_nested3Level:
+        type: org.openecomp.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_server_pd_2_test_nested3Level:
+        type: org.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_cmaui_port_1_test_nested_no_compute_test_nested3Level:
+        type: org.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_pd01_port_0_test_nested3Level:
+        type: org.openecomp.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_server_pd_2_test_nested3Level:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.capacity_server_pd_1_test_nested3Level:
+        type: org.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_pd01_port_0:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.latency_server_pd_2:
+        type: org.openecomp.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_server_pd_1:
+        type: org.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_packet_internal_network_test_nested_no_compute_test_nested3Level:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes_cmaui_port_2_test_nested_no_compute_test_nested3Level:
+        type: org.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_server_pd_2_test_nested3Level:
+        type: org.openecomp.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_server_pd_2_test_nested3Level:
+        type: org.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_pd02_port_0_test_nested3Level:
+        type: org.openecomp.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_server_pd_1_test_nested3Level:
+        type: org.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_server_pd_1_test_nested3Level:
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_pd01_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.allocation_server_pd_2_test_nested3Level:
+        type: org.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_pd02_port_0_test_nested3Level:
+        type: org.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_cmaui_port_2_test_nested_no_compute_test_nested3Level:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_pd02_port_0:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      disk.device.read.bytes_server_pd_2_test_nested3Level:
+        type: org.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_test_nested3Level:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.requests.rate_server_pd_1_test_nested3Level:
+        type: org.openecomp.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_server_pd_1_test_nested3Level:
+        type: org.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_pd01_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu_util_server_pd_2_test_nested3Level:
+        type: org.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_pd02_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_pd02_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.iops_server_pd_2_test_nested3Level:
+        type: org.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_pd01_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_pd02_port_0_test_nested3Level:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.bytes.rate_server_pd_2_test_nested3Level:
+        type: org.openecomp.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_server_pd_1:
+        type: org.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_cmaui_port_2_test_nested_no_compute_test_nested3Level:
+        type: org.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_server_pd_2_test_nested3Level:
+        type: tosca.capabilities.network.Bindable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.requests_server_pd_2_test_nested3Level:
+        type: org.openecomp.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_server_pd_2:
+        type: org.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_cmaui_port_2_test_nested_no_compute_test_nested3Level:
+        type: org.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_server_pd_2:
+        type: org.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_pd01_port_0_test_nested3Level:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      end_point_packet_internal_network_test_nested_no_compute_test_nested3Level:
+        type: tosca.capabilities.Endpoint
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory.usage_server_pd_1:
+        type: org.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_pd02_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_cmaui_port_1_test_nested_no_compute_test_nested3Level:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      os_server_pd_2:
+        type: tosca.capabilities.OperatingSystem
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory.usage_server_pd_1_test_nested3Level:
+        type: org.openecomp.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_server_pd_1:
+        type: org.openecomp.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_server_pd_2:
+        type: org.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_server_pd_2:
+        type: tosca.capabilities.Scalable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      scalable_server_pd_1:
+        type: tosca.capabilities.Scalable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.root.size_server_pd_1_test_nested3Level:
+        type: org.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_server_pd_1:
+        type: tosca.capabilities.OperatingSystem
+        occurrences:
+        - 1
+        - UNBOUNDED
+  org.openecomp.resource.abstract.nodes.heat.nested3:
+    derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+    properties:
+      pd_flavor_name:
+        type: string
+        description: Flavor for CMAUI server
+        required: true
+        status: SUPPORTED
+      p1:
+        type: string
+        description: UID of OAM network
+        required: true
+        status: SUPPORTED
+      p2:
+        type: string
+        description: UID of OAM network
+        required: true
+        status: SUPPORTED
+      availabilityzone_name:
+        type: string
+        description: availabilityzone name
+        required: true
+        status: SUPPORTED
+      security_group_name:
+        type: list
+        description: CMAUI1, CMAUI2 server names
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      pd_image_name:
+        type: string
+        description: Image for CMAUI server
+        required: true
+        status: SUPPORTED
+      pd_server_names:
+        type: list
+        description: CMAUI1, CMAUI2 server names
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      net:
+        type: string
+        required: true
+        status: SUPPORTED
+      oam_net_name:
+        type: string
+        required: true
+        status: SUPPORTED
+    requirements:
+    - dependency_pd01_port_0:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_pd01_port_0:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_server_pd_2:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - local_storage_server_pd_2:
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_server_pd_1:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - local_storage_server_pd_1:
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_pd02_port_0:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_pd02_port_0:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_test_nested_no_compute:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_cmaui_port_2_test_nested_no_compute:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - binding_cmaui_port_2_test_nested_no_compute:
+        capability: tosca.capabilities.network.Bindable
+        relationship: tosca.relationships.network.BindsTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_packet_external_network_test_nested_no_compute:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_packet_internal_network_test_nested_no_compute:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_cmaui_port_1_test_nested_no_compute:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - binding_cmaui_port_1_test_nested_no_compute:
+        capability: tosca.capabilities.network.Bindable
+        relationship: tosca.relationships.network.BindsTo
+        occurrences:
+        - 1
+        - 1
+    capabilities:
+      disk.iops_server_pd_1:
+        type: org.openecomp.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_server_pd_2:
+        type: org.openecomp.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_server_pd_2:
+        type: org.openecomp.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_server_pd_1:
+        type: org.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_server_pd_2:
+        type: org.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_server_pd_2:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_server_pd_1:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu.delta_server_pd_1:
+        type: org.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_cmaui_port_2_test_nested_no_compute:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      host_server_pd_1:
+        type: tosca.capabilities.Container
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_pd02_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      host_server_pd_2:
+        type: tosca.capabilities.Container
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
+        occurrences:
+        - 1
+        - UNBOUNDED
+      end_point_packet_external_network_test_nested_no_compute:
+        type: tosca.capabilities.Endpoint
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_pd01_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_cmaui_port_1_test_nested_no_compute:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      memory_server_pd_2:
+        type: org.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_server_pd_1:
+        type: org.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_pd02_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets.rate_cmaui_port_1_test_nested_no_compute:
+        type: org.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_cmaui_port_1_test_nested_no_compute:
+        type: org.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_packet_external_network_test_nested_no_compute:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory.resident_server_pd_1:
+        type: org.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_server_pd_2:
+        type: org.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_pd02_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.requests_server_pd_1:
+        type: org.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_cmaui_port_2_test_nested_no_compute:
+        type: org.openecomp.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_server_pd_2:
+        type: org.openecomp.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_server_pd_1:
+        type: org.openecomp.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_server_pd_2:
+        type: org.openecomp.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_server_pd_1:
+        type: org.openecomp.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_server_pd_2:
+        type: org.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_cmaui_port_2_test_nested_no_compute:
+        type: org.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_cmaui_port_2_test_nested_no_compute:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      disk.read.requests_server_pd_1:
+        type: org.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_pd02_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_pd01_port_0:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      disk.read.requests_server_pd_2:
+        type: org.openecomp.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_server_pd_2:
+        type: org.openecomp.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_server_pd_1:
+        type: org.openecomp.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_server_pd_1:
+        type: org.openecomp.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_server_pd_2:
+        type: org.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_pd02_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      link_packet_external_network_test_nested_no_compute:
+        type: tosca.capabilities.network.Linkable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_pd01_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.requests.rate_server_pd_1:
+        type: org.openecomp.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_server_pd_2:
+        type: org.openecomp.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_server_pd_1:
+        type: org.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_cmaui_port_2_test_nested_no_compute:
+        type: org.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_cmaui_port_2_test_nested_no_compute:
+        type: org.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_cmaui_port_2_test_nested_no_compute:
+        type: org.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_cmaui_port_2_test_nested_no_compute:
+        type: org.openecomp.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_server_pd_1:
+        type: org.openecomp.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_server_pd_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      end_point_packet_internal_network_test_nested_no_compute:
+        type: tosca.capabilities.Endpoint
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_pd02_port_0:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_packet_internal_network_test_nested_no_compute:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.root.size_server_pd_2:
+        type: org.openecomp.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_server_pd_2:
+        type: org.openecomp.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_server_pd_1:
+        type: org.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_cmaui_port_1_test_nested_no_compute:
+        type: org.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_cmaui_port_1_test_nested_no_compute:
+        type: org.openecomp.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_server_pd_2:
+        type: org.openecomp.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_server_pd_1:
+        type: org.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_server_pd_2:
+        type: org.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_server_pd_1:
+        type: org.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_pd01_port_0:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_cmaui_port_1_test_nested_no_compute:
+        type: org.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_server_pd_2:
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences:
+        - 1
+        - UNBOUNDED
+      endpoint_server_pd_1:
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences:
+        - 1
+        - UNBOUNDED
+      vcpus_server_pd_1:
+        type: org.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_server_pd_2:
+        type: org.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_cmaui_port_1_test_nested_no_compute:
+        type: org.openecomp.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_server_pd_2:
+        type: org.openecomp.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_server_pd_1:
+        type: org.openecomp.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_server_pd_1:
+        type: org.openecomp.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_server_pd_2:
+        type: org.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_cmaui_port_2_test_nested_no_compute:
+        type: org.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_pd01_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_pd01_port_0:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.latency_server_pd_2:
+        type: org.openecomp.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_server_pd_1:
+        type: org.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_cmaui_port_2_test_nested_no_compute:
+        type: org.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_server_pd_1:
+        type: org.openecomp.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_server_pd_1:
+        type: org.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_server_pd_2:
+        type: org.openecomp.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_server_pd_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      link_packet_internal_network_test_nested_no_compute:
+        type: tosca.capabilities.network.Linkable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_pd02_port_0:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_pd01_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu_util_server_pd_1:
+        type: org.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_server_pd_2:
+        type: org.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_cmaui_port_1_test_nested_no_compute:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.bytes.rate_server_pd_2:
+        type: org.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_pd02_port_0:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      disk.allocation_server_pd_2:
+        type: org.openecomp.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_server_pd_1:
+        type: org.openecomp.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_server_pd_2:
+        type: org.openecomp.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_server_pd_1:
+        type: org.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_pd01_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.capacity_server_pd_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.capacity_server_pd_1:
+        type: org.openecomp.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_server_pd_1:
+        type: org.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_pd01_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_cmaui_port_1_test_nested_no_compute:
+        type: org.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_cmaui_port_1_test_nested_no_compute:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_pd02_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_pd02_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_pd01_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_server_pd_2:
+        type: tosca.capabilities.network.Bindable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.requests_server_pd_2:
+        type: org.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_server_pd_1:
+        type: tosca.capabilities.network.Bindable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.requests_server_pd_1:
+        type: org.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_pd01_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_cmaui_port_1_test_nested_no_compute:
+        type: org.openecomp.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_server_pd_1:
+        type: org.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_cmaui_port_2_test_nested_no_compute:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.allocation_server_pd_2:
+        type: org.openecomp.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_server_pd_2:
+        type: org.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_server_pd_2:
+        type: org.openecomp.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_server_pd_1:
+        type: org.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_packet_external_network_test_nested_no_compute:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.requests_server_pd_1:
+        type: org.openecomp.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_server_pd_2:
+        type: org.openecomp.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_server_pd_2:
+        type: org.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_test_nested_no_compute:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory.usage_server_pd_1:
+        type: org.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_pd02_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_packet_internal_network_test_nested_no_compute:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.requests.rate_server_pd_1:
+        type: org.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_server_pd_2:
+        type: tosca.capabilities.OperatingSystem
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.latency_server_pd_1:
+        type: org.openecomp.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_server_pd_2:
+        type: org.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_server_pd_2:
+        type: tosca.capabilities.Scalable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      scalable_server_pd_1:
+        type: tosca.capabilities.Scalable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      os_server_pd_1:
+        type: tosca.capabilities.OperatingSystem
+        occurrences:
+        - 1
+        - UNBOUNDED
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/in/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/in/MainServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..2e75551
--- /dev/null
@@ -0,0 +1,161 @@
+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
+      type: string
+      description: flavor name of PD instance
+    p1:
+      hidden: false
+      immutable: false
+      type: string
+      description: UID of OAM network
+    availabilityzone_name:
+      label: availabilityzone name
+      hidden: false
+      immutable: false
+      type: string
+      description: availabilityzone name
+    security_group_name:
+      hidden: false
+      immutable: false
+      type: string
+      description: network name of jsa log network
+    pd_image_name:
+      label: image name
+      hidden: false
+      immutable: false
+      type: string
+      description: PD image name
+    pd_server_names:
+      label: PD server names
+      hidden: false
+      immutable: false
+      type: list
+      description: name of the PD instance
+      entry_schema:
+        type: string
+    oam_net_name:
+      hidden: false
+      immutable: false
+      type: string
+      description: net name
+    jsa_name:
+      hidden: false
+      immutable: false
+      type: string
+      description: network name of jsa log network
+  node_templates:
+    test_nested1Level:
+      type: org.openecomp.resource.abstract.nodes.heat.nested1
+      directives:
+      - substitutable
+      properties:
+        p1:
+          get_input: p1
+        service_template_filter:
+          substitute_service_template: nested1ServiceTemplate.yaml
+    packet_internal_network:
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+      properties:
+        network_name:
+          get_input: jsa_name
+    abstract_pd_server_6:
+      type: org.openecomp.resource.abstract.nodes.pd_server_6
+      directives:
+      - substitutable
+      properties:
+        compute_pd_server_availability_zone:
+        - get_input: availabilityzone_name
+        compute_pd_server_name:
+        - get_input:
+          - pd_server_names
+          - 1
+        port_pd02_port_mac_requirements:
+          mac_count_required:
+            is_required: false
+        vm_flavor_name:
+          get_input: pd_flavor_name
+        port_pd02_port_network_role_tag: oam
+        vm_image_name:
+          get_input: pd_image_name
+        port_pd02_port_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        port_pd02_port_network:
+        - get_input: oam_net_name
+        compute_pd_server_user_data_format:
+        - RAW
+        service_template_filter:
+          substitute_service_template: Nested_pd_server_6ServiceTemplate.yaml
+          count: 1
+        index_value:
+          get_property:
+          - SELF
+          - service_template_filter
+          - index_value
+    abstract_pd_server_7:
+      type: org.openecomp.resource.abstract.nodes.pd_server_7
+      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
+        port_pd01_port_mac_requirements:
+          mac_count_required:
+            is_required: false
+        vm_image_name:
+          get_input: pd_image_name
+        port_pd01_port_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        port_pd01_port_network:
+        - packet_internal_network
+        compute_pd_server_user_data_format:
+        - RAW
+        service_template_filter:
+          substitute_service_template: Nested_pd_server_7ServiceTemplate.yaml
+          count: 1
+        index_value:
+          get_property:
+          - SELF
+          - service_template_filter
+          - index_value
+      requirements:
+      - link_pd_server_pd01_port:
+          capability: tosca.capabilities.network.Linkable
+          node: packet_internal_network
+          relationship: tosca.relationships.network.LinksTo
+  groups:
+    main_group:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/main.yml
+        description: |
+          Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
+      members:
+      - test_nested1Level
+      - packet_internal_network
+      - abstract_pd_server_6
+      - abstract_pd_server_7
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/in/Nested_pd_serverServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/in/Nested_pd_serverServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..796b811
--- /dev/null
@@ -0,0 +1,294 @@
+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.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_pd02_port_mac_requirements:
+      type: org.openecomp.datatypes.network.MacRequirements
+      required: true
+    vm_flavor_name:
+      type: string
+      required: true
+    port_pd02_port_order:
+      type: integer
+      required: true
+    port_pd02_port_subnetpoolid:
+      type: string
+      required: true
+    port_pd02_port_network_role_tag:
+      type: string
+      required: true
+    port_pd02_port_vlan_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.VlanRequirements
+    vm_image_name:
+      type: string
+      required: true
+    port_pd02_port_network_role:
+      type: string
+      required: true
+    port_pd02_port_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+    port_pd02_port_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+    port_pd02_port_network:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    compute_pd_server_user_data_format:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+  node_templates:
+    pd_server:
+      type: org.openecomp.resource.vfc.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_pd02_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        exCP_naming:
+          get_input: port_pd02_port_exCP_naming
+        vlan_requirements:
+          get_input: port_pd02_port_vlan_requirements
+        ip_requirements:
+          get_input: port_pd02_port_ip_requirements
+        network_role_tag:
+          get_input: port_pd02_port_network_role_tag
+        mac_requirements:
+          get_input: port_pd02_port_mac_requirements
+        order:
+          get_input: port_pd02_port_order
+        network_role:
+          get_input: port_pd02_port_network_role
+        subnetpoolid:
+          get_input: port_pd02_port_subnetpoolid
+        network:
+          get_input:
+          - port_pd02_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
+      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
+      binding_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - binding
+      network.outgoing.packets.rate_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.outgoing.packets.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.bytes_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.outgoing.bytes
+      feature_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - feature
+      network.incoming.bytes.rate_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.incoming.bytes.rate
+      network.outgoing.bytes.rate_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.outgoing.bytes.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
+      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
+      network.incoming.packets_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.incoming.packets
+      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
+      network.outpoing.packets_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.outpoing.packets
+      disk.write.bytes_pd_server:
+      - pd_server
+      - disk.write.bytes
+      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
+      attachment_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - attachment
+      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
+      disk.device.latency_pd_server:
+      - pd_server
+      - disk.device.latency
+      network.incoming.packets.rate_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.incoming.packets.rate
+      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
+      network.incoming.bytes_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.incoming.bytes
+    requirements:
+      local_storage_pd_server:
+      - pd_server
+      - local_storage
+      link_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - link
+      dependency_pd_server:
+      - pd_server
+      - dependency
+      dependency_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - dependency
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/in/Nested_pd_server_1ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/in/Nested_pd_server_1ServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..a6d8533
--- /dev/null
@@ -0,0 +1,294 @@
+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.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.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
+      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
+      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-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/in/Nested_pd_server_2ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/in/Nested_pd_server_2ServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..d6293b8
--- /dev/null
@@ -0,0 +1,301 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: Nested_pd_server_2
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+  org.openecomp.resource.vfc.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_pd02_port_mac_requirements:
+      type: org.openecomp.datatypes.network.MacRequirements
+      required: true
+    vm_flavor_name:
+      type: string
+      required: true
+    port_pd02_port_order:
+      type: integer
+      required: true
+    port_pd02_port_subnetpoolid:
+      type: string
+      required: true
+    port_pd02_port_network_role_tag:
+      type: string
+      required: true
+    port_pd02_port_vlan_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.VlanRequirements
+    vm_image_name:
+      type: string
+      required: true
+    port_pd02_port_network_role:
+      type: string
+      required: true
+    port_pd02_port_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+    port_pd02_port_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+    port_pd02_port_network:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    compute_pd_server_user_data_format:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+  node_templates:
+    pd_server:
+      type: org.openecomp.resource.vfc.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_pd02_port:
+      type: org.openecomp.resource.cp.v2.extNeutronCP
+      properties:
+        exCP_naming:
+          get_input: port_pd02_port_exCP_naming
+        vlan_requirements:
+          get_input: port_pd02_port_vlan_requirements
+        ip_requirements:
+          get_input: port_pd02_port_ip_requirements
+        network_role_tag:
+          get_input: port_pd02_port_network_role_tag
+        mac_requirements:
+          get_input: port_pd02_port_mac_requirements
+        order:
+          get_input: port_pd02_port_order
+        network_role:
+          get_input: port_pd02_port_network_role
+        subnetpoolid:
+          get_input: port_pd02_port_subnetpoolid
+        network:
+          get_input:
+          - port_pd02_port_network
+          - index_value
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: pd_server
+          relationship: tosca.relationships.network.BindsTo
+      capabilities:
+      - port_mirroring:
+          properties:
+            connection_point:
+              nfc_type: pd_server
+              network_role:
+                get_input: port_pd02_port_network_role
+  substitution_mappings:
+    node_type: org.openecomp.resource.abstract.nodes.pd_server_2
+    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
+      binding_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - binding
+      network.outgoing.packets.rate_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.outgoing.packets.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.bytes_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.outgoing.bytes
+      feature_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - feature
+      network.incoming.bytes.rate_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.incoming.bytes.rate
+      network.outgoing.bytes.rate_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.outgoing.bytes.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
+      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
+      network.incoming.packets_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.incoming.packets
+      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
+      network.outpoing.packets_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.outpoing.packets
+      disk.write.bytes_pd_server:
+      - pd_server
+      - disk.write.bytes
+      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
+      attachment_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - attachment
+      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
+      disk.device.latency_pd_server:
+      - pd_server
+      - disk.device.latency
+      network.incoming.packets.rate_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.incoming.packets.rate
+      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
+      network.incoming.bytes_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.incoming.bytes
+    requirements:
+      local_storage_pd_server:
+      - pd_server
+      - local_storage
+      link_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - link
+      dependency_pd_server:
+      - pd_server
+      - dependency
+      dependency_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - dependency
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/in/Nested_pd_server_3ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/in/Nested_pd_server_3ServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..9f140e0
--- /dev/null
@@ -0,0 +1,294 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: Nested_pd_server_3
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+  org.openecomp.resource.vfc.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.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_3
+    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
+      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-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/in/Nested_pd_server_4ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/in/Nested_pd_server_4ServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..0022b21
--- /dev/null
@@ -0,0 +1,294 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: Nested_pd_server_4
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+  org.openecomp.resource.vfc.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
+    port_ps02_port_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+    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_ps02_port_mac_requirements:
+      type: org.openecomp.datatypes.network.MacRequirements
+      required: true
+    vm_flavor_name:
+      type: string
+      required: true
+    port_ps02_port_network_role_tag:
+      type: string
+      required: true
+    port_ps02_port_network_role:
+      type: string
+      required: true
+    port_ps02_port_vlan_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.VlanRequirements
+    port_ps02_port_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+    vm_image_name:
+      type: string
+      required: true
+    port_ps02_port_subnetpoolid:
+      type: string
+      required: true
+    port_ps02_port_order:
+      type: integer
+      required: true
+    compute_pd_server_user_data_format:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_ps02_port_network:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+  node_templates:
+    pd_server:
+      type: org.openecomp.resource.vfc.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_ps02_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        exCP_naming:
+          get_input: port_ps02_port_exCP_naming
+        vlan_requirements:
+          get_input: port_ps02_port_vlan_requirements
+        ip_requirements:
+          get_input: port_ps02_port_ip_requirements
+        network_role_tag:
+          get_input: port_ps02_port_network_role_tag
+        mac_requirements:
+          get_input: port_ps02_port_mac_requirements
+        order:
+          get_input: port_ps02_port_order
+        network_role:
+          get_input: port_ps02_port_network_role
+        subnetpoolid:
+          get_input: port_ps02_port_subnetpoolid
+        network:
+          get_input:
+          - port_ps02_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_4
+    capabilities:
+      scalable_pd_server:
+      - pd_server
+      - scalable
+      disk.read.bytes.rate_pd_server:
+      - pd_server
+      - disk.read.bytes.rate
+      binding_pd_server_ps02_port:
+      - pd_server_ps02_port
+      - binding
+      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.incoming.bytes.rate_pd_server_ps02_port:
+      - pd_server_ps02_port
+      - network.incoming.bytes.rate
+      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
+      disk.iops_pd_server:
+      - pd_server
+      - disk.iops
+      network.incoming.packets.rate_pd_server_ps02_port:
+      - pd_server_ps02_port
+      - network.incoming.packets.rate
+      memory.resident_pd_server:
+      - pd_server
+      - memory.resident
+      cpu.delta_pd_server:
+      - pd_server
+      - cpu.delta
+      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
+      disk.capacity_pd_server:
+      - pd_server
+      - disk.capacity
+      network.incoming.bytes_pd_server_ps02_port:
+      - pd_server_ps02_port
+      - network.incoming.bytes
+      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
+      attachment_pd_server_ps02_port:
+      - pd_server_ps02_port
+      - attachment
+      feature_pd_server:
+      - pd_server
+      - feature
+      disk.usage_pd_server:
+      - pd_server
+      - disk.usage
+      disk.write.bytes_pd_server:
+      - pd_server
+      - disk.write.bytes
+      feature_pd_server_ps02_port:
+      - pd_server_ps02_port
+      - feature
+      network.outgoing.bytes.rate_pd_server_ps02_port:
+      - pd_server_ps02_port
+      - network.outgoing.bytes.rate
+      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
+      network.outgoing.packets.rate_pd_server_ps02_port:
+      - pd_server_ps02_port
+      - network.outgoing.packets.rate
+      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_ps02_port:
+      - pd_server_ps02_port
+      - network.outpoing.packets
+      disk.write.requests.rate_pd_server:
+      - pd_server
+      - disk.write.requests.rate
+      disk.ephemeral.size_pd_server:
+      - pd_server
+      - disk.ephemeral.size
+      network.outgoing.bytes_pd_server_ps02_port:
+      - pd_server_ps02_port
+      - network.outgoing.bytes
+      disk.write.requests_pd_server:
+      - pd_server
+      - disk.write.requests
+      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.incoming.packets_pd_server_ps02_port:
+      - pd_server_ps02_port
+      - network.incoming.packets
+      disk.device.iops_pd_server:
+      - pd_server
+      - disk.device.iops
+    requirements:
+      local_storage_pd_server:
+      - pd_server
+      - local_storage
+      link_pd_server_ps02_port:
+      - pd_server_ps02_port
+      - link
+      dependency_pd_server:
+      - pd_server
+      - dependency
+      dependency_pd_server_ps02_port:
+      - pd_server_ps02_port
+      - dependency
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/in/Nested_pd_server_5ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/in/Nested_pd_server_5ServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..1b0d54a
--- /dev/null
@@ -0,0 +1,294 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: Nested_pd_server_5
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+  org.openecomp.resource.vfc.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.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_5
+    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
+      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-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/in/Nested_pd_server_6ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/in/Nested_pd_server_6ServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..653d1b6
--- /dev/null
@@ -0,0 +1,294 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: Nested_pd_server_6
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+  org.openecomp.resource.vfc.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_pd02_port_mac_requirements:
+      type: org.openecomp.datatypes.network.MacRequirements
+      required: true
+    vm_flavor_name:
+      type: string
+      required: true
+    port_pd02_port_order:
+      type: integer
+      required: true
+    port_pd02_port_subnetpoolid:
+      type: string
+      required: true
+    port_pd02_port_network_role_tag:
+      type: string
+      required: true
+    port_pd02_port_vlan_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.VlanRequirements
+    vm_image_name:
+      type: string
+      required: true
+    port_pd02_port_network_role:
+      type: string
+      required: true
+    port_pd02_port_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+    port_pd02_port_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+    port_pd02_port_network:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    compute_pd_server_user_data_format:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+  node_templates:
+    pd_server:
+      type: org.openecomp.resource.vfc.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_pd02_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        exCP_naming:
+          get_input: port_pd02_port_exCP_naming
+        vlan_requirements:
+          get_input: port_pd02_port_vlan_requirements
+        ip_requirements:
+          get_input: port_pd02_port_ip_requirements
+        network_role_tag:
+          get_input: port_pd02_port_network_role_tag
+        mac_requirements:
+          get_input: port_pd02_port_mac_requirements
+        order:
+          get_input: port_pd02_port_order
+        network_role:
+          get_input: port_pd02_port_network_role
+        subnetpoolid:
+          get_input: port_pd02_port_subnetpoolid
+        network:
+          get_input:
+          - port_pd02_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_6
+    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
+      binding_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - binding
+      network.outgoing.packets.rate_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.outgoing.packets.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.bytes_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.outgoing.bytes
+      feature_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - feature
+      network.incoming.bytes.rate_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.incoming.bytes.rate
+      network.outgoing.bytes.rate_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.outgoing.bytes.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
+      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
+      network.incoming.packets_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.incoming.packets
+      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
+      network.outpoing.packets_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.outpoing.packets
+      disk.write.bytes_pd_server:
+      - pd_server
+      - disk.write.bytes
+      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
+      attachment_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - attachment
+      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
+      disk.device.latency_pd_server:
+      - pd_server
+      - disk.device.latency
+      network.incoming.packets.rate_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.incoming.packets.rate
+      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
+      network.incoming.bytes_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.incoming.bytes
+    requirements:
+      local_storage_pd_server:
+      - pd_server
+      - local_storage
+      link_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - link
+      dependency_pd_server:
+      - pd_server
+      - dependency
+      dependency_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - dependency
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/in/Nested_pd_server_7ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/in/Nested_pd_server_7ServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..6454173
--- /dev/null
@@ -0,0 +1,294 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: Nested_pd_server_7
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+  org.openecomp.resource.vfc.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.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_7
+    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
+      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-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/in/nested-no-computeServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/in/nested-no-computeServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..76061f4
--- /dev/null
@@ -0,0 +1,252 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: nested-no-compute
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+topology_template:
+  inputs:
+    cmaui_names:
+      hidden: false
+      immutable: false
+      type: list
+      description: CMAUI1, CMAUI2 server names
+      entry_schema:
+        type: string
+    p1:
+      hidden: false
+      immutable: false
+      type: string
+      description: UID of OAM network
+    p2:
+      hidden: false
+      immutable: false
+      type: string
+      description: UID of OAM network
+    cmaui_image:
+      hidden: false
+      immutable: false
+      type: string
+      description: Image for CMAUI server
+    cmaui_flavor:
+      hidden: false
+      immutable: false
+      type: string
+      description: Flavor for CMAUI server
+    packet_internal_network_name:
+      hidden: false
+      immutable: false
+      type: string
+    packet_external_network_name:
+      hidden: false
+      immutable: false
+      type: string
+    security_group_name:
+      hidden: false
+      immutable: false
+      type: list
+      description: CMAUI1, CMAUI2 server names
+      entry_schema:
+        type: string
+    availability_zone_0:
+      label: availabilityzone name
+      hidden: false
+      immutable: false
+      type: string
+      description: availabilityzone name
+    cmaui_oam_ips:
+      hidden: false
+      immutable: false
+      type: string
+    net:
+      hidden: false
+      immutable: false
+      type: string
+  node_templates:
+    cmaui_port_2:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        replacement_policy: AUTO
+        ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: true
+          floating_ip_count_required:
+            is_required: false
+        fixed_ips:
+        - ip_address:
+            get_input:
+            - cmaui_oam_ips
+            - 0
+        mac_requirements:
+          mac_count_required:
+            is_required: false
+        network: packet_external_network
+      requirements:
+      - link:
+          capability: tosca.capabilities.network.Linkable
+          node: packet_external_network
+          relationship: tosca.relationships.network.LinksTo
+    packet_external_network:
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+      properties:
+        network_name:
+          get_input: packet_external_network_name
+    packet_internal_network:
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+      properties:
+        network_name:
+          get_input: packet_internal_network_name
+    cmaui_port_1:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        replacement_policy: AUTO
+        ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: true
+          floating_ip_count_required:
+            is_required: false
+        fixed_ips:
+        - ip_address:
+            get_input:
+            - cmaui_oam_ips
+            - 0
+        mac_requirements:
+          mac_count_required:
+            is_required: false
+        network: packet_internal_network
+      requirements:
+      - link:
+          capability: tosca.capabilities.network.Linkable
+          node: packet_internal_network
+          relationship: tosca.relationships.network.LinksTo
+  groups:
+    nested-no-compute_group:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/nested-no-compute.yml
+        description: nested1
+      members:
+      - cmaui_port_2
+      - packet_external_network
+      - packet_internal_network
+      - cmaui_port_1
+  outputs:
+    no_compute_attr_1:
+      description: no_compute_attr_1
+      value: packet_external_network
+  substitution_mappings:
+    node_type: org.openecomp.resource.abstract.nodes.heat.nested-no-compute
+    capabilities:
+      network.incoming.packets_cmaui_port_2:
+      - cmaui_port_2
+      - network.incoming.packets
+      network.incoming.packets_cmaui_port_1:
+      - cmaui_port_1
+      - network.incoming.packets
+      network.incoming.packets.rate_cmaui_port_1:
+      - cmaui_port_1
+      - network.incoming.packets.rate
+      network.incoming.packets.rate_cmaui_port_2:
+      - cmaui_port_2
+      - network.incoming.packets.rate
+      feature_cmaui_port_1:
+      - cmaui_port_1
+      - feature
+      feature_cmaui_port_2:
+      - cmaui_port_2
+      - feature
+      end_point_packet_internal_network:
+      - packet_internal_network
+      - end_point
+      link_packet_internal_network:
+      - packet_internal_network
+      - link
+      feature_packet_internal_network:
+      - packet_internal_network
+      - feature
+      end_point_packet_external_network:
+      - packet_external_network
+      - end_point
+      attachment_cmaui_port_2:
+      - cmaui_port_2
+      - attachment
+      network.outgoing.bytes_cmaui_port_2:
+      - cmaui_port_2
+      - network.outgoing.bytes
+      network.outgoing.packets.rate_cmaui_port_1:
+      - cmaui_port_1
+      - network.outgoing.packets.rate
+      network.outgoing.packets.rate_cmaui_port_2:
+      - cmaui_port_2
+      - network.outgoing.packets.rate
+      network.outgoing.bytes_cmaui_port_1:
+      - cmaui_port_1
+      - network.outgoing.bytes
+      attachment_cmaui_port_1:
+      - cmaui_port_1
+      - attachment
+      binding_cmaui_port_1:
+      - cmaui_port_1
+      - binding
+      binding_cmaui_port_2:
+      - cmaui_port_2
+      - binding
+      network.incoming.bytes.rate_cmaui_port_1:
+      - cmaui_port_1
+      - network.incoming.bytes.rate
+      network.incoming.bytes.rate_cmaui_port_2:
+      - cmaui_port_2
+      - network.incoming.bytes.rate
+      attachment_packet_internal_network:
+      - packet_internal_network
+      - attachment
+      network.outpoing.packets_cmaui_port_1:
+      - cmaui_port_1
+      - network.outpoing.packets
+      network.outpoing.packets_cmaui_port_2:
+      - cmaui_port_2
+      - network.outpoing.packets
+      network.outgoing.bytes.rate_cmaui_port_2:
+      - cmaui_port_2
+      - network.outgoing.bytes.rate
+      network.outgoing.bytes.rate_cmaui_port_1:
+      - cmaui_port_1
+      - network.outgoing.bytes.rate
+      attachment_packet_external_network:
+      - packet_external_network
+      - attachment
+      network.incoming.bytes_cmaui_port_2:
+      - cmaui_port_2
+      - network.incoming.bytes
+      link_packet_external_network:
+      - packet_external_network
+      - link
+      feature_packet_external_network:
+      - packet_external_network
+      - feature
+      network.incoming.bytes_cmaui_port_1:
+      - cmaui_port_1
+      - network.incoming.bytes
+    requirements:
+      binding_cmaui_port_1:
+      - cmaui_port_1
+      - binding
+      binding_cmaui_port_2:
+      - cmaui_port_2
+      - binding
+      dependency_packet_internal_network:
+      - packet_internal_network
+      - dependency
+      dependency_cmaui_port_1:
+      - cmaui_port_1
+      - dependency
+      dependency_cmaui_port_2:
+      - cmaui_port_2
+      - dependency
+      dependency_packet_external_network:
+      - packet_external_network
+      - dependency
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/in/nested1ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/in/nested1ServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..2619ce8
--- /dev/null
@@ -0,0 +1,1375 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: nested1
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+topology_template:
+  inputs:
+    pd_flavor_name:
+      hidden: false
+      immutable: false
+      type: string
+      description: Flavor for CMAUI server
+    p1:
+      hidden: false
+      immutable: false
+      type: string
+      description: UID of OAM network
+    p2:
+      hidden: false
+      immutable: false
+      type: string
+      description: UID of OAM network
+    availabilityzone_name:
+      label: availabilityzone name
+      hidden: false
+      immutable: false
+      type: string
+      description: availabilityzone name
+    security_group_name:
+      hidden: false
+      immutable: false
+      type: list
+      description: CMAUI1, CMAUI2 server names
+      entry_schema:
+        type: string
+    pd_image_name:
+      hidden: false
+      immutable: false
+      type: string
+      description: Image for CMAUI server
+    pd_server_names:
+      hidden: false
+      immutable: false
+      type: list
+      description: CMAUI1, CMAUI2 server names
+      entry_schema:
+        type: string
+    net:
+      hidden: false
+      immutable: false
+      type: string
+    oam_net_name:
+      hidden: false
+      immutable: false
+      type: string
+    jsa_name:
+      hidden: false
+      immutable: false
+      type: string
+      description: network name of jsa log network
+  node_templates:
+    pd01_port_1:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        mac_requirements:
+          mac_count_required:
+            is_required: false
+        network: packet_internal_network_nested_1
+      requirements:
+      - link:
+          capability: tosca.capabilities.network.Linkable
+          node: packet_internal_network_nested_1
+          relationship: tosca.relationships.network.LinksTo
+    packet_internal_network_nested_1:
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+      properties:
+        network_name:
+          get_input: jsa_name
+    abstract_pd_server_4:
+      type: org.openecomp.resource.abstract.nodes.pd_server_4
+      directives:
+      - substitutable
+      properties:
+        port_ps02_port_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        compute_pd_server_availability_zone:
+        - get_input: availabilityzone_name
+        compute_pd_server_name:
+        - get_input:
+          - pd_server_names
+          - 1
+        port_ps02_port_mac_requirements:
+          mac_count_required:
+            is_required: false
+        vm_flavor_name:
+          get_input: pd_flavor_name
+        port_ps02_port_network_role_tag: oam
+        vm_image_name:
+          get_input: pd_image_name
+        compute_pd_server_user_data_format:
+        - RAW
+        port_ps02_port_network:
+        - get_input: oam_net_name
+        service_template_filter:
+          substitute_service_template: Nested_pd_server_4ServiceTemplate.yaml
+          count: 1
+        index_value:
+          get_property:
+          - SELF
+          - service_template_filter
+          - index_value
+    abstract_pd_server_5:
+      type: org.openecomp.resource.abstract.nodes.pd_server_5
+      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
+        port_pd01_port_mac_requirements:
+          mac_count_required:
+            is_required: false
+        vm_image_name:
+          get_input: pd_image_name
+        port_pd01_port_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        port_pd01_port_network:
+        - packet_internal_network_nested_1
+        compute_pd_server_user_data_format:
+        - RAW
+        service_template_filter:
+          substitute_service_template: Nested_pd_server_5ServiceTemplate.yaml
+          count: 1
+        index_value:
+          get_property:
+          - SELF
+          - service_template_filter
+          - index_value
+      requirements:
+      - link_pd_server_pd01_port:
+          capability: tosca.capabilities.network.Linkable
+          node: packet_internal_network_nested_1
+          relationship: tosca.relationships.network.LinksTo
+    test_nested2Level:
+      type: org.openecomp.resource.abstract.nodes.heat.nested2
+      directives:
+      - substitutable
+      properties:
+        p1:
+          get_input: p1
+        service_template_filter:
+          substitute_service_template: nested2ServiceTemplate.yaml
+  groups:
+    nested1_group:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/nested1.yml
+        description: nested1
+      members:
+      - pd01_port_1
+      - packet_internal_network_nested_1
+      - test_nested2Level
+      - abstract_pd_server_4
+      - abstract_pd_server_5
+  substitution_mappings:
+    node_type: org.openecomp.resource.abstract.nodes.heat.nested1
+    capabilities:
+      vcpus_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - vcpus_server_pd_1
+      network.incoming.bytes.rate_pd02_port_0_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - network.incoming.bytes.rate_pd02_port_0_test_nested3Level
+      feature_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - feature_server_pd_2
+      binding_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - binding_server_pd_2_test_nested3Level
+      disk.iops_server_pd_1:
+      - abstract_pd_server_5
+      - disk.iops_pd_server
+      disk.iops_server_pd_2:
+      - abstract_pd_server_4
+      - disk.iops_pd_server
+      disk.write.bytes.rate_server_pd_2:
+      - abstract_pd_server_4
+      - disk.write.bytes.rate_pd_server
+      disk.write.bytes.rate_server_pd_1:
+      - abstract_pd_server_5
+      - disk.write.bytes.rate_pd_server
+      disk.read.requests_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - disk.read.requests_server_pd_2
+      disk.device.iops_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - disk.device.iops_server_pd_1
+      network.outgoing.packets.rate_cmaui_port_2_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - network.outgoing.packets.rate_cmaui_port_2_test_nested_no_compute_test_nested3Level
+      network.outgoing.bytes_pd01_port_0_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - network.outgoing.bytes_pd01_port_0_test_nested3Level
+      disk.device.write.bytes.rate_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - disk.device.write.bytes.rate_server_pd_1
+      disk.write.bytes_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.write.bytes_server_pd_2_test_nested3Level
+      network.outgoing.packets.rate_pd02_port_0_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - network.outgoing.packets.rate_pd02_port_0_test_nested3Level
+      disk.ephemeral.size_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - disk.ephemeral.size_server_pd_1
+      vcpus_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - vcpus_server_pd_2
+      feature_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - feature_server_pd_2_test_nested3Level
+      disk.device.usage_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.device.usage_server_pd_1_test_nested3Level
+      os_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - os_server_pd_1
+      end_point_packet_internal_network_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - end_point_packet_internal_network_test_nested_no_compute_test_nested3Level
+      host_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - host_server_pd_2
+      disk.ephemeral.size_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - disk.ephemeral.size_server_pd_2
+      disk.latency_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - disk.latency_server_pd_2
+      memory.resident_server_pd_1:
+      - abstract_pd_server_5
+      - memory.resident_pd_server
+      os_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - os_server_pd_2
+      disk.latency_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - disk.latency_server_pd_1
+      memory.resident_server_pd_2:
+      - abstract_pd_server_4
+      - memory.resident_pd_server
+      feature_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - feature_server_pd_1_test_nested3Level
+      binding_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - binding_server_pd_1_test_nested3Level
+      feature_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - feature_server_pd_1
+      feature_pd01_port_0_test_nested2Level:
+      - test_nested2Level
+      - feature_pd01_port_0
+      disk.write.bytes_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.write.bytes_server_pd_1_test_nested3Level
+      disk.ephemeral.size_server_pd_2:
+      - abstract_pd_server_4
+      - disk.ephemeral.size_pd_server
+      disk.ephemeral.size_server_pd_1:
+      - abstract_pd_server_5
+      - disk.ephemeral.size_pd_server
+      disk.write.bytes.rate_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - disk.write.bytes.rate_server_pd_1
+      network.incoming.packets_cmaui_port_2_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - network.incoming.packets_cmaui_port_2_test_nested_no_compute_test_nested3Level
+      feature_packet_internal_network_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - feature_packet_internal_network_test_nested_no_compute_test_nested3Level
+      feature_cmaui_port_2_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - feature_cmaui_port_2_test_nested_no_compute_test_nested3Level
+      binding_pd01_port_1:
+      - pd01_port_1
+      - binding
+      binding_pd01_port_0_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - binding_pd01_port_0_test_nested3Level
+      binding_pd01_port_0:
+      - abstract_pd_server_5
+      - binding_pd_server_pd01_port
+      host_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - host_server_pd_1
+      disk.device.read.bytes_server_pd_1:
+      - abstract_pd_server_5
+      - disk.device.read.bytes_pd_server
+      network.incoming.bytes.rate_pd02_port_0_test_nested2Level:
+      - test_nested2Level
+      - network.incoming.bytes.rate_pd02_port_0
+      disk.device.read.bytes_server_pd_2:
+      - abstract_pd_server_4
+      - disk.device.read.bytes_pd_server
+      attachment_pd01_port_0_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - attachment_pd01_port_0_test_nested3Level
+      instance_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - instance_server_pd_1_test_nested3Level
+      network.outgoing.packets.rate_pd01_port_1:
+      - pd01_port_1
+      - network.outgoing.packets.rate
+      cpu_util_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - cpu_util_server_pd_1
+      network.outgoing.packets.rate_pd01_port_0:
+      - abstract_pd_server_5
+      - network.outgoing.packets.rate_pd_server_pd01_port
+      disk.write.bytes.rate_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - disk.write.bytes.rate_server_pd_2
+      feature_packet_external_network_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - feature_packet_external_network_test_nested_no_compute_test_nested3Level
+      attachment_cmaui_port_2_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - attachment_cmaui_port_2_test_nested_no_compute_test_nested3Level
+      disk.device.latency_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.device.latency_server_pd_2_test_nested3Level
+      disk.root.size_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.root.size_server_pd_2_test_nested3Level
+      feature_pd01_port_0_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - feature_pd01_port_0_test_nested3Level
+      attachment_ps02_port_0:
+      - abstract_pd_server_4
+      - attachment_pd_server_ps02_port
+      disk.capacity_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - disk.capacity_server_pd_1
+      network.incoming.packets_pd02_port_0_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - network.incoming.packets_pd02_port_0_test_nested3Level
+      attachment_pd02_port_0_test_nested2Level:
+      - test_nested2Level
+      - attachment_pd02_port_0
+      disk.device.usage_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - disk.device.usage_server_pd_1
+      feature_test_nested2Level:
+      - test_nested2Level
+      - feature
+      disk.read.bytes_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.read.bytes_server_pd_2_test_nested3Level
+      network.incoming.packets.rate_cmaui_port_1_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - network.incoming.packets.rate_cmaui_port_1_test_nested_no_compute_test_nested3Level
+      network.outgoing.bytes_cmaui_port_1_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - network.outgoing.bytes_cmaui_port_1_test_nested_no_compute_test_nested3Level
+      disk.read.requests_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - disk.read.requests_server_pd_1
+      disk.device.write.bytes_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - disk.device.write.bytes_server_pd_1
+      disk.device.read.bytes_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - disk.device.read.bytes_server_pd_2
+      instance_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - instance_server_pd_2_test_nested3Level
+      disk.read.bytes_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - disk.read.bytes_server_pd_1
+      disk.device.usage_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.device.usage_server_pd_2_test_nested3Level
+      endpoint_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - endpoint_server_pd_1
+      disk.allocation_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - disk.allocation_server_pd_2
+      disk.read.bytes.rate_server_pd_2:
+      - abstract_pd_server_4
+      - disk.read.bytes.rate_pd_server
+      disk.device.read.requests.rate_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - disk.device.read.requests.rate_server_pd_1
+      disk.read.bytes.rate_server_pd_1:
+      - abstract_pd_server_5
+      - disk.read.bytes.rate_pd_server
+      cpu_server_pd_2:
+      - abstract_pd_server_4
+      - cpu_pd_server
+      attachment_pd01_port_1:
+      - pd01_port_1
+      - attachment
+      cpu_server_pd_1:
+      - abstract_pd_server_5
+      - cpu_pd_server
+      disk.root.size_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.root.size_server_pd_1_test_nested3Level
+      attachment_pd01_port_0:
+      - abstract_pd_server_5
+      - attachment_pd_server_pd01_port
+      network.outpoing.packets_cmaui_port_2_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - network.outpoing.packets_cmaui_port_2_test_nested_no_compute_test_nested3Level
+      network.incoming.bytes.rate_pd01_port_0_test_nested2Level:
+      - test_nested2Level
+      - network.incoming.bytes.rate_pd01_port_0
+      binding_cmaui_port_1_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - binding_cmaui_port_1_test_nested_no_compute_test_nested3Level
+      endpoint_server_pd_2:
+      - abstract_pd_server_4
+      - endpoint_pd_server
+      memory.resident_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - memory.resident_server_pd_2
+      network.outgoing.packets.rate_pd01_port_0_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - network.outgoing.packets.rate_pd01_port_0_test_nested3Level
+      endpoint_server_pd_1:
+      - abstract_pd_server_5
+      - endpoint_pd_server
+      vcpus_server_pd_1:
+      - abstract_pd_server_5
+      - vcpus_pd_server
+      vcpus_server_pd_2:
+      - abstract_pd_server_4
+      - vcpus_pd_server
+      disk.read.bytes.rate_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.read.bytes.rate_server_pd_2_test_nested3Level
+      endpoint_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - endpoint_server_pd_2_test_nested3Level
+      disk.write.requests_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - disk.write.requests_server_pd_1
+      disk.device.write.bytes_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.device.write.bytes_server_pd_2_test_nested3Level
+      network.outgoing.bytes_pd01_port_0_test_nested2Level:
+      - test_nested2Level
+      - network.outgoing.bytes_pd01_port_0
+      disk.device.write.requests_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.device.write.requests_server_pd_2_test_nested3Level
+      network.incoming.bytes_pd01_port_0_test_nested2Level:
+      - test_nested2Level
+      - network.incoming.bytes_pd01_port_0
+      disk.device.write.bytes.rate_server_pd_1:
+      - abstract_pd_server_5
+      - disk.device.write.bytes.rate_pd_server
+      cpu_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - cpu_server_pd_1
+      disk.device.write.bytes.rate_server_pd_2:
+      - abstract_pd_server_4
+      - disk.device.write.bytes.rate_pd_server
+      disk.ephemeral.size_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.ephemeral.size_server_pd_1_test_nested3Level
+      disk.write.requests.rate_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.write.requests.rate_server_pd_1_test_nested3Level
+      disk.write.requests.rate_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - disk.write.requests.rate_server_pd_2
+      network.incoming.bytes.rate_pd01_port_0_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - network.incoming.bytes.rate_pd01_port_0_test_nested3Level
+      disk.device.write.requests.rate_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - disk.device.write.requests.rate_server_pd_1
+      disk.write.bytes_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - disk.write.bytes_server_pd_2
+      network.outgoing.bytes.rate_pd01_port_0_test_nested2Level:
+      - test_nested2Level
+      - network.outgoing.bytes.rate_pd01_port_0
+      cpu.delta_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - cpu.delta_server_pd_2
+      network.incoming.bytes.rate_pd01_port_0:
+      - abstract_pd_server_5
+      - network.incoming.bytes.rate_pd_server_pd01_port
+      disk.latency_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.latency_server_pd_1_test_nested3Level
+      network.incoming.bytes.rate_pd01_port_1:
+      - pd01_port_1
+      - network.incoming.bytes.rate
+      feature_pd02_port_0_test_nested2Level:
+      - test_nested2Level
+      - feature_pd02_port_0
+      attachment_packet_internal_network_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - attachment_packet_internal_network_test_nested_no_compute_test_nested3Level
+      cpu_util_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - cpu_util_server_pd_1_test_nested3Level
+      link_packet_internal_network_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - link_packet_internal_network_test_nested_no_compute_test_nested3Level
+      disk.device.allocation_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - disk.device.allocation_server_pd_1
+      network.outgoing.packets.rate_cmaui_port_1_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - network.outgoing.packets.rate_cmaui_port_1_test_nested_no_compute_test_nested3Level
+      disk.device.read.bytes_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.device.read.bytes_server_pd_2_test_nested3Level
+      disk.iops_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.iops_server_pd_2_test_nested3Level
+      instance_server_pd_1:
+      - abstract_pd_server_5
+      - instance_pd_server
+      disk.device.read.requests.rate_server_pd_1:
+      - abstract_pd_server_5
+      - disk.device.read.requests.rate_pd_server
+      network.incoming.packets_pd02_port_0_test_nested2Level:
+      - test_nested2Level
+      - network.incoming.packets_pd02_port_0
+      instance_server_pd_2:
+      - abstract_pd_server_4
+      - instance_pd_server
+      disk.device.read.requests.rate_server_pd_2:
+      - abstract_pd_server_4
+      - disk.device.read.requests.rate_pd_server
+      disk.capacity_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.capacity_server_pd_1_test_nested3Level
+      network.outgoing.packets.rate_pd02_port_0_test_nested2Level:
+      - test_nested2Level
+      - network.outgoing.packets.rate_pd02_port_0
+      binding_ps02_port_0:
+      - abstract_pd_server_4
+      - binding_pd_server_ps02_port
+      disk.write.bytes.rate_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.write.bytes.rate_server_pd_2_test_nested3Level
+      cpu_util_server_pd_1:
+      - abstract_pd_server_5
+      - cpu_util_pd_server
+      cpu_util_server_pd_2:
+      - abstract_pd_server_4
+      - cpu_util_pd_server
+      disk.device.read.bytes.rate_server_pd_2:
+      - abstract_pd_server_4
+      - disk.device.read.bytes.rate_pd_server
+      network.outgoing.bytes_cmaui_port_2_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - network.outgoing.bytes_cmaui_port_2_test_nested_no_compute_test_nested3Level
+      disk.capacity_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - disk.capacity_server_pd_2
+      disk.allocation_server_pd_2:
+      - abstract_pd_server_4
+      - disk.allocation_pd_server
+      disk.device.write.bytes_server_pd_1:
+      - abstract_pd_server_5
+      - disk.device.write.bytes_pd_server
+      disk.device.write.bytes_server_pd_2:
+      - abstract_pd_server_4
+      - disk.device.write.bytes_pd_server
+      disk.allocation_server_pd_1:
+      - abstract_pd_server_5
+      - disk.allocation_pd_server
+      network.incoming.packets.rate_pd01_port_0:
+      - abstract_pd_server_5
+      - network.incoming.packets.rate_pd_server_pd01_port
+      disk.capacity_server_pd_2:
+      - abstract_pd_server_4
+      - disk.capacity_pd_server
+      disk.read.bytes_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - disk.read.bytes_server_pd_2
+      network.incoming.packets.rate_pd01_port_1:
+      - pd01_port_1
+      - network.incoming.packets.rate
+      disk.capacity_server_pd_1:
+      - abstract_pd_server_5
+      - disk.capacity_pd_server
+      disk.allocation_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.allocation_server_pd_2_test_nested3Level
+      disk.device.read.bytes.rate_server_pd_1:
+      - abstract_pd_server_5
+      - disk.device.read.bytes.rate_pd_server
+      network.outpoing.packets_pd01_port_1:
+      - pd01_port_1
+      - network.outpoing.packets
+      end_point_packet_internal_network_nested_1:
+      - packet_internal_network_nested_1
+      - end_point
+      os_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - os_server_pd_2_test_nested3Level
+      network.outgoing.packets.rate_ps02_port_0:
+      - abstract_pd_server_4
+      - network.outgoing.packets.rate_pd_server_ps02_port
+      cpu.delta_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - cpu.delta_server_pd_1_test_nested3Level
+      network.incoming.bytes.rate_cmaui_port_2_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - network.incoming.bytes.rate_cmaui_port_2_test_nested_no_compute_test_nested3Level
+      feature_packet_internal_network_nested_1:
+      - packet_internal_network_nested_1
+      - feature
+      disk.device.allocation_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.device.allocation_server_pd_1_test_nested3Level
+      network.outpoing.packets_pd01_port_0:
+      - abstract_pd_server_5
+      - network.outpoing.packets_pd_server_pd01_port
+      binding_server_pd_2:
+      - abstract_pd_server_4
+      - binding_pd_server
+      link_packet_external_network_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - link_packet_external_network_test_nested_no_compute_test_nested3Level
+      disk.device.write.requests_server_pd_2:
+      - abstract_pd_server_4
+      - disk.device.write.requests_pd_server
+      binding_server_pd_1:
+      - abstract_pd_server_5
+      - binding_pd_server
+      disk.device.write.requests_server_pd_1:
+      - abstract_pd_server_5
+      - disk.device.write.requests_pd_server
+      disk.usage_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - disk.usage_server_pd_1
+      binding_cmaui_port_2_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - binding_cmaui_port_2_test_nested_no_compute_test_nested3Level
+      binding_pd02_port_0_test_nested2Level:
+      - test_nested2Level
+      - binding_pd02_port_0
+      disk.write.requests_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.write.requests_server_pd_2_test_nested3Level
+      network.incoming.packets.rate_pd01_port_0_test_nested2Level:
+      - test_nested2Level
+      - network.incoming.packets.rate_pd01_port_0
+      network.incoming.bytes.rate_ps02_port_0:
+      - abstract_pd_server_4
+      - network.incoming.bytes.rate_pd_server_ps02_port
+      disk.device.write.requests.rate_server_pd_2:
+      - abstract_pd_server_4
+      - disk.device.write.requests.rate_pd_server
+      disk.read.bytes_server_pd_1:
+      - abstract_pd_server_5
+      - disk.read.bytes_pd_server
+      disk.device.iops_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.device.iops_server_pd_1_test_nested3Level
+      cpu_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - cpu_server_pd_1_test_nested3Level
+      disk.device.read.requests_server_pd_1:
+      - abstract_pd_server_5
+      - disk.device.read.requests_pd_server
+      disk.root.size_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - disk.root.size_server_pd_2
+      disk.device.read.requests_server_pd_2:
+      - abstract_pd_server_4
+      - disk.device.read.requests_pd_server
+      disk.read.bytes_server_pd_2:
+      - abstract_pd_server_4
+      - disk.read.bytes_pd_server
+      disk.device.write.requests.rate_server_pd_1:
+      - abstract_pd_server_5
+      - disk.device.write.requests.rate_pd_server
+      host_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - host_server_pd_1_test_nested3Level
+      vcpus_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - vcpus_server_pd_2_test_nested3Level
+      network.outpoing.packets_ps02_port_0:
+      - abstract_pd_server_4
+      - network.outpoing.packets_pd_server_ps02_port
+      endpoint_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - endpoint_server_pd_2
+      disk.read.requests_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.read.requests_server_pd_1_test_nested3Level
+      memory.resident_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - memory.resident_server_pd_2_test_nested3Level
+      network.incoming.packets.rate_cmaui_port_2_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - network.incoming.packets.rate_cmaui_port_2_test_nested_no_compute_test_nested3Level
+      disk.read.bytes.rate_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - disk.read.bytes.rate_server_pd_1
+      disk.root.size_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - disk.root.size_server_pd_1
+      host_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - host_server_pd_2_test_nested3Level
+      memory_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - memory_server_pd_2
+      disk.device.capacity_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - disk.device.capacity_server_pd_1
+      binding_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - binding_server_pd_2
+      network.outgoing.bytes.rate_cmaui_port_1_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - network.outgoing.bytes.rate_cmaui_port_1_test_nested_no_compute_test_nested3Level
+      cpu.delta_server_pd_2:
+      - abstract_pd_server_4
+      - cpu.delta_pd_server
+      disk.usage_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.usage_server_pd_2_test_nested3Level
+      feature_server_pd_2:
+      - abstract_pd_server_4
+      - feature_pd_server
+      feature_server_pd_1:
+      - abstract_pd_server_5
+      - feature_pd_server
+      scalable_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - scalable_server_pd_1
+      cpu.delta_server_pd_1:
+      - abstract_pd_server_5
+      - cpu.delta_pd_server
+      host_server_pd_1:
+      - abstract_pd_server_5
+      - host_pd_server
+      binding_pd01_port_0_test_nested2Level:
+      - test_nested2Level
+      - binding_pd01_port_0
+      host_server_pd_2:
+      - abstract_pd_server_4
+      - host_pd_server
+      memory.usage_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - memory.usage_server_pd_1_test_nested3Level
+      network.outgoing.bytes_pd01_port_0:
+      - abstract_pd_server_5
+      - network.outgoing.bytes_pd_server_pd01_port
+      network.outgoing.bytes_pd01_port_1:
+      - pd01_port_1
+      - network.outgoing.bytes
+      disk.device.read.requests.rate_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.device.read.requests.rate_server_pd_2_test_nested3Level
+      disk.device.read.requests_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.device.read.requests_server_pd_2_test_nested3Level
+      memory.usage_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - memory.usage_server_pd_2
+      disk.device.read.bytes.rate_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.device.read.bytes.rate_server_pd_1_test_nested3Level
+      memory_server_pd_2:
+      - abstract_pd_server_4
+      - memory_pd_server
+      binding_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - binding_server_pd_1
+      memory_server_pd_1:
+      - abstract_pd_server_5
+      - memory_pd_server
+      disk.device.read.requests.rate_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.device.read.requests.rate_server_pd_1_test_nested3Level
+      os_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - os_server_pd_1_test_nested3Level
+      disk.allocation_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.allocation_server_pd_1_test_nested3Level
+      network.outgoing.bytes.rate_pd01_port_0_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - network.outgoing.bytes.rate_pd01_port_0_test_nested3Level
+      network.incoming.packets_cmaui_port_1_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - network.incoming.packets_cmaui_port_1_test_nested_no_compute_test_nested3Level
+      attachment_packet_external_network_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - attachment_packet_external_network_test_nested_no_compute_test_nested3Level
+      network.outpoing.packets_pd01_port_0_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - network.outpoing.packets_pd01_port_0_test_nested3Level
+      memory.usage_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - memory.usage_server_pd_1
+      disk.read.bytes.rate_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - disk.read.bytes.rate_server_pd_2
+      feature_ps02_port_0:
+      - abstract_pd_server_4
+      - feature_pd_server_ps02_port
+      disk.device.capacity_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.device.capacity_server_pd_2_test_nested3Level
+      disk.device.read.requests_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.device.read.requests_server_pd_1_test_nested3Level
+      network.outgoing.packets.rate_pd01_port_0_test_nested2Level:
+      - test_nested2Level
+      - network.outgoing.packets.rate_pd01_port_0
+      memory_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - memory_server_pd_1
+      disk.device.read.bytes.rate_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - disk.device.read.bytes.rate_server_pd_2
+      disk.write.requests_server_pd_1:
+      - abstract_pd_server_5
+      - disk.write.requests_pd_server
+      network.incoming.bytes_cmaui_port_2_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - network.incoming.bytes_cmaui_port_2_test_nested_no_compute_test_nested3Level
+      attachment_cmaui_port_1_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - attachment_cmaui_port_1_test_nested_no_compute_test_nested3Level
+      scalable_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - scalable_server_pd_2
+      disk.write.requests_server_pd_2:
+      - abstract_pd_server_4
+      - disk.write.requests_pd_server
+      disk.write.bytes_server_pd_1:
+      - abstract_pd_server_5
+      - disk.write.bytes_pd_server
+      network.outpoing.packets_pd01_port_0_test_nested2Level:
+      - test_nested2Level
+      - network.outpoing.packets_pd01_port_0
+      cpu_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - cpu_server_pd_2_test_nested3Level
+      disk.write.bytes_server_pd_2:
+      - abstract_pd_server_4
+      - disk.write.bytes_pd_server
+      disk.read.requests_server_pd_1:
+      - abstract_pd_server_5
+      - disk.read.requests_pd_server
+      disk.read.requests_server_pd_2:
+      - abstract_pd_server_4
+      - disk.read.requests_pd_server
+      disk.device.usage_server_pd_2:
+      - abstract_pd_server_4
+      - disk.device.usage_pd_server
+      disk.device.usage_server_pd_1:
+      - abstract_pd_server_5
+      - disk.device.usage_pd_server
+      network.incoming.bytes_pd02_port_0_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - network.incoming.bytes_pd02_port_0_test_nested3Level
+      disk.device.read.bytes.rate_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.device.read.bytes.rate_server_pd_2_test_nested3Level
+      disk.device.write.bytes.rate_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.device.write.bytes.rate_server_pd_1_test_nested3Level
+      disk.capacity_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.capacity_server_pd_2_test_nested3Level
+      disk.write.requests.rate_server_pd_1:
+      - abstract_pd_server_5
+      - disk.write.requests.rate_pd_server
+      disk.write.requests.rate_server_pd_2:
+      - abstract_pd_server_4
+      - disk.write.requests.rate_pd_server
+      disk.root.size_server_pd_1:
+      - abstract_pd_server_5
+      - disk.root.size_pd_server
+      memory_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - memory_server_pd_2_test_nested3Level
+      cpu.delta_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - cpu.delta_server_pd_1
+      instance_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - instance_server_pd_1
+      binding_pd02_port_0_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - binding_pd02_port_0_test_nested3Level
+      disk.device.write.requests.rate_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.device.write.requests.rate_server_pd_2_test_nested3Level
+      network.incoming.packets.rate_ps02_port_0:
+      - abstract_pd_server_4
+      - network.incoming.packets.rate_pd_server_ps02_port
+      network.outgoing.bytes.rate_pd02_port_0_test_nested2Level:
+      - test_nested2Level
+      - network.outgoing.bytes.rate_pd02_port_0
+      disk.device.iops_server_pd_1:
+      - abstract_pd_server_5
+      - disk.device.iops_pd_server
+      network.outgoing.bytes_pd02_port_0_test_nested2Level:
+      - test_nested2Level
+      - network.outgoing.bytes_pd02_port_0
+      network.outgoing.bytes.rate_ps02_port_0:
+      - abstract_pd_server_4
+      - network.outgoing.bytes.rate_pd_server_ps02_port
+      disk.device.read.bytes.rate_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - disk.device.read.bytes.rate_server_pd_1
+      disk.device.iops_server_pd_2:
+      - abstract_pd_server_4
+      - disk.device.iops_pd_server
+      disk.device.capacity_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - disk.device.capacity_server_pd_2
+      disk.iops_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - disk.iops_server_pd_2
+      endpoint_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - endpoint_server_pd_1_test_nested3Level
+      memory_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - memory_server_pd_1_test_nested3Level
+      scalable_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - scalable_server_pd_2_test_nested3Level
+      disk.device.write.requests_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - disk.device.write.requests_server_pd_2
+      disk.device.capacity_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.device.capacity_server_pd_1_test_nested3Level
+      attachment_pd01_port_0_test_nested2Level:
+      - test_nested2Level
+      - attachment_pd01_port_0
+      disk.root.size_server_pd_2:
+      - abstract_pd_server_4
+      - disk.root.size_pd_server
+      disk.usage_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - disk.usage_server_pd_2
+      disk.usage_server_pd_2:
+      - abstract_pd_server_4
+      - disk.usage_pd_server
+      disk.usage_server_pd_1:
+      - abstract_pd_server_5
+      - disk.usage_pd_server
+      disk.write.bytes_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - disk.write.bytes_server_pd_1
+      end_point_packet_external_network_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - end_point_packet_external_network_test_nested_no_compute_test_nested3Level
+      disk.device.latency_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - disk.device.latency_server_pd_1
+      cpu_util_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - cpu_util_server_pd_2_test_nested3Level
+      disk.device.write.requests_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - disk.device.write.requests_server_pd_1
+      network.outgoing.bytes_ps02_port_0:
+      - abstract_pd_server_4
+      - network.outgoing.bytes_pd_server_ps02_port
+      disk.device.read.requests_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - disk.device.read.requests_server_pd_2
+      disk.device.capacity_server_pd_2:
+      - abstract_pd_server_4
+      - disk.device.capacity_pd_server
+      disk.device.capacity_server_pd_1:
+      - abstract_pd_server_5
+      - disk.device.capacity_pd_server
+      attachment_packet_internal_network_nested_1:
+      - packet_internal_network_nested_1
+      - attachment
+      disk.device.read.bytes_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.device.read.bytes_server_pd_1_test_nested3Level
+      feature_pd02_port_0_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - feature_pd02_port_0_test_nested3Level
+      disk.device.allocation_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - disk.device.allocation_server_pd_2
+      network.outpoing.packets_pd02_port_0_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - network.outpoing.packets_pd02_port_0_test_nested3Level
+      disk.iops_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.iops_server_pd_1_test_nested3Level
+      disk.read.bytes_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.read.bytes_server_pd_1_test_nested3Level
+      feature_cmaui_port_1_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - feature_cmaui_port_1_test_nested_no_compute_test_nested3Level
+      network.incoming.bytes.rate_cmaui_port_1_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - network.incoming.bytes.rate_cmaui_port_1_test_nested_no_compute_test_nested3Level
+      disk.write.requests_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - disk.write.requests_server_pd_2
+      disk.device.write.bytes_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.device.write.bytes_server_pd_1_test_nested3Level
+      network.outgoing.bytes.rate_cmaui_port_2_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - network.outgoing.bytes.rate_cmaui_port_2_test_nested_no_compute_test_nested3Level
+      feature_pd01_port_1:
+      - pd01_port_1
+      - feature
+      disk.device.latency_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - disk.device.latency_server_pd_2
+      disk.device.write.requests.rate_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.device.write.requests.rate_server_pd_1_test_nested3Level
+      feature_pd01_port_0:
+      - abstract_pd_server_5
+      - feature_pd_server_pd01_port
+      disk.device.latency_server_pd_2:
+      - abstract_pd_server_4
+      - disk.device.latency_pd_server
+      disk.read.bytes.rate_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.read.bytes.rate_server_pd_1_test_nested3Level
+      vcpus_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - vcpus_server_pd_1_test_nested3Level
+      disk.device.latency_server_pd_1:
+      - abstract_pd_server_5
+      - disk.device.latency_pd_server
+      disk.write.requests.rate_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.write.requests.rate_server_pd_2_test_nested3Level
+      disk.write.requests.rate_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - disk.write.requests.rate_server_pd_1
+      network.incoming.packets_pd01_port_0_test_nested2Level:
+      - test_nested2Level
+      - network.incoming.packets_pd01_port_0
+      disk.device.write.requests.rate_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - disk.device.write.requests.rate_server_pd_2
+      network.outpoing.packets_pd02_port_0_test_nested2Level:
+      - test_nested2Level
+      - network.outpoing.packets_pd02_port_0
+      disk.device.latency_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.device.latency_server_pd_1_test_nested3Level
+      cpu.delta_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - cpu.delta_server_pd_2_test_nested3Level
+      disk.ephemeral.size_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.ephemeral.size_server_pd_2_test_nested3Level
+      disk.device.write.requests_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.device.write.requests_server_pd_1_test_nested3Level
+      network.outgoing.bytes_pd02_port_0_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - network.outgoing.bytes_pd02_port_0_test_nested3Level
+      scalable_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - scalable_server_pd_1_test_nested3Level
+      disk.device.write.bytes.rate_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.device.write.bytes.rate_server_pd_2_test_nested3Level
+      feature_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - feature_test_nested_no_compute_test_nested3Level
+      disk.device.read.requests_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - disk.device.read.requests_server_pd_1
+      disk.write.bytes.rate_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.write.bytes.rate_server_pd_1_test_nested3Level
+      network.incoming.packets.rate_pd02_port_0_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - network.incoming.packets.rate_pd02_port_0_test_nested3Level
+      disk.device.read.requests.rate_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - disk.device.read.requests.rate_server_pd_2
+      link_packet_internal_network_nested_1:
+      - packet_internal_network_nested_1
+      - link
+      disk.device.write.bytes_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - disk.device.write.bytes_server_pd_2
+      disk.allocation_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - disk.allocation_server_pd_1
+      network.outgoing.bytes.rate_pd01_port_0:
+      - abstract_pd_server_5
+      - network.outgoing.bytes.rate_pd_server_pd01_port
+      memory.resident_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - memory.resident_server_pd_1_test_nested3Level
+      network.outgoing.bytes.rate_pd01_port_1:
+      - pd01_port_1
+      - network.outgoing.bytes.rate
+      disk.device.read.bytes_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - disk.device.read.bytes_server_pd_1
+      network.incoming.bytes_ps02_port_0:
+      - abstract_pd_server_4
+      - network.incoming.bytes_pd_server_ps02_port
+      network.incoming.bytes_pd01_port_0:
+      - abstract_pd_server_5
+      - network.incoming.bytes_pd_server_pd01_port
+      network.incoming.bytes_pd01_port_1:
+      - pd01_port_1
+      - network.incoming.bytes
+      disk.device.iops_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.device.iops_server_pd_2_test_nested3Level
+      network.incoming.bytes_pd01_port_0_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - network.incoming.bytes_pd01_port_0_test_nested3Level
+      network.incoming.bytes_cmaui_port_1_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - network.incoming.bytes_cmaui_port_1_test_nested_no_compute_test_nested3Level
+      network.incoming.packets_pd01_port_0_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - network.incoming.packets_pd01_port_0_test_nested3Level
+      disk.read.requests_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.read.requests_server_pd_2_test_nested3Level
+      disk.iops_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - disk.iops_server_pd_1
+      disk.write.requests_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.write.requests_server_pd_1_test_nested3Level
+      network.incoming.packets_pd01_port_1:
+      - pd01_port_1
+      - network.incoming.packets
+      instance_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - instance_server_pd_2
+      network.incoming.packets_pd01_port_0:
+      - abstract_pd_server_5
+      - network.incoming.packets_pd_server_pd01_port
+      attachment_pd02_port_0_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - attachment_pd02_port_0_test_nested3Level
+      cpu_util_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - cpu_util_server_pd_2
+      network.incoming.packets.rate_pd01_port_0_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - network.incoming.packets.rate_pd01_port_0_test_nested3Level
+      network.outpoing.packets_cmaui_port_1_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - network.outpoing.packets_cmaui_port_1_test_nested_no_compute_test_nested3Level
+      disk.device.allocation_server_pd_1:
+      - abstract_pd_server_5
+      - disk.device.allocation_pd_server
+      disk.device.allocation_server_pd_2:
+      - abstract_pd_server_4
+      - disk.device.allocation_pd_server
+      memory.usage_server_pd_2:
+      - abstract_pd_server_4
+      - memory.usage_pd_server
+      disk.usage_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.usage_server_pd_1_test_nested3Level
+      network.incoming.packets.rate_pd02_port_0_test_nested2Level:
+      - test_nested2Level
+      - network.incoming.packets.rate_pd02_port_0
+      feature_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - feature_test_nested3Level
+      network.incoming.bytes_pd02_port_0_test_nested2Level:
+      - test_nested2Level
+      - network.incoming.bytes_pd02_port_0
+      memory.usage_server_pd_1:
+      - abstract_pd_server_5
+      - memory.usage_pd_server
+      os_server_pd_2:
+      - abstract_pd_server_4
+      - os_pd_server
+      disk.latency_server_pd_1:
+      - abstract_pd_server_5
+      - disk.latency_pd_server
+      disk.latency_server_pd_2:
+      - abstract_pd_server_4
+      - disk.latency_pd_server
+      disk.device.usage_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - disk.device.usage_server_pd_2
+      disk.device.allocation_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.device.allocation_server_pd_2_test_nested3Level
+      network.outgoing.bytes.rate_pd02_port_0_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - network.outgoing.bytes.rate_pd02_port_0_test_nested3Level
+      scalable_server_pd_2:
+      - abstract_pd_server_4
+      - scalable_pd_server
+      scalable_server_pd_1:
+      - abstract_pd_server_5
+      - scalable_pd_server
+      disk.latency_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.latency_server_pd_2_test_nested3Level
+      network.incoming.packets_ps02_port_0:
+      - abstract_pd_server_4
+      - network.incoming.packets_pd_server_ps02_port
+      memory.resident_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - memory.resident_server_pd_1
+      disk.device.write.bytes.rate_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - disk.device.write.bytes.rate_server_pd_2
+      disk.device.iops_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - disk.device.iops_server_pd_2
+      memory.usage_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - memory.usage_server_pd_2_test_nested3Level
+      cpu_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - cpu_server_pd_2
+      os_server_pd_1:
+      - abstract_pd_server_5
+      - os_pd_server
+    requirements:
+      binding_pd01_port_1:
+      - pd01_port_1
+      - binding
+      dependency_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - dependency_test_nested_no_compute_test_nested3Level
+      dependency_pd02_port_0_test_nested2Level:
+      - test_nested2Level
+      - dependency_pd02_port_0
+      dependency_pd02_port_0_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - dependency_pd02_port_0_test_nested3Level
+      local_storage_server_pd_1:
+      - abstract_pd_server_5
+      - local_storage_pd_server
+      local_storage_server_pd_2:
+      - abstract_pd_server_4
+      - local_storage_pd_server
+      local_storage_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - local_storage_server_pd_1_test_nested3Level
+      dependency_test_nested2Level:
+      - test_nested2Level
+      - dependency
+      dependency_server_pd_1:
+      - abstract_pd_server_5
+      - dependency_pd_server
+      dependency_server_pd_2:
+      - abstract_pd_server_4
+      - dependency_pd_server
+      dependency_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - dependency_server_pd_2_test_nested3Level
+      dependency_cmaui_port_1_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - dependency_cmaui_port_1_test_nested_no_compute_test_nested3Level
+      link_pd01_port_0_test_nested2Level:
+      - test_nested2Level
+      - link_pd01_port_0
+      local_storage_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - local_storage_server_pd_2
+      dependency_pd01_port_0_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - dependency_pd01_port_0_test_nested3Level
+      link_pd02_port_0_test_nested2Level:
+      - test_nested2Level
+      - link_pd02_port_0
+      binding_cmaui_port_2_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - binding_cmaui_port_2_test_nested_no_compute_test_nested3Level
+      dependency_packet_external_network_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - dependency_packet_external_network_test_nested_no_compute_test_nested3Level
+      local_storage_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - local_storage_server_pd_2_test_nested3Level
+      link_ps02_port_0:
+      - abstract_pd_server_4
+      - link_pd_server_ps02_port
+      dependency_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - dependency_server_pd_2
+      local_storage_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - local_storage_server_pd_1
+      dependency_ps02_port_0:
+      - abstract_pd_server_4
+      - dependency_pd_server_ps02_port
+      dependency_pd01_port_0:
+      - abstract_pd_server_5
+      - dependency_pd_server_pd01_port
+      dependency_pd01_port_1:
+      - pd01_port_1
+      - dependency
+      dependency_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - dependency_server_pd_1
+      dependency_packet_internal_network_nested_1:
+      - packet_internal_network_nested_1
+      - dependency
+      dependency_packet_internal_network_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - dependency_packet_internal_network_test_nested_no_compute_test_nested3Level
+      link_pd01_port_0_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - link_pd01_port_0_test_nested3Level
+      dependency_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - dependency_test_nested3Level
+      link_pd02_port_0_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - link_pd02_port_0_test_nested3Level
+      dependency_cmaui_port_2_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - dependency_cmaui_port_2_test_nested_no_compute_test_nested3Level
+      binding_cmaui_port_1_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - binding_cmaui_port_1_test_nested_no_compute_test_nested3Level
+      dependency_pd01_port_0_test_nested2Level:
+      - test_nested2Level
+      - dependency_pd01_port_0
+      dependency_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - dependency_server_pd_1_test_nested3Level
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/in/nested2ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/in/nested2ServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..e7e01e3
--- /dev/null
@@ -0,0 +1,948 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: nested2
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+topology_template:
+  inputs:
+    pd_flavor_name:
+      hidden: false
+      immutable: false
+      type: string
+      description: Flavor for CMAUI server
+    p1:
+      hidden: false
+      immutable: false
+      type: string
+      description: UID of OAM network
+    p2:
+      hidden: false
+      immutable: false
+      type: string
+      description: UID of OAM network
+    availabilityzone_name:
+      label: availabilityzone name
+      hidden: false
+      immutable: false
+      type: string
+      description: availabilityzone name
+    security_group_name:
+      hidden: false
+      immutable: false
+      type: list
+      description: CMAUI1, CMAUI2 server names
+      entry_schema:
+        type: string
+    pd_image_name:
+      hidden: false
+      immutable: false
+      type: string
+      description: Image for CMAUI server
+    pd_server_names:
+      hidden: false
+      immutable: false
+      type: list
+      description: CMAUI1, CMAUI2 server names
+      entry_schema:
+        type: string
+    net:
+      hidden: false
+      immutable: false
+      type: string
+    oam_net_name:
+      hidden: false
+      immutable: false
+      type: string
+  node_templates:
+    test_nested3Level:
+      type: org.openecomp.resource.abstract.nodes.heat.nested3
+      directives:
+      - substitutable
+      properties:
+        p1:
+          get_input: p1
+        service_template_filter:
+          substitute_service_template: nested3ServiceTemplate.yaml
+    abstract_pd_server_2:
+      type: org.openecomp.resource.abstract.nodes.pd_server_2
+      directives:
+      - substitutable
+      properties:
+        compute_pd_server_availability_zone:
+        - get_input: availabilityzone_name
+        compute_pd_server_name:
+        - get_input:
+          - pd_server_names
+          - 1
+        port_pd02_port_mac_requirements:
+          mac_count_required:
+            is_required: false
+        vm_flavor_name:
+          get_input: pd_flavor_name
+        port_pd02_port_network_role_tag: oam
+        vm_image_name:
+          get_input: pd_image_name
+        port_pd02_port_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        port_pd02_port_network:
+        - get_input: oam_net_name
+        compute_pd_server_user_data_format:
+        - RAW
+        service_template_filter:
+          substitute_service_template: Nested_pd_server_2ServiceTemplate.yaml
+          count: 1
+        index_value:
+          get_property:
+          - SELF
+          - service_template_filter
+          - index_value
+    abstract_pd_server_3:
+      type: org.openecomp.resource.abstract.nodes.pd_server_3
+      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
+        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_server_3ServiceTemplate.yaml
+          count: 1
+        index_value:
+          get_property:
+          - SELF
+          - service_template_filter
+          - index_value
+  groups:
+    nested2_group:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/nested2.yml
+        description: nested2
+      members:
+      - test_nested3Level
+      - abstract_pd_server_2
+      - abstract_pd_server_3
+  substitution_mappings:
+    node_type: org.openecomp.resource.abstract.nodes.heat.nested2
+    capabilities:
+      disk.read.bytes.rate_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - disk.read.bytes.rate_server_pd_2
+      disk.root.size_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - disk.root.size_server_pd_2
+      disk.iops_server_pd_1:
+      - abstract_pd_server_3
+      - disk.iops_pd_server
+      disk.iops_server_pd_2:
+      - abstract_pd_server_2
+      - disk.iops_pd_server
+      binding_pd01_port_0_test_nested3Level:
+      - test_nested3Level
+      - binding_pd01_port_0
+      disk.write.bytes.rate_server_pd_2:
+      - abstract_pd_server_2
+      - disk.write.bytes.rate_pd_server
+      network.outpoing.packets_pd01_port_0_test_nested3Level:
+      - test_nested3Level
+      - network.outpoing.packets_pd01_port_0
+      disk.write.bytes.rate_server_pd_1:
+      - abstract_pd_server_3
+      - disk.write.bytes.rate_pd_server
+      disk.device.capacity_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - disk.device.capacity_server_pd_2
+      scalable_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - scalable_server_pd_2
+      network.incoming.packets.rate_pd02_port_0_test_nested3Level:
+      - test_nested3Level
+      - network.incoming.packets.rate_pd02_port_0
+      network.outgoing.bytes_pd02_port_0:
+      - abstract_pd_server_2
+      - network.outgoing.bytes_pd_server_pd02_port
+      attachment_packet_external_network_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - attachment_packet_external_network_test_nested_no_compute
+      scalable_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - scalable_server_pd_1
+      disk.read.bytes.rate_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - disk.read.bytes.rate_server_pd_1
+      memory.resident_server_pd_1:
+      - abstract_pd_server_3
+      - memory.resident_pd_server
+      memory.resident_server_pd_2:
+      - abstract_pd_server_2
+      - memory.resident_pd_server
+      network.incoming.bytes_pd02_port_0:
+      - abstract_pd_server_2
+      - network.incoming.bytes_pd_server_pd02_port
+      network.outgoing.bytes_cmaui_port_1_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - network.outgoing.bytes_cmaui_port_1_test_nested_no_compute
+      disk.ephemeral.size_server_pd_2:
+      - abstract_pd_server_2
+      - disk.ephemeral.size_pd_server
+      disk.ephemeral.size_server_pd_1:
+      - abstract_pd_server_3
+      - disk.ephemeral.size_pd_server
+      binding_cmaui_port_2_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - binding_cmaui_port_2_test_nested_no_compute
+      binding_pd01_port_0:
+      - abstract_pd_server_3
+      - binding_pd_server_pd01_port
+      network.outgoing.bytes.rate_pd02_port_0_test_nested3Level:
+      - test_nested3Level
+      - network.outgoing.bytes.rate_pd02_port_0
+      disk.device.read.bytes_server_pd_1:
+      - abstract_pd_server_3
+      - disk.device.read.bytes_pd_server
+      disk.device.read.bytes_server_pd_2:
+      - abstract_pd_server_2
+      - disk.device.read.bytes_pd_server
+      feature_pd02_port_0_test_nested3Level:
+      - test_nested3Level
+      - feature_pd02_port_0
+      binding_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - binding_server_pd_1
+      network.outgoing.bytes_cmaui_port_2_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - network.outgoing.bytes_cmaui_port_2_test_nested_no_compute
+      network.outgoing.packets.rate_pd01_port_0:
+      - abstract_pd_server_3
+      - network.outgoing.packets.rate_pd_server_pd01_port
+      network.incoming.packets_cmaui_port_2_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - network.incoming.packets_cmaui_port_2_test_nested_no_compute
+      instance_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - instance_server_pd_2
+      memory.resident_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - memory.resident_server_pd_1
+      link_packet_external_network_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - link_packet_external_network_test_nested_no_compute
+      cpu.delta_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - cpu.delta_server_pd_1
+      network.incoming.packets.rate_cmaui_port_1_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - network.incoming.packets.rate_cmaui_port_1_test_nested_no_compute
+      memory_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - memory_server_pd_1
+      memory.usage_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - memory.usage_server_pd_2
+      network.outgoing.packets.rate_cmaui_port_1_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - network.outgoing.packets.rate_cmaui_port_1_test_nested_no_compute
+      disk.usage_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - disk.usage_server_pd_1
+      disk.iops_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - disk.iops_server_pd_1
+      disk.device.allocation_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - disk.device.allocation_server_pd_2
+      attachment_cmaui_port_2_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - attachment_cmaui_port_2_test_nested_no_compute
+      disk.write.requests.rate_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - disk.write.requests.rate_server_pd_2
+      disk.read.bytes.rate_server_pd_2:
+      - abstract_pd_server_2
+      - disk.read.bytes.rate_pd_server
+      disk.read.bytes.rate_server_pd_1:
+      - abstract_pd_server_3
+      - disk.read.bytes.rate_pd_server
+      cpu_server_pd_2:
+      - abstract_pd_server_2
+      - cpu_pd_server
+      cpu_server_pd_1:
+      - abstract_pd_server_3
+      - cpu_pd_server
+      attachment_pd01_port_0:
+      - abstract_pd_server_3
+      - attachment_pd_server_pd01_port
+      disk.device.capacity_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - disk.device.capacity_server_pd_1
+      endpoint_server_pd_2:
+      - abstract_pd_server_2
+      - endpoint_pd_server
+      end_point_packet_external_network_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - end_point_packet_external_network_test_nested_no_compute
+      endpoint_server_pd_1:
+      - abstract_pd_server_3
+      - endpoint_pd_server
+      network.incoming.packets_cmaui_port_1_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - network.incoming.packets_cmaui_port_1_test_nested_no_compute
+      vcpus_server_pd_1:
+      - abstract_pd_server_3
+      - vcpus_pd_server
+      vcpus_server_pd_2:
+      - abstract_pd_server_2
+      - vcpus_pd_server
+      attachment_pd01_port_0_test_nested3Level:
+      - test_nested3Level
+      - attachment_pd01_port_0
+      feature_cmaui_port_1_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - feature_cmaui_port_1_test_nested_no_compute
+      disk.write.requests_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - disk.write.requests_server_pd_2
+      network.incoming.bytes_pd01_port_0_test_nested3Level:
+      - test_nested3Level
+      - network.incoming.bytes_pd01_port_0
+      disk.device.write.bytes.rate_server_pd_1:
+      - abstract_pd_server_3
+      - disk.device.write.bytes.rate_pd_server
+      disk.device.write.bytes.rate_server_pd_2:
+      - abstract_pd_server_2
+      - disk.device.write.bytes.rate_pd_server
+      link_packet_internal_network_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - link_packet_internal_network_test_nested_no_compute
+      disk.device.usage_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - disk.device.usage_server_pd_1
+      disk.device.write.requests.rate_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - disk.device.write.requests.rate_server_pd_2
+      network.incoming.bytes.rate_pd01_port_0:
+      - abstract_pd_server_3
+      - network.incoming.bytes.rate_pd_server_pd01_port
+      disk.device.write.requests.rate_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - disk.device.write.requests.rate_server_pd_1
+      disk.write.bytes_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - disk.write.bytes_server_pd_2
+      disk.device.read.bytes.rate_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - disk.device.read.bytes.rate_server_pd_1
+      disk.device.read.requests.rate_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - disk.device.read.requests.rate_server_pd_1
+      network.incoming.bytes.rate_pd02_port_0_test_nested3Level:
+      - test_nested3Level
+      - network.incoming.bytes.rate_pd02_port_0
+      disk.device.write.bytes_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - disk.device.write.bytes_server_pd_1
+      instance_server_pd_1:
+      - abstract_pd_server_3
+      - instance_pd_server
+      disk.device.read.requests.rate_server_pd_1:
+      - abstract_pd_server_3
+      - disk.device.read.requests.rate_pd_server
+      disk.device.latency_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - disk.device.latency_server_pd_1
+      instance_server_pd_2:
+      - abstract_pd_server_2
+      - instance_pd_server
+      disk.device.read.requests.rate_server_pd_2:
+      - abstract_pd_server_2
+      - disk.device.read.requests.rate_pd_server
+      disk.write.requests_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - disk.write.requests_server_pd_1
+      binding_cmaui_port_1_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - binding_cmaui_port_1_test_nested_no_compute
+      attachment_pd02_port_0:
+      - abstract_pd_server_2
+      - attachment_pd_server_pd02_port
+      cpu_util_server_pd_1:
+      - abstract_pd_server_3
+      - cpu_util_pd_server
+      host_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - host_server_pd_2
+      cpu_util_server_pd_2:
+      - abstract_pd_server_2
+      - cpu_util_pd_server
+      disk.device.read.bytes.rate_server_pd_2:
+      - abstract_pd_server_2
+      - disk.device.read.bytes.rate_pd_server
+      disk.device.allocation_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - disk.device.allocation_server_pd_1
+      disk.allocation_server_pd_2:
+      - abstract_pd_server_2
+      - disk.allocation_pd_server
+      disk.device.write.bytes_server_pd_1:
+      - abstract_pd_server_3
+      - disk.device.write.bytes_pd_server
+      disk.device.write.bytes_server_pd_2:
+      - abstract_pd_server_2
+      - disk.device.write.bytes_pd_server
+      disk.allocation_server_pd_1:
+      - abstract_pd_server_3
+      - disk.allocation_pd_server
+      network.incoming.packets.rate_pd01_port_0:
+      - abstract_pd_server_3
+      - network.incoming.packets.rate_pd_server_pd01_port
+      disk.capacity_server_pd_2:
+      - abstract_pd_server_2
+      - disk.capacity_pd_server
+      disk.capacity_server_pd_1:
+      - abstract_pd_server_3
+      - disk.capacity_pd_server
+      disk.device.read.bytes.rate_server_pd_1:
+      - abstract_pd_server_3
+      - disk.device.read.bytes.rate_pd_server
+      cpu.delta_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - cpu.delta_server_pd_2
+      binding_pd02_port_0_test_nested3Level:
+      - test_nested3Level
+      - binding_pd02_port_0
+      feature_packet_external_network_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - feature_packet_external_network_test_nested_no_compute
+      network.outpoing.packets_pd01_port_0:
+      - abstract_pd_server_3
+      - network.outpoing.packets_pd_server_pd01_port
+      binding_server_pd_2:
+      - abstract_pd_server_2
+      - binding_pd_server
+      disk.device.write.requests_server_pd_2:
+      - abstract_pd_server_2
+      - disk.device.write.requests_pd_server
+      binding_server_pd_1:
+      - abstract_pd_server_3
+      - binding_pd_server
+      disk.device.write.requests_server_pd_1:
+      - abstract_pd_server_3
+      - disk.device.write.requests_pd_server
+      disk.usage_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - disk.usage_server_pd_2
+      disk.capacity_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - disk.capacity_server_pd_2
+      disk.device.write.requests.rate_server_pd_2:
+      - abstract_pd_server_2
+      - disk.device.write.requests.rate_pd_server
+      network.outgoing.packets.rate_pd02_port_0_test_nested3Level:
+      - test_nested3Level
+      - network.outgoing.packets.rate_pd02_port_0
+      disk.read.bytes_server_pd_1:
+      - abstract_pd_server_3
+      - disk.read.bytes_pd_server
+      disk.device.read.requests_server_pd_1:
+      - abstract_pd_server_3
+      - disk.device.read.requests_pd_server
+      cpu_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - cpu_server_pd_1
+      disk.device.read.requests_server_pd_2:
+      - abstract_pd_server_2
+      - disk.device.read.requests_pd_server
+      disk.read.bytes_server_pd_2:
+      - abstract_pd_server_2
+      - disk.read.bytes_pd_server
+      disk.device.write.requests.rate_server_pd_1:
+      - abstract_pd_server_3
+      - disk.device.write.requests.rate_pd_server
+      feature_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - feature_server_pd_1
+      memory_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - memory_server_pd_2
+      vcpus_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - vcpus_server_pd_1
+      disk.write.bytes.rate_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - disk.write.bytes.rate_server_pd_2
+      instance_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - instance_server_pd_1
+      network.outgoing.bytes_pd01_port_0_test_nested3Level:
+      - test_nested3Level
+      - network.outgoing.bytes_pd01_port_0
+      network.incoming.bytes.rate_cmaui_port_1_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - network.incoming.bytes.rate_cmaui_port_1_test_nested_no_compute
+      feature_pd01_port_0_test_nested3Level:
+      - test_nested3Level
+      - feature_pd01_port_0
+      disk.ephemeral.size_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - disk.ephemeral.size_server_pd_1
+      vcpus_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - vcpus_server_pd_2
+      os_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - os_server_pd_1
+      network.outgoing.bytes.rate_cmaui_port_2_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - network.outgoing.bytes.rate_cmaui_port_2_test_nested_no_compute
+      disk.device.write.bytes.rate_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - disk.device.write.bytes.rate_server_pd_1
+      cpu.delta_server_pd_2:
+      - abstract_pd_server_2
+      - cpu.delta_pd_server
+      feature_server_pd_2:
+      - abstract_pd_server_2
+      - feature_pd_server
+      feature_server_pd_1:
+      - abstract_pd_server_3
+      - feature_pd_server
+      cpu.delta_server_pd_1:
+      - abstract_pd_server_3
+      - cpu.delta_pd_server
+      disk.device.iops_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - disk.device.iops_server_pd_2
+      disk.device.write.bytes.rate_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - disk.device.write.bytes.rate_server_pd_2
+      host_server_pd_1:
+      - abstract_pd_server_3
+      - host_pd_server
+      disk.device.iops_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - disk.device.iops_server_pd_1
+      disk.ephemeral.size_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - disk.ephemeral.size_server_pd_2
+      host_server_pd_2:
+      - abstract_pd_server_2
+      - host_pd_server
+      network.outgoing.bytes_pd01_port_0:
+      - abstract_pd_server_3
+      - network.outgoing.bytes_pd_server_pd01_port
+      os_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - os_server_pd_2
+      disk.read.bytes_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - disk.read.bytes_server_pd_1
+      memory_server_pd_2:
+      - abstract_pd_server_2
+      - memory_pd_server
+      memory_server_pd_1:
+      - abstract_pd_server_3
+      - memory_pd_server
+      feature_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - feature_test_nested_no_compute
+      network.outpoing.packets_cmaui_port_2_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - network.outpoing.packets_cmaui_port_2_test_nested_no_compute
+      network.incoming.packets_pd02_port_0:
+      - abstract_pd_server_2
+      - network.incoming.packets_pd_server_pd02_port
+      disk.read.requests_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - disk.read.requests_server_pd_2
+      network.outpoing.packets_cmaui_port_1_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - network.outpoing.packets_cmaui_port_1_test_nested_no_compute
+      cpu_util_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - cpu_util_server_pd_1
+      disk.read.requests_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - disk.read.requests_server_pd_1
+      disk.read.bytes_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - disk.read.bytes_server_pd_2
+      disk.write.requests_server_pd_1:
+      - abstract_pd_server_3
+      - disk.write.requests_pd_server
+      endpoint_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - endpoint_server_pd_2
+      disk.write.requests_server_pd_2:
+      - abstract_pd_server_2
+      - disk.write.requests_pd_server
+      disk.write.bytes_server_pd_1:
+      - abstract_pd_server_3
+      - disk.write.bytes_pd_server
+      disk.write.bytes_server_pd_2:
+      - abstract_pd_server_2
+      - disk.write.bytes_pd_server
+      disk.read.requests_server_pd_1:
+      - abstract_pd_server_3
+      - disk.read.requests_pd_server
+      network.outgoing.bytes.rate_pd02_port_0:
+      - abstract_pd_server_2
+      - network.outgoing.bytes.rate_pd_server_pd02_port
+      disk.read.requests_server_pd_2:
+      - abstract_pd_server_2
+      - disk.read.requests_pd_server
+      disk.device.usage_server_pd_2:
+      - abstract_pd_server_2
+      - disk.device.usage_pd_server
+      disk.device.usage_server_pd_1:
+      - abstract_pd_server_3
+      - disk.device.usage_pd_server
+      network.outgoing.bytes.rate_cmaui_port_1_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - network.outgoing.bytes.rate_cmaui_port_1_test_nested_no_compute
+      network.incoming.packets.rate_pd02_port_0:
+      - abstract_pd_server_2
+      - network.incoming.packets.rate_pd_server_pd02_port
+      network.incoming.bytes_pd02_port_0_test_nested3Level:
+      - test_nested3Level
+      - network.incoming.bytes_pd02_port_0
+      network.incoming.packets.rate_pd01_port_0_test_nested3Level:
+      - test_nested3Level
+      - network.incoming.packets.rate_pd01_port_0
+      disk.device.read.requests_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - disk.device.read.requests_server_pd_1
+      disk.write.requests.rate_server_pd_1:
+      - abstract_pd_server_3
+      - disk.write.requests.rate_pd_server
+      disk.write.requests.rate_server_pd_2:
+      - abstract_pd_server_2
+      - disk.write.requests.rate_pd_server
+      disk.root.size_server_pd_1:
+      - abstract_pd_server_3
+      - disk.root.size_pd_server
+      attachment_packet_internal_network_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - attachment_packet_internal_network_test_nested_no_compute
+      disk.allocation_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - disk.allocation_server_pd_1
+      host_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - host_server_pd_1
+      disk.device.iops_server_pd_1:
+      - abstract_pd_server_3
+      - disk.device.iops_pd_server
+      disk.device.iops_server_pd_2:
+      - abstract_pd_server_2
+      - disk.device.iops_pd_server
+      network.incoming.packets_pd02_port_0_test_nested3Level:
+      - test_nested3Level
+      - network.incoming.packets_pd02_port_0
+      disk.write.bytes.rate_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - disk.write.bytes.rate_server_pd_1
+      feature_pd02_port_0:
+      - abstract_pd_server_2
+      - feature_pd_server_pd02_port
+      network.incoming.packets_pd01_port_0_test_nested3Level:
+      - test_nested3Level
+      - network.incoming.packets_pd01_port_0
+      disk.root.size_server_pd_2:
+      - abstract_pd_server_2
+      - disk.root.size_pd_server
+      disk.latency_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - disk.latency_server_pd_2
+      disk.usage_server_pd_2:
+      - abstract_pd_server_2
+      - disk.usage_pd_server
+      disk.usage_server_pd_1:
+      - abstract_pd_server_3
+      - disk.usage_pd_server
+      disk.device.write.requests_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - disk.device.write.requests_server_pd_1
+      feature_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - feature_server_pd_2
+      disk.device.read.bytes_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - disk.device.read.bytes_server_pd_1
+      network.incoming.bytes.rate_cmaui_port_2_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - network.incoming.bytes.rate_cmaui_port_2_test_nested_no_compute
+      disk.device.latency_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - disk.device.latency_server_pd_2
+      network.outgoing.bytes.rate_pd01_port_0_test_nested3Level:
+      - test_nested3Level
+      - network.outgoing.bytes.rate_pd01_port_0
+      disk.device.write.requests_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - disk.device.write.requests_server_pd_2
+      disk.device.capacity_server_pd_2:
+      - abstract_pd_server_2
+      - disk.device.capacity_pd_server
+      disk.device.capacity_server_pd_1:
+      - abstract_pd_server_3
+      - disk.device.capacity_pd_server
+      cpu_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - cpu_server_pd_2
+      disk.device.usage_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - disk.device.usage_server_pd_2
+      network.incoming.bytes_cmaui_port_1_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - network.incoming.bytes_cmaui_port_1_test_nested_no_compute
+      network.incoming.bytes.rate_pd01_port_0_test_nested3Level:
+      - test_nested3Level
+      - network.incoming.bytes.rate_pd01_port_0
+      disk.device.write.bytes_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - disk.device.write.bytes_server_pd_2
+      disk.capacity_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - disk.capacity_server_pd_1
+      feature_pd01_port_0:
+      - abstract_pd_server_3
+      - feature_pd_server_pd01_port
+      disk.device.latency_server_pd_2:
+      - abstract_pd_server_2
+      - disk.device.latency_pd_server
+      disk.device.latency_server_pd_1:
+      - abstract_pd_server_3
+      - disk.device.latency_pd_server
+      feature_packet_internal_network_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - feature_packet_internal_network_test_nested_no_compute
+      network.incoming.bytes_cmaui_port_2_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - network.incoming.bytes_cmaui_port_2_test_nested_no_compute
+      memory.resident_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - memory.resident_server_pd_2
+      disk.device.read.requests.rate_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - disk.device.read.requests.rate_server_pd_2
+      network.outgoing.bytes_pd02_port_0_test_nested3Level:
+      - test_nested3Level
+      - network.outgoing.bytes_pd02_port_0
+      disk.write.bytes_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - disk.write.bytes_server_pd_1
+      endpoint_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - endpoint_server_pd_1
+      network.outgoing.bytes.rate_pd01_port_0:
+      - abstract_pd_server_3
+      - network.outgoing.bytes.rate_pd_server_pd01_port
+      disk.allocation_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - disk.allocation_server_pd_2
+      network.outpoing.packets_pd02_port_0_test_nested3Level:
+      - test_nested3Level
+      - network.outpoing.packets_pd02_port_0
+      feature_cmaui_port_2_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - feature_cmaui_port_2_test_nested_no_compute
+      binding_pd02_port_0:
+      - abstract_pd_server_2
+      - binding_pd_server_pd02_port
+      disk.device.read.bytes_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - disk.device.read.bytes_server_pd_2
+      feature_test_nested3Level:
+      - test_nested3Level
+      - feature
+      disk.write.requests.rate_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - disk.write.requests.rate_server_pd_1
+      disk.latency_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - disk.latency_server_pd_1
+      network.incoming.bytes_pd01_port_0:
+      - abstract_pd_server_3
+      - network.incoming.bytes_pd_server_pd01_port
+      cpu_util_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - cpu_util_server_pd_2
+      network.outgoing.packets.rate_pd02_port_0:
+      - abstract_pd_server_2
+      - network.outgoing.packets.rate_pd_server_pd02_port
+      network.outpoing.packets_pd02_port_0:
+      - abstract_pd_server_2
+      - network.outpoing.packets_pd_server_pd02_port
+      disk.iops_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - disk.iops_server_pd_2
+      network.incoming.packets_pd01_port_0:
+      - abstract_pd_server_3
+      - network.incoming.packets_pd_server_pd01_port
+      attachment_pd02_port_0_test_nested3Level:
+      - test_nested3Level
+      - attachment_pd02_port_0
+      disk.device.read.bytes.rate_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - disk.device.read.bytes.rate_server_pd_2
+      disk.device.allocation_server_pd_1:
+      - abstract_pd_server_3
+      - disk.device.allocation_pd_server
+      network.outgoing.packets.rate_cmaui_port_2_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - network.outgoing.packets.rate_cmaui_port_2_test_nested_no_compute
+      binding_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - binding_server_pd_2
+      disk.device.read.requests_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - disk.device.read.requests_server_pd_2
+      disk.device.allocation_server_pd_2:
+      - abstract_pd_server_2
+      - disk.device.allocation_pd_server
+      network.incoming.packets.rate_cmaui_port_2_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - network.incoming.packets.rate_cmaui_port_2_test_nested_no_compute
+      memory.usage_server_pd_2:
+      - abstract_pd_server_2
+      - memory.usage_pd_server
+      network.outgoing.packets.rate_pd01_port_0_test_nested3Level:
+      - test_nested3Level
+      - network.outgoing.packets.rate_pd01_port_0
+      end_point_packet_internal_network_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - end_point_packet_internal_network_test_nested_no_compute
+      memory.usage_server_pd_1:
+      - abstract_pd_server_3
+      - memory.usage_pd_server
+      network.incoming.bytes.rate_pd02_port_0:
+      - abstract_pd_server_2
+      - network.incoming.bytes.rate_pd_server_pd02_port
+      attachment_cmaui_port_1_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - attachment_cmaui_port_1_test_nested_no_compute
+      os_server_pd_2:
+      - abstract_pd_server_2
+      - os_pd_server
+      memory.usage_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - memory.usage_server_pd_1
+      disk.latency_server_pd_1:
+      - abstract_pd_server_3
+      - disk.latency_pd_server
+      disk.latency_server_pd_2:
+      - abstract_pd_server_2
+      - disk.latency_pd_server
+      scalable_server_pd_2:
+      - abstract_pd_server_2
+      - scalable_pd_server
+      scalable_server_pd_1:
+      - abstract_pd_server_3
+      - scalable_pd_server
+      disk.root.size_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - disk.root.size_server_pd_1
+      os_server_pd_1:
+      - abstract_pd_server_3
+      - os_pd_server
+    requirements:
+      link_pd01_port_0:
+      - abstract_pd_server_3
+      - link_pd_server_pd01_port
+      link_pd02_port_0:
+      - abstract_pd_server_2
+      - link_pd_server_pd02_port
+      link_pd02_port_0_test_nested3Level:
+      - test_nested3Level
+      - link_pd02_port_0
+      local_storage_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - local_storage_server_pd_2
+      local_storage_server_pd_1:
+      - abstract_pd_server_3
+      - local_storage_pd_server
+      local_storage_server_pd_2:
+      - abstract_pd_server_2
+      - local_storage_pd_server
+      dependency_pd01_port_0_test_nested3Level:
+      - test_nested3Level
+      - dependency_pd01_port_0
+      dependency_pd01_port_0:
+      - abstract_pd_server_3
+      - dependency_pd_server_pd01_port
+      dependency_server_pd_1:
+      - abstract_pd_server_3
+      - dependency_pd_server
+      dependency_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - dependency_server_pd_1
+      dependency_server_pd_2:
+      - abstract_pd_server_2
+      - dependency_pd_server
+      dependency_pd02_port_0:
+      - abstract_pd_server_2
+      - dependency_pd_server_pd02_port
+      dependency_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - dependency_server_pd_2
+      dependency_pd02_port_0_test_nested3Level:
+      - test_nested3Level
+      - dependency_pd02_port_0
+      dependency_cmaui_port_2_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - dependency_cmaui_port_2_test_nested_no_compute
+      dependency_packet_external_network_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - dependency_packet_external_network_test_nested_no_compute
+      local_storage_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - local_storage_server_pd_1
+      binding_cmaui_port_2_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - binding_cmaui_port_2_test_nested_no_compute
+      dependency_test_nested3Level:
+      - test_nested3Level
+      - dependency
+      link_pd01_port_0_test_nested3Level:
+      - test_nested3Level
+      - link_pd01_port_0
+      dependency_packet_internal_network_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - dependency_packet_internal_network_test_nested_no_compute
+      dependency_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - dependency_test_nested_no_compute
+      dependency_cmaui_port_1_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - dependency_cmaui_port_1_test_nested_no_compute
+      binding_cmaui_port_1_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - binding_cmaui_port_1_test_nested_no_compute
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/in/nested3ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/in/nested3ServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..90f1067
--- /dev/null
@@ -0,0 +1,604 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: nested3
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+topology_template:
+  inputs:
+    pd_flavor_name:
+      hidden: false
+      immutable: false
+      type: string
+      description: Flavor for CMAUI server
+    p1:
+      hidden: false
+      immutable: false
+      type: string
+      description: UID of OAM network
+    p2:
+      hidden: false
+      immutable: false
+      type: string
+      description: UID of OAM network
+    availabilityzone_name:
+      label: availabilityzone name
+      hidden: false
+      immutable: false
+      type: string
+      description: availabilityzone name
+    security_group_name:
+      hidden: false
+      immutable: false
+      type: list
+      description: CMAUI1, CMAUI2 server names
+      entry_schema:
+        type: string
+    pd_image_name:
+      hidden: false
+      immutable: false
+      type: string
+      description: Image for CMAUI server
+    pd_server_names:
+      hidden: false
+      immutable: false
+      type: list
+      description: CMAUI1, CMAUI2 server names
+      entry_schema:
+        type: string
+    net:
+      hidden: false
+      immutable: false
+      type: string
+    oam_net_name:
+      hidden: false
+      immutable: false
+      type: string
+  node_templates:
+    abstract_pd_server:
+      type: org.openecomp.resource.abstract.nodes.pd_server
+      directives:
+      - substitutable
+      properties:
+        compute_pd_server_availability_zone:
+        - get_input: availabilityzone_name
+        compute_pd_server_name:
+        - get_input:
+          - pd_server_names
+          - 1
+        port_pd02_port_mac_requirements:
+          mac_count_required:
+            is_required: false
+        vm_flavor_name:
+          get_input: pd_flavor_name
+        port_pd02_port_network_role_tag: oam
+        vm_image_name:
+          get_input: pd_image_name
+        port_pd02_port_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        port_pd02_port_network:
+        - get_input: oam_net_name
+        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
+    test_nested_no_compute:
+      type: org.openecomp.resource.abstract.nodes.heat.nested-no-compute
+      directives:
+      - substitutable
+      properties:
+        service_template_filter:
+          substitute_service_template: nested-no-computeServiceTemplate.yaml
+    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
+        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_server_1ServiceTemplate.yaml
+          count: 1
+        index_value:
+          get_property:
+          - SELF
+          - service_template_filter
+          - index_value
+  groups:
+    nested3_group:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/nested3.yml
+        description: nested2
+      members:
+      - test_nested_no_compute
+      - abstract_pd_server
+      - abstract_pd_server_1
+  substitution_mappings:
+    node_type: org.openecomp.resource.abstract.nodes.heat.nested3
+    capabilities:
+      disk.iops_server_pd_1:
+      - abstract_pd_server_1
+      - disk.iops_pd_server
+      disk.iops_server_pd_2:
+      - abstract_pd_server
+      - disk.iops_pd_server
+      disk.write.bytes.rate_server_pd_2:
+      - abstract_pd_server
+      - disk.write.bytes.rate_pd_server
+      disk.write.bytes.rate_server_pd_1:
+      - abstract_pd_server_1
+      - disk.write.bytes.rate_pd_server
+      cpu.delta_server_pd_2:
+      - abstract_pd_server
+      - cpu.delta_pd_server
+      feature_server_pd_2:
+      - abstract_pd_server
+      - feature_pd_server
+      feature_server_pd_1:
+      - abstract_pd_server_1
+      - feature_pd_server
+      cpu.delta_server_pd_1:
+      - abstract_pd_server_1
+      - cpu.delta_pd_server
+      attachment_cmaui_port_2_test_nested_no_compute:
+      - test_nested_no_compute
+      - attachment_cmaui_port_2
+      host_server_pd_1:
+      - abstract_pd_server_1
+      - host_pd_server
+      network.outgoing.bytes_pd02_port_0:
+      - abstract_pd_server
+      - network.outgoing.bytes_pd_server_pd02_port
+      host_server_pd_2:
+      - abstract_pd_server
+      - host_pd_server
+      end_point_packet_external_network_test_nested_no_compute:
+      - test_nested_no_compute
+      - end_point_packet_external_network
+      network.outgoing.bytes_pd01_port_0:
+      - abstract_pd_server_1
+      - network.outgoing.bytes_pd_server_pd01_port
+      binding_cmaui_port_1_test_nested_no_compute:
+      - test_nested_no_compute
+      - binding_cmaui_port_1
+      memory_server_pd_2:
+      - abstract_pd_server
+      - memory_pd_server
+      memory_server_pd_1:
+      - abstract_pd_server_1
+      - memory_pd_server
+      network.incoming.packets_pd02_port_0:
+      - abstract_pd_server
+      - network.incoming.packets_pd_server_pd02_port
+      network.incoming.packets.rate_cmaui_port_1_test_nested_no_compute:
+      - test_nested_no_compute
+      - network.incoming.packets.rate_cmaui_port_1
+      network.incoming.bytes_cmaui_port_1_test_nested_no_compute:
+      - test_nested_no_compute
+      - network.incoming.bytes_cmaui_port_1
+      attachment_packet_external_network_test_nested_no_compute:
+      - test_nested_no_compute
+      - attachment_packet_external_network
+      memory.resident_server_pd_1:
+      - abstract_pd_server_1
+      - memory.resident_pd_server
+      memory.resident_server_pd_2:
+      - abstract_pd_server
+      - memory.resident_pd_server
+      network.incoming.bytes_pd02_port_0:
+      - abstract_pd_server
+      - network.incoming.bytes_pd_server_pd02_port
+      disk.write.requests_server_pd_1:
+      - abstract_pd_server_1
+      - disk.write.requests_pd_server
+      network.incoming.packets.rate_cmaui_port_2_test_nested_no_compute:
+      - test_nested_no_compute
+      - network.incoming.packets.rate_cmaui_port_2
+      disk.ephemeral.size_server_pd_2:
+      - abstract_pd_server
+      - disk.ephemeral.size_pd_server
+      disk.ephemeral.size_server_pd_1:
+      - abstract_pd_server_1
+      - disk.ephemeral.size_pd_server
+      disk.write.requests_server_pd_2:
+      - abstract_pd_server
+      - disk.write.requests_pd_server
+      disk.write.bytes_server_pd_1:
+      - abstract_pd_server_1
+      - disk.write.bytes_pd_server
+      disk.write.bytes_server_pd_2:
+      - abstract_pd_server
+      - disk.write.bytes_pd_server
+      network.outgoing.bytes_cmaui_port_2_test_nested_no_compute:
+      - test_nested_no_compute
+      - network.outgoing.bytes_cmaui_port_2
+      binding_cmaui_port_2_test_nested_no_compute:
+      - test_nested_no_compute
+      - binding_cmaui_port_2
+      disk.read.requests_server_pd_1:
+      - abstract_pd_server_1
+      - disk.read.requests_pd_server
+      network.outgoing.bytes.rate_pd02_port_0:
+      - abstract_pd_server
+      - network.outgoing.bytes.rate_pd_server_pd02_port
+      binding_pd01_port_0:
+      - abstract_pd_server_1
+      - binding_pd_server_pd01_port
+      disk.read.requests_server_pd_2:
+      - abstract_pd_server
+      - disk.read.requests_pd_server
+      disk.device.usage_server_pd_2:
+      - abstract_pd_server
+      - disk.device.usage_pd_server
+      disk.device.usage_server_pd_1:
+      - abstract_pd_server_1
+      - disk.device.usage_pd_server
+      disk.device.read.bytes_server_pd_1:
+      - abstract_pd_server_1
+      - disk.device.read.bytes_pd_server
+      disk.device.read.bytes_server_pd_2:
+      - abstract_pd_server
+      - disk.device.read.bytes_pd_server
+      network.incoming.packets.rate_pd02_port_0:
+      - abstract_pd_server
+      - network.incoming.packets.rate_pd_server_pd02_port
+      link_packet_external_network_test_nested_no_compute:
+      - test_nested_no_compute
+      - link_packet_external_network
+      network.outgoing.packets.rate_pd01_port_0:
+      - abstract_pd_server_1
+      - network.outgoing.packets.rate_pd_server_pd01_port
+      disk.write.requests.rate_server_pd_1:
+      - abstract_pd_server_1
+      - disk.write.requests.rate_pd_server
+      disk.write.requests.rate_server_pd_2:
+      - abstract_pd_server
+      - disk.write.requests.rate_pd_server
+      disk.root.size_server_pd_1:
+      - abstract_pd_server_1
+      - disk.root.size_pd_server
+      network.outgoing.bytes.rate_cmaui_port_2_test_nested_no_compute:
+      - test_nested_no_compute
+      - network.outgoing.bytes.rate_cmaui_port_2
+      network.incoming.bytes_cmaui_port_2_test_nested_no_compute:
+      - test_nested_no_compute
+      - network.incoming.bytes_cmaui_port_2
+      network.outgoing.packets.rate_cmaui_port_2_test_nested_no_compute:
+      - test_nested_no_compute
+      - network.outgoing.packets.rate_cmaui_port_2
+      network.incoming.bytes.rate_cmaui_port_2_test_nested_no_compute:
+      - test_nested_no_compute
+      - network.incoming.bytes.rate_cmaui_port_2
+      disk.device.iops_server_pd_1:
+      - abstract_pd_server_1
+      - disk.device.iops_pd_server
+      disk.device.iops_server_pd_2:
+      - abstract_pd_server
+      - disk.device.iops_pd_server
+      end_point_packet_internal_network_test_nested_no_compute:
+      - test_nested_no_compute
+      - end_point_packet_internal_network
+      feature_pd02_port_0:
+      - abstract_pd_server
+      - feature_pd_server_pd02_port
+      feature_packet_internal_network_test_nested_no_compute:
+      - test_nested_no_compute
+      - feature_packet_internal_network
+      disk.root.size_server_pd_2:
+      - abstract_pd_server
+      - disk.root.size_pd_server
+      disk.usage_server_pd_2:
+      - abstract_pd_server
+      - disk.usage_pd_server
+      disk.usage_server_pd_1:
+      - abstract_pd_server_1
+      - disk.usage_pd_server
+      network.outgoing.packets.rate_cmaui_port_1_test_nested_no_compute:
+      - test_nested_no_compute
+      - network.outgoing.packets.rate_cmaui_port_1
+      network.incoming.bytes.rate_cmaui_port_1_test_nested_no_compute:
+      - test_nested_no_compute
+      - network.incoming.bytes.rate_cmaui_port_1
+      disk.read.bytes.rate_server_pd_2:
+      - abstract_pd_server
+      - disk.read.bytes.rate_pd_server
+      disk.read.bytes.rate_server_pd_1:
+      - abstract_pd_server_1
+      - disk.read.bytes.rate_pd_server
+      cpu_server_pd_2:
+      - abstract_pd_server
+      - cpu_pd_server
+      cpu_server_pd_1:
+      - abstract_pd_server_1
+      - cpu_pd_server
+      attachment_pd01_port_0:
+      - abstract_pd_server_1
+      - attachment_pd_server_pd01_port
+      network.outpoing.packets_cmaui_port_1_test_nested_no_compute:
+      - test_nested_no_compute
+      - network.outpoing.packets_cmaui_port_1
+      endpoint_server_pd_2:
+      - abstract_pd_server
+      - endpoint_pd_server
+      endpoint_server_pd_1:
+      - abstract_pd_server_1
+      - endpoint_pd_server
+      vcpus_server_pd_1:
+      - abstract_pd_server_1
+      - vcpus_pd_server
+      vcpus_server_pd_2:
+      - abstract_pd_server
+      - vcpus_pd_server
+      network.outgoing.bytes.rate_cmaui_port_1_test_nested_no_compute:
+      - test_nested_no_compute
+      - network.outgoing.bytes.rate_cmaui_port_1
+      disk.device.capacity_server_pd_2:
+      - abstract_pd_server
+      - disk.device.capacity_pd_server
+      disk.device.capacity_server_pd_1:
+      - abstract_pd_server_1
+      - disk.device.capacity_pd_server
+      disk.device.write.bytes.rate_server_pd_1:
+      - abstract_pd_server_1
+      - disk.device.write.bytes.rate_pd_server
+      disk.device.write.bytes.rate_server_pd_2:
+      - abstract_pd_server
+      - disk.device.write.bytes.rate_pd_server
+      network.outpoing.packets_cmaui_port_2_test_nested_no_compute:
+      - test_nested_no_compute
+      - network.outpoing.packets_cmaui_port_2
+      network.incoming.bytes.rate_pd01_port_0:
+      - abstract_pd_server_1
+      - network.incoming.bytes.rate_pd_server_pd01_port
+      feature_pd01_port_0:
+      - abstract_pd_server_1
+      - feature_pd_server_pd01_port
+      disk.device.latency_server_pd_2:
+      - abstract_pd_server
+      - disk.device.latency_pd_server
+      disk.device.latency_server_pd_1:
+      - abstract_pd_server_1
+      - disk.device.latency_pd_server
+      network.incoming.packets_cmaui_port_2_test_nested_no_compute:
+      - test_nested_no_compute
+      - network.incoming.packets_cmaui_port_2
+      instance_server_pd_1:
+      - abstract_pd_server_1
+      - instance_pd_server
+      disk.device.read.requests.rate_server_pd_1:
+      - abstract_pd_server_1
+      - disk.device.read.requests.rate_pd_server
+      instance_server_pd_2:
+      - abstract_pd_server
+      - instance_pd_server
+      disk.device.read.requests.rate_server_pd_2:
+      - abstract_pd_server
+      - disk.device.read.requests.rate_pd_server
+      link_packet_internal_network_test_nested_no_compute:
+      - test_nested_no_compute
+      - link_packet_internal_network
+      attachment_pd02_port_0:
+      - abstract_pd_server
+      - attachment_pd_server_pd02_port
+      network.outgoing.bytes.rate_pd01_port_0:
+      - abstract_pd_server_1
+      - network.outgoing.bytes.rate_pd_server_pd01_port
+      cpu_util_server_pd_1:
+      - abstract_pd_server_1
+      - cpu_util_pd_server
+      cpu_util_server_pd_2:
+      - abstract_pd_server
+      - cpu_util_pd_server
+      feature_cmaui_port_1_test_nested_no_compute:
+      - test_nested_no_compute
+      - feature_cmaui_port_1
+      disk.device.read.bytes.rate_server_pd_2:
+      - abstract_pd_server
+      - disk.device.read.bytes.rate_pd_server
+      binding_pd02_port_0:
+      - abstract_pd_server
+      - binding_pd_server_pd02_port
+      disk.allocation_server_pd_2:
+      - abstract_pd_server
+      - disk.allocation_pd_server
+      disk.device.write.bytes_server_pd_1:
+      - abstract_pd_server_1
+      - disk.device.write.bytes_pd_server
+      disk.device.write.bytes_server_pd_2:
+      - abstract_pd_server
+      - disk.device.write.bytes_pd_server
+      disk.allocation_server_pd_1:
+      - abstract_pd_server_1
+      - disk.allocation_pd_server
+      network.incoming.packets.rate_pd01_port_0:
+      - abstract_pd_server_1
+      - network.incoming.packets.rate_pd_server_pd01_port
+      disk.capacity_server_pd_2:
+      - abstract_pd_server
+      - disk.capacity_pd_server
+      disk.capacity_server_pd_1:
+      - abstract_pd_server_1
+      - disk.capacity_pd_server
+      disk.device.read.bytes.rate_server_pd_1:
+      - abstract_pd_server_1
+      - disk.device.read.bytes.rate_pd_server
+      network.incoming.bytes_pd01_port_0:
+      - abstract_pd_server_1
+      - network.incoming.bytes_pd_server_pd01_port
+      network.incoming.packets_cmaui_port_1_test_nested_no_compute:
+      - test_nested_no_compute
+      - network.incoming.packets_cmaui_port_1
+      attachment_cmaui_port_1_test_nested_no_compute:
+      - test_nested_no_compute
+      - attachment_cmaui_port_1
+      network.outgoing.packets.rate_pd02_port_0:
+      - abstract_pd_server
+      - network.outgoing.packets.rate_pd_server_pd02_port
+      network.outpoing.packets_pd02_port_0:
+      - abstract_pd_server
+      - network.outpoing.packets_pd_server_pd02_port
+      network.outpoing.packets_pd01_port_0:
+      - abstract_pd_server_1
+      - network.outpoing.packets_pd_server_pd01_port
+      binding_server_pd_2:
+      - abstract_pd_server
+      - binding_pd_server
+      disk.device.write.requests_server_pd_2:
+      - abstract_pd_server
+      - disk.device.write.requests_pd_server
+      binding_server_pd_1:
+      - abstract_pd_server_1
+      - binding_pd_server
+      disk.device.write.requests_server_pd_1:
+      - abstract_pd_server_1
+      - disk.device.write.requests_pd_server
+      network.incoming.packets_pd01_port_0:
+      - abstract_pd_server_1
+      - network.incoming.packets_pd_server_pd01_port
+      network.outgoing.bytes_cmaui_port_1_test_nested_no_compute:
+      - test_nested_no_compute
+      - network.outgoing.bytes_cmaui_port_1
+      disk.device.allocation_server_pd_1:
+      - abstract_pd_server_1
+      - disk.device.allocation_pd_server
+      feature_cmaui_port_2_test_nested_no_compute:
+      - test_nested_no_compute
+      - feature_cmaui_port_2
+      disk.device.allocation_server_pd_2:
+      - abstract_pd_server
+      - disk.device.allocation_pd_server
+      disk.device.write.requests.rate_server_pd_2:
+      - abstract_pd_server
+      - disk.device.write.requests.rate_pd_server
+      memory.usage_server_pd_2:
+      - abstract_pd_server
+      - memory.usage_pd_server
+      disk.read.bytes_server_pd_1:
+      - abstract_pd_server_1
+      - disk.read.bytes_pd_server
+      feature_packet_external_network_test_nested_no_compute:
+      - test_nested_no_compute
+      - feature_packet_external_network
+      disk.device.read.requests_server_pd_1:
+      - abstract_pd_server_1
+      - disk.device.read.requests_pd_server
+      disk.device.read.requests_server_pd_2:
+      - abstract_pd_server
+      - disk.device.read.requests_pd_server
+      disk.read.bytes_server_pd_2:
+      - abstract_pd_server
+      - disk.read.bytes_pd_server
+      feature_test_nested_no_compute:
+      - test_nested_no_compute
+      - feature
+      memory.usage_server_pd_1:
+      - abstract_pd_server_1
+      - memory.usage_pd_server
+      network.incoming.bytes.rate_pd02_port_0:
+      - abstract_pd_server
+      - network.incoming.bytes.rate_pd_server_pd02_port
+      attachment_packet_internal_network_test_nested_no_compute:
+      - test_nested_no_compute
+      - attachment_packet_internal_network
+      disk.device.write.requests.rate_server_pd_1:
+      - abstract_pd_server_1
+      - disk.device.write.requests.rate_pd_server
+      os_server_pd_2:
+      - abstract_pd_server
+      - os_pd_server
+      disk.latency_server_pd_1:
+      - abstract_pd_server_1
+      - disk.latency_pd_server
+      disk.latency_server_pd_2:
+      - abstract_pd_server
+      - disk.latency_pd_server
+      scalable_server_pd_2:
+      - abstract_pd_server
+      - scalable_pd_server
+      scalable_server_pd_1:
+      - abstract_pd_server_1
+      - scalable_pd_server
+      os_server_pd_1:
+      - abstract_pd_server_1
+      - os_pd_server
+    requirements:
+      dependency_cmaui_port_1_test_nested_no_compute:
+      - test_nested_no_compute
+      - dependency_cmaui_port_1
+      dependency_test_nested_no_compute:
+      - test_nested_no_compute
+      - dependency
+      link_pd01_port_0:
+      - abstract_pd_server_1
+      - link_pd_server_pd01_port
+      link_pd02_port_0:
+      - abstract_pd_server
+      - link_pd_server_pd02_port
+      local_storage_server_pd_1:
+      - abstract_pd_server_1
+      - local_storage_pd_server
+      local_storage_server_pd_2:
+      - abstract_pd_server
+      - local_storage_pd_server
+      dependency_cmaui_port_2_test_nested_no_compute:
+      - test_nested_no_compute
+      - dependency_cmaui_port_2
+      dependency_pd01_port_0:
+      - abstract_pd_server_1
+      - dependency_pd_server_pd01_port
+      dependency_server_pd_1:
+      - abstract_pd_server_1
+      - dependency_pd_server
+      dependency_server_pd_2:
+      - abstract_pd_server
+      - dependency_pd_server
+      dependency_pd02_port_0:
+      - abstract_pd_server
+      - dependency_pd_server_pd02_port
+      dependency_packet_external_network_test_nested_no_compute:
+      - test_nested_no_compute
+      - dependency_packet_external_network
+      dependency_packet_internal_network_test_nested_no_compute:
+      - test_nested_no_compute
+      - dependency_packet_internal_network
+      binding_cmaui_port_1_test_nested_no_compute:
+      - test_nested_no_compute
+      - binding_cmaui_port_1
+      binding_cmaui_port_2_test_nested_no_compute:
+      - test_nested_no_compute
+      - binding_cmaui_port_2
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/out/GlobalSubstitutionTypesServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..34406ed
--- /dev/null
@@ -0,0 +1,518 @@
+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_pd01_port_0_floating_ip_count:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_0_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_0_network_role_tag:
+        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_pd01_port_0_ip_count:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      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_1_floating_ip_count:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_1_ip_count:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_1_mac_count:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_1_network_role_tag:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_0_mac_count:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_1_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      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_1:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_pd_server_pd01_port_1:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_pd_server_pd01_port_0:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_pd_server_pd01_port_0:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    capabilities:
+      binding_pd_server_pd01_port_0:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      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
+      binding_pd_server_pd01_port_1:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - 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.packets_pd_server_pd01_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.iops_pd_server:
+        type: org.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_1:
+        type: org.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_1:
+        type: org.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_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_pd_server_pd01_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_pd_server_pd01_port_1:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_pd_server_pd01_port_1:
+        type: org.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_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      vcpus_pd_server:
+        type: org.openecomp.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
+      attachment_pd_server_pd01_port_0:
+        type: tosca.capabilities.Attachment
+        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
+      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.incoming.packets_pd_server_pd01_port_1:
+        type: org.openecomp.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.outgoing.bytes.rate_pd_server_pd01_port_1:
+        type: org.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_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_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
+      network.incoming.bytes_pd_server_pd01_port_1:
+        type: org.openecomp.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
+      network.outgoing.bytes_pd_server_pd01_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_pd_server_pd01_port_1:
+        type: org.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_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.requests.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
+      network.outpoing.packets_pd_server_pd01_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_pd_server_pd01_port_1:
+        type: org.openecomp.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
+      feature_pd_server_pd01_port_1:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_pd_server_pd01_port_0:
+        type: tosca.capabilities.Node
+        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
+      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
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/out/MainServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..2e75551
--- /dev/null
@@ -0,0 +1,161 @@
+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
+      type: string
+      description: flavor name of PD instance
+    p1:
+      hidden: false
+      immutable: false
+      type: string
+      description: UID of OAM network
+    availabilityzone_name:
+      label: availabilityzone name
+      hidden: false
+      immutable: false
+      type: string
+      description: availabilityzone name
+    security_group_name:
+      hidden: false
+      immutable: false
+      type: string
+      description: network name of jsa log network
+    pd_image_name:
+      label: image name
+      hidden: false
+      immutable: false
+      type: string
+      description: PD image name
+    pd_server_names:
+      label: PD server names
+      hidden: false
+      immutable: false
+      type: list
+      description: name of the PD instance
+      entry_schema:
+        type: string
+    oam_net_name:
+      hidden: false
+      immutable: false
+      type: string
+      description: net name
+    jsa_name:
+      hidden: false
+      immutable: false
+      type: string
+      description: network name of jsa log network
+  node_templates:
+    test_nested1Level:
+      type: org.openecomp.resource.abstract.nodes.heat.nested1
+      directives:
+      - substitutable
+      properties:
+        p1:
+          get_input: p1
+        service_template_filter:
+          substitute_service_template: nested1ServiceTemplate.yaml
+    packet_internal_network:
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+      properties:
+        network_name:
+          get_input: jsa_name
+    abstract_pd_server_6:
+      type: org.openecomp.resource.abstract.nodes.pd_server_6
+      directives:
+      - substitutable
+      properties:
+        compute_pd_server_availability_zone:
+        - get_input: availabilityzone_name
+        compute_pd_server_name:
+        - get_input:
+          - pd_server_names
+          - 1
+        port_pd02_port_mac_requirements:
+          mac_count_required:
+            is_required: false
+        vm_flavor_name:
+          get_input: pd_flavor_name
+        port_pd02_port_network_role_tag: oam
+        vm_image_name:
+          get_input: pd_image_name
+        port_pd02_port_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        port_pd02_port_network:
+        - get_input: oam_net_name
+        compute_pd_server_user_data_format:
+        - RAW
+        service_template_filter:
+          substitute_service_template: Nested_pd_server_6ServiceTemplate.yaml
+          count: 1
+        index_value:
+          get_property:
+          - SELF
+          - service_template_filter
+          - index_value
+    abstract_pd_server_7:
+      type: org.openecomp.resource.abstract.nodes.pd_server_7
+      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
+        port_pd01_port_mac_requirements:
+          mac_count_required:
+            is_required: false
+        vm_image_name:
+          get_input: pd_image_name
+        port_pd01_port_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        port_pd01_port_network:
+        - packet_internal_network
+        compute_pd_server_user_data_format:
+        - RAW
+        service_template_filter:
+          substitute_service_template: Nested_pd_server_7ServiceTemplate.yaml
+          count: 1
+        index_value:
+          get_property:
+          - SELF
+          - service_template_filter
+          - index_value
+      requirements:
+      - link_pd_server_pd01_port:
+          capability: tosca.capabilities.network.Linkable
+          node: packet_internal_network
+          relationship: tosca.relationships.network.LinksTo
+  groups:
+    main_group:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/main.yml
+        description: |
+          Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
+      members:
+      - test_nested1Level
+      - packet_internal_network
+      - abstract_pd_server_6
+      - abstract_pd_server_7
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/out/Nested_pd_serverServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/out/Nested_pd_serverServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..975b388
--- /dev/null
@@ -0,0 +1,308 @@
+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
+- openecomp_index:
+    file: openecomp/_index.yml
+node_types:
+  org.openecomp.resource.vfc.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_pd02_port_mac_requirements:
+      type: org.openecomp.datatypes.network.MacRequirements
+      required: true
+    vm_flavor_name:
+      type: string
+      required: true
+    port_pd02_port_order:
+      type: integer
+      required: true
+    port_pd02_port_subnetpoolid:
+      type: string
+      required: true
+    port_pd02_port_network_role_tag:
+      type: string
+      required: true
+    port_pd02_port_vlan_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.VlanRequirements
+    vm_image_name:
+      type: string
+      required: true
+    port_pd02_port_network_role:
+      type: string
+      required: true
+    port_pd02_port_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+    port_pd02_port_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+    port_pd02_port_network:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    compute_pd_server_user_data_format:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+  node_templates:
+    pd_server:
+      type: org.openecomp.resource.vfc.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_pd02_port:
+      type: org.openecomp.resource.cp.v2.extNeutronCP
+      properties:
+        ip_requirements:
+          get_input: port_pd02_port_ip_requirements
+        network_role:
+          get_input: port_pd02_port_network_role
+        subnetpoolid:
+          get_input: port_pd02_port_subnetpoolid
+        mac_requirements:
+          get_input: port_pd02_port_mac_requirements
+        exCP_naming:
+          get_input: port_pd02_port_exCP_naming
+        vlan_requirements:
+          get_input: port_pd02_port_vlan_requirements
+        network_role_tag:
+          get_input: port_pd02_port_network_role_tag
+        order:
+          get_input: port_pd02_port_order
+        network:
+          get_input:
+          - port_pd02_port_network
+          - index_value
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: pd_server
+          relationship: tosca.relationships.network.BindsTo
+      capabilities:
+      - port_mirroring:
+          properties:
+            connection_point:
+              nf_type: ''
+              nfc_type: pd_server
+              network_role:
+                get_input: port_pd02_port_network_role
+              pps_capacity: ''
+  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
+      binding_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - binding
+      network.outgoing.packets.rate_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.outgoing.packets.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.bytes_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.outgoing.bytes
+      feature_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - feature
+      network.incoming.bytes.rate_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.incoming.bytes.rate
+      network.outgoing.bytes.rate_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.outgoing.bytes.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
+      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
+      network.incoming.packets_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.incoming.packets
+      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
+      network.outpoing.packets_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.outpoing.packets
+      disk.write.bytes_pd_server:
+      - pd_server
+      - disk.write.bytes
+      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
+      attachment_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - attachment
+      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
+      disk.device.latency_pd_server:
+      - pd_server
+      - disk.device.latency
+      network.incoming.packets.rate_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.incoming.packets.rate
+      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
+      network.incoming.bytes_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.incoming.bytes
+      port_mirroring_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - port_mirroring
+    requirements:
+      local_storage_pd_server:
+      - pd_server
+      - local_storage
+      link_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - link
+      dependency_pd_server:
+      - pd_server
+      - dependency
+      dependency_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - dependency
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/out/Nested_pd_server_1ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/out/Nested_pd_server_1ServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..cad189f
--- /dev/null
@@ -0,0 +1,308 @@
+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
+- openecomp_index:
+    file: openecomp/_index.yml
+node_types:
+  org.openecomp.resource.vfc.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.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.v2.extNeutronCP
+      properties:
+        ip_requirements:
+          get_input: port_pd01_port_ip_requirements
+        network_role:
+          get_input: port_pd01_port_network_role
+        subnetpoolid:
+          get_input: port_pd01_port_subnetpoolid
+        mac_requirements:
+          get_input: port_pd01_port_mac_requirements
+        exCP_naming:
+          get_input: port_pd01_port_exCP_naming
+        vlan_requirements:
+          get_input: port_pd01_port_vlan_requirements
+        network_role_tag:
+          get_input: port_pd01_port_network_role_tag
+        order:
+          get_input: port_pd01_port_order
+        network:
+          get_input:
+          - port_pd01_port_network
+          - index_value
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: pd_server
+          relationship: tosca.relationships.network.BindsTo
+      capabilities:
+      - port_mirroring:
+          properties:
+            connection_point:
+              nf_type: ''
+              nfc_type: pd_server
+              network_role:
+                get_input: port_pd01_port_network_role
+              pps_capacity: ''
+  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
+      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
+      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
+      port_mirroring_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - port_mirroring
+    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-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/out/Nested_pd_server_2ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/out/Nested_pd_server_2ServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..d6293b8
--- /dev/null
@@ -0,0 +1,301 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: Nested_pd_server_2
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+  org.openecomp.resource.vfc.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_pd02_port_mac_requirements:
+      type: org.openecomp.datatypes.network.MacRequirements
+      required: true
+    vm_flavor_name:
+      type: string
+      required: true
+    port_pd02_port_order:
+      type: integer
+      required: true
+    port_pd02_port_subnetpoolid:
+      type: string
+      required: true
+    port_pd02_port_network_role_tag:
+      type: string
+      required: true
+    port_pd02_port_vlan_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.VlanRequirements
+    vm_image_name:
+      type: string
+      required: true
+    port_pd02_port_network_role:
+      type: string
+      required: true
+    port_pd02_port_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+    port_pd02_port_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+    port_pd02_port_network:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    compute_pd_server_user_data_format:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+  node_templates:
+    pd_server:
+      type: org.openecomp.resource.vfc.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_pd02_port:
+      type: org.openecomp.resource.cp.v2.extNeutronCP
+      properties:
+        exCP_naming:
+          get_input: port_pd02_port_exCP_naming
+        vlan_requirements:
+          get_input: port_pd02_port_vlan_requirements
+        ip_requirements:
+          get_input: port_pd02_port_ip_requirements
+        network_role_tag:
+          get_input: port_pd02_port_network_role_tag
+        mac_requirements:
+          get_input: port_pd02_port_mac_requirements
+        order:
+          get_input: port_pd02_port_order
+        network_role:
+          get_input: port_pd02_port_network_role
+        subnetpoolid:
+          get_input: port_pd02_port_subnetpoolid
+        network:
+          get_input:
+          - port_pd02_port_network
+          - index_value
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: pd_server
+          relationship: tosca.relationships.network.BindsTo
+      capabilities:
+      - port_mirroring:
+          properties:
+            connection_point:
+              nfc_type: pd_server
+              network_role:
+                get_input: port_pd02_port_network_role
+  substitution_mappings:
+    node_type: org.openecomp.resource.abstract.nodes.pd_server_2
+    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
+      binding_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - binding
+      network.outgoing.packets.rate_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.outgoing.packets.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.bytes_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.outgoing.bytes
+      feature_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - feature
+      network.incoming.bytes.rate_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.incoming.bytes.rate
+      network.outgoing.bytes.rate_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.outgoing.bytes.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
+      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
+      network.incoming.packets_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.incoming.packets
+      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
+      network.outpoing.packets_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.outpoing.packets
+      disk.write.bytes_pd_server:
+      - pd_server
+      - disk.write.bytes
+      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
+      attachment_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - attachment
+      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
+      disk.device.latency_pd_server:
+      - pd_server
+      - disk.device.latency
+      network.incoming.packets.rate_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.incoming.packets.rate
+      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
+      network.incoming.bytes_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.incoming.bytes
+    requirements:
+      local_storage_pd_server:
+      - pd_server
+      - local_storage
+      link_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - link
+      dependency_pd_server:
+      - pd_server
+      - dependency
+      dependency_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - dependency
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/out/Nested_pd_server_3ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/out/Nested_pd_server_3ServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..4aae018
--- /dev/null
@@ -0,0 +1,308 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: Nested_pd_server_3
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+- openecomp_index:
+    file: openecomp/_index.yml
+node_types:
+  org.openecomp.resource.vfc.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.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.v2.extNeutronCP
+      properties:
+        ip_requirements:
+          get_input: port_pd01_port_ip_requirements
+        network_role:
+          get_input: port_pd01_port_network_role
+        subnetpoolid:
+          get_input: port_pd01_port_subnetpoolid
+        mac_requirements:
+          get_input: port_pd01_port_mac_requirements
+        exCP_naming:
+          get_input: port_pd01_port_exCP_naming
+        vlan_requirements:
+          get_input: port_pd01_port_vlan_requirements
+        network_role_tag:
+          get_input: port_pd01_port_network_role_tag
+        order:
+          get_input: port_pd01_port_order
+        network:
+          get_input:
+          - port_pd01_port_network
+          - index_value
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: pd_server
+          relationship: tosca.relationships.network.BindsTo
+      capabilities:
+      - port_mirroring:
+          properties:
+            connection_point:
+              nf_type: ''
+              nfc_type: pd_server
+              network_role:
+                get_input: port_pd01_port_network_role
+              pps_capacity: ''
+  substitution_mappings:
+    node_type: org.openecomp.resource.abstract.nodes.pd_server_3
+    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
+      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
+      port_mirroring_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - port_mirroring
+    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-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/out/Nested_pd_server_4ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/out/Nested_pd_server_4ServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..2fe496e
--- /dev/null
@@ -0,0 +1,308 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: Nested_pd_server_4
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+- openecomp_index:
+    file: openecomp/_index.yml
+node_types:
+  org.openecomp.resource.vfc.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
+    port_ps02_port_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+    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_ps02_port_mac_requirements:
+      type: org.openecomp.datatypes.network.MacRequirements
+      required: true
+    vm_flavor_name:
+      type: string
+      required: true
+    port_ps02_port_network_role_tag:
+      type: string
+      required: true
+    port_ps02_port_network_role:
+      type: string
+      required: true
+    port_ps02_port_vlan_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.VlanRequirements
+    port_ps02_port_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+    vm_image_name:
+      type: string
+      required: true
+    port_ps02_port_subnetpoolid:
+      type: string
+      required: true
+    port_ps02_port_order:
+      type: integer
+      required: true
+    compute_pd_server_user_data_format:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_ps02_port_network:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+  node_templates:
+    pd_server:
+      type: org.openecomp.resource.vfc.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_ps02_port:
+      type: org.openecomp.resource.cp.v2.extNeutronCP
+      properties:
+        ip_requirements:
+          get_input: port_ps02_port_ip_requirements
+        network_role:
+          get_input: port_ps02_port_network_role
+        subnetpoolid:
+          get_input: port_ps02_port_subnetpoolid
+        mac_requirements:
+          get_input: port_ps02_port_mac_requirements
+        exCP_naming:
+          get_input: port_ps02_port_exCP_naming
+        vlan_requirements:
+          get_input: port_ps02_port_vlan_requirements
+        network_role_tag:
+          get_input: port_ps02_port_network_role_tag
+        order:
+          get_input: port_ps02_port_order
+        network:
+          get_input:
+          - port_ps02_port_network
+          - index_value
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: pd_server
+          relationship: tosca.relationships.network.BindsTo
+      capabilities:
+      - port_mirroring:
+          properties:
+            connection_point:
+              nf_type: ''
+              nfc_type: pd_server
+              network_role:
+                get_input: port_ps02_port_network_role
+              pps_capacity: ''
+  substitution_mappings:
+    node_type: org.openecomp.resource.abstract.nodes.pd_server_4
+    capabilities:
+      scalable_pd_server:
+      - pd_server
+      - scalable
+      disk.read.bytes.rate_pd_server:
+      - pd_server
+      - disk.read.bytes.rate
+      binding_pd_server_ps02_port:
+      - pd_server_ps02_port
+      - binding
+      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.incoming.bytes.rate_pd_server_ps02_port:
+      - pd_server_ps02_port
+      - network.incoming.bytes.rate
+      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
+      disk.iops_pd_server:
+      - pd_server
+      - disk.iops
+      network.incoming.packets.rate_pd_server_ps02_port:
+      - pd_server_ps02_port
+      - network.incoming.packets.rate
+      memory.resident_pd_server:
+      - pd_server
+      - memory.resident
+      cpu.delta_pd_server:
+      - pd_server
+      - cpu.delta
+      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
+      disk.capacity_pd_server:
+      - pd_server
+      - disk.capacity
+      network.incoming.bytes_pd_server_ps02_port:
+      - pd_server_ps02_port
+      - network.incoming.bytes
+      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
+      attachment_pd_server_ps02_port:
+      - pd_server_ps02_port
+      - attachment
+      feature_pd_server:
+      - pd_server
+      - feature
+      disk.usage_pd_server:
+      - pd_server
+      - disk.usage
+      disk.write.bytes_pd_server:
+      - pd_server
+      - disk.write.bytes
+      feature_pd_server_ps02_port:
+      - pd_server_ps02_port
+      - feature
+      network.outgoing.bytes.rate_pd_server_ps02_port:
+      - pd_server_ps02_port
+      - network.outgoing.bytes.rate
+      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
+      network.outgoing.packets.rate_pd_server_ps02_port:
+      - pd_server_ps02_port
+      - network.outgoing.packets.rate
+      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_ps02_port:
+      - pd_server_ps02_port
+      - network.outpoing.packets
+      disk.write.requests.rate_pd_server:
+      - pd_server
+      - disk.write.requests.rate
+      disk.ephemeral.size_pd_server:
+      - pd_server
+      - disk.ephemeral.size
+      network.outgoing.bytes_pd_server_ps02_port:
+      - pd_server_ps02_port
+      - network.outgoing.bytes
+      disk.write.requests_pd_server:
+      - pd_server
+      - disk.write.requests
+      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.incoming.packets_pd_server_ps02_port:
+      - pd_server_ps02_port
+      - network.incoming.packets
+      disk.device.iops_pd_server:
+      - pd_server
+      - disk.device.iops
+      port_mirroring_pd_server_ps02_port:
+      - pd_server_ps02_port
+      - port_mirroring
+    requirements:
+      local_storage_pd_server:
+      - pd_server
+      - local_storage
+      link_pd_server_ps02_port:
+      - pd_server_ps02_port
+      - link
+      dependency_pd_server:
+      - pd_server
+      - dependency
+      dependency_pd_server_ps02_port:
+      - pd_server_ps02_port
+      - dependency
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/out/Nested_pd_server_5ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/out/Nested_pd_server_5ServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..1b0d54a
--- /dev/null
@@ -0,0 +1,294 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: Nested_pd_server_5
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+  org.openecomp.resource.vfc.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.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_5
+    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
+      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-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/out/Nested_pd_server_6ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/out/Nested_pd_server_6ServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..9a3f9af
--- /dev/null
@@ -0,0 +1,308 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: Nested_pd_server_6
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+- openecomp_index:
+    file: openecomp/_index.yml
+node_types:
+  org.openecomp.resource.vfc.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_pd02_port_mac_requirements:
+      type: org.openecomp.datatypes.network.MacRequirements
+      required: true
+    vm_flavor_name:
+      type: string
+      required: true
+    port_pd02_port_order:
+      type: integer
+      required: true
+    port_pd02_port_subnetpoolid:
+      type: string
+      required: true
+    port_pd02_port_network_role_tag:
+      type: string
+      required: true
+    port_pd02_port_vlan_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.VlanRequirements
+    vm_image_name:
+      type: string
+      required: true
+    port_pd02_port_network_role:
+      type: string
+      required: true
+    port_pd02_port_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+    port_pd02_port_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+    port_pd02_port_network:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    compute_pd_server_user_data_format:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+  node_templates:
+    pd_server:
+      type: org.openecomp.resource.vfc.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_pd02_port:
+      type: org.openecomp.resource.cp.v2.extNeutronCP
+      properties:
+        ip_requirements:
+          get_input: port_pd02_port_ip_requirements
+        network_role:
+          get_input: port_pd02_port_network_role
+        subnetpoolid:
+          get_input: port_pd02_port_subnetpoolid
+        mac_requirements:
+          get_input: port_pd02_port_mac_requirements
+        exCP_naming:
+          get_input: port_pd02_port_exCP_naming
+        vlan_requirements:
+          get_input: port_pd02_port_vlan_requirements
+        network_role_tag:
+          get_input: port_pd02_port_network_role_tag
+        order:
+          get_input: port_pd02_port_order
+        network:
+          get_input:
+          - port_pd02_port_network
+          - index_value
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: pd_server
+          relationship: tosca.relationships.network.BindsTo
+      capabilities:
+      - port_mirroring:
+          properties:
+            connection_point:
+              nf_type: ''
+              nfc_type: pd_server
+              network_role:
+                get_input: port_pd02_port_network_role
+              pps_capacity: ''
+  substitution_mappings:
+    node_type: org.openecomp.resource.abstract.nodes.pd_server_6
+    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
+      binding_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - binding
+      network.outgoing.packets.rate_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.outgoing.packets.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.bytes_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.outgoing.bytes
+      feature_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - feature
+      network.incoming.bytes.rate_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.incoming.bytes.rate
+      network.outgoing.bytes.rate_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.outgoing.bytes.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
+      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
+      network.incoming.packets_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.incoming.packets
+      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
+      network.outpoing.packets_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.outpoing.packets
+      disk.write.bytes_pd_server:
+      - pd_server
+      - disk.write.bytes
+      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
+      attachment_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - attachment
+      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
+      disk.device.latency_pd_server:
+      - pd_server
+      - disk.device.latency
+      network.incoming.packets.rate_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.incoming.packets.rate
+      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
+      network.incoming.bytes_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.incoming.bytes
+      port_mirroring_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - port_mirroring
+    requirements:
+      local_storage_pd_server:
+      - pd_server
+      - local_storage
+      link_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - link
+      dependency_pd_server:
+      - pd_server
+      - dependency
+      dependency_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - dependency
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/out/Nested_pd_server_7ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/out/Nested_pd_server_7ServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..6454173
--- /dev/null
@@ -0,0 +1,294 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: Nested_pd_server_7
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+  org.openecomp.resource.vfc.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.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_7
+    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
+      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-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/out/nested-no-computeServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/out/nested-no-computeServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..76061f4
--- /dev/null
@@ -0,0 +1,252 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: nested-no-compute
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+topology_template:
+  inputs:
+    cmaui_names:
+      hidden: false
+      immutable: false
+      type: list
+      description: CMAUI1, CMAUI2 server names
+      entry_schema:
+        type: string
+    p1:
+      hidden: false
+      immutable: false
+      type: string
+      description: UID of OAM network
+    p2:
+      hidden: false
+      immutable: false
+      type: string
+      description: UID of OAM network
+    cmaui_image:
+      hidden: false
+      immutable: false
+      type: string
+      description: Image for CMAUI server
+    cmaui_flavor:
+      hidden: false
+      immutable: false
+      type: string
+      description: Flavor for CMAUI server
+    packet_internal_network_name:
+      hidden: false
+      immutable: false
+      type: string
+    packet_external_network_name:
+      hidden: false
+      immutable: false
+      type: string
+    security_group_name:
+      hidden: false
+      immutable: false
+      type: list
+      description: CMAUI1, CMAUI2 server names
+      entry_schema:
+        type: string
+    availability_zone_0:
+      label: availabilityzone name
+      hidden: false
+      immutable: false
+      type: string
+      description: availabilityzone name
+    cmaui_oam_ips:
+      hidden: false
+      immutable: false
+      type: string
+    net:
+      hidden: false
+      immutable: false
+      type: string
+  node_templates:
+    cmaui_port_2:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        replacement_policy: AUTO
+        ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: true
+          floating_ip_count_required:
+            is_required: false
+        fixed_ips:
+        - ip_address:
+            get_input:
+            - cmaui_oam_ips
+            - 0
+        mac_requirements:
+          mac_count_required:
+            is_required: false
+        network: packet_external_network
+      requirements:
+      - link:
+          capability: tosca.capabilities.network.Linkable
+          node: packet_external_network
+          relationship: tosca.relationships.network.LinksTo
+    packet_external_network:
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+      properties:
+        network_name:
+          get_input: packet_external_network_name
+    packet_internal_network:
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+      properties:
+        network_name:
+          get_input: packet_internal_network_name
+    cmaui_port_1:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        replacement_policy: AUTO
+        ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: true
+          floating_ip_count_required:
+            is_required: false
+        fixed_ips:
+        - ip_address:
+            get_input:
+            - cmaui_oam_ips
+            - 0
+        mac_requirements:
+          mac_count_required:
+            is_required: false
+        network: packet_internal_network
+      requirements:
+      - link:
+          capability: tosca.capabilities.network.Linkable
+          node: packet_internal_network
+          relationship: tosca.relationships.network.LinksTo
+  groups:
+    nested-no-compute_group:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/nested-no-compute.yml
+        description: nested1
+      members:
+      - cmaui_port_2
+      - packet_external_network
+      - packet_internal_network
+      - cmaui_port_1
+  outputs:
+    no_compute_attr_1:
+      description: no_compute_attr_1
+      value: packet_external_network
+  substitution_mappings:
+    node_type: org.openecomp.resource.abstract.nodes.heat.nested-no-compute
+    capabilities:
+      network.incoming.packets_cmaui_port_2:
+      - cmaui_port_2
+      - network.incoming.packets
+      network.incoming.packets_cmaui_port_1:
+      - cmaui_port_1
+      - network.incoming.packets
+      network.incoming.packets.rate_cmaui_port_1:
+      - cmaui_port_1
+      - network.incoming.packets.rate
+      network.incoming.packets.rate_cmaui_port_2:
+      - cmaui_port_2
+      - network.incoming.packets.rate
+      feature_cmaui_port_1:
+      - cmaui_port_1
+      - feature
+      feature_cmaui_port_2:
+      - cmaui_port_2
+      - feature
+      end_point_packet_internal_network:
+      - packet_internal_network
+      - end_point
+      link_packet_internal_network:
+      - packet_internal_network
+      - link
+      feature_packet_internal_network:
+      - packet_internal_network
+      - feature
+      end_point_packet_external_network:
+      - packet_external_network
+      - end_point
+      attachment_cmaui_port_2:
+      - cmaui_port_2
+      - attachment
+      network.outgoing.bytes_cmaui_port_2:
+      - cmaui_port_2
+      - network.outgoing.bytes
+      network.outgoing.packets.rate_cmaui_port_1:
+      - cmaui_port_1
+      - network.outgoing.packets.rate
+      network.outgoing.packets.rate_cmaui_port_2:
+      - cmaui_port_2
+      - network.outgoing.packets.rate
+      network.outgoing.bytes_cmaui_port_1:
+      - cmaui_port_1
+      - network.outgoing.bytes
+      attachment_cmaui_port_1:
+      - cmaui_port_1
+      - attachment
+      binding_cmaui_port_1:
+      - cmaui_port_1
+      - binding
+      binding_cmaui_port_2:
+      - cmaui_port_2
+      - binding
+      network.incoming.bytes.rate_cmaui_port_1:
+      - cmaui_port_1
+      - network.incoming.bytes.rate
+      network.incoming.bytes.rate_cmaui_port_2:
+      - cmaui_port_2
+      - network.incoming.bytes.rate
+      attachment_packet_internal_network:
+      - packet_internal_network
+      - attachment
+      network.outpoing.packets_cmaui_port_1:
+      - cmaui_port_1
+      - network.outpoing.packets
+      network.outpoing.packets_cmaui_port_2:
+      - cmaui_port_2
+      - network.outpoing.packets
+      network.outgoing.bytes.rate_cmaui_port_2:
+      - cmaui_port_2
+      - network.outgoing.bytes.rate
+      network.outgoing.bytes.rate_cmaui_port_1:
+      - cmaui_port_1
+      - network.outgoing.bytes.rate
+      attachment_packet_external_network:
+      - packet_external_network
+      - attachment
+      network.incoming.bytes_cmaui_port_2:
+      - cmaui_port_2
+      - network.incoming.bytes
+      link_packet_external_network:
+      - packet_external_network
+      - link
+      feature_packet_external_network:
+      - packet_external_network
+      - feature
+      network.incoming.bytes_cmaui_port_1:
+      - cmaui_port_1
+      - network.incoming.bytes
+    requirements:
+      binding_cmaui_port_1:
+      - cmaui_port_1
+      - binding
+      binding_cmaui_port_2:
+      - cmaui_port_2
+      - binding
+      dependency_packet_internal_network:
+      - packet_internal_network
+      - dependency
+      dependency_cmaui_port_1:
+      - cmaui_port_1
+      - dependency
+      dependency_cmaui_port_2:
+      - cmaui_port_2
+      - dependency
+      dependency_packet_external_network:
+      - packet_external_network
+      - dependency
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/out/nested1ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/out/nested1ServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..2619ce8
--- /dev/null
@@ -0,0 +1,1375 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: nested1
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+topology_template:
+  inputs:
+    pd_flavor_name:
+      hidden: false
+      immutable: false
+      type: string
+      description: Flavor for CMAUI server
+    p1:
+      hidden: false
+      immutable: false
+      type: string
+      description: UID of OAM network
+    p2:
+      hidden: false
+      immutable: false
+      type: string
+      description: UID of OAM network
+    availabilityzone_name:
+      label: availabilityzone name
+      hidden: false
+      immutable: false
+      type: string
+      description: availabilityzone name
+    security_group_name:
+      hidden: false
+      immutable: false
+      type: list
+      description: CMAUI1, CMAUI2 server names
+      entry_schema:
+        type: string
+    pd_image_name:
+      hidden: false
+      immutable: false
+      type: string
+      description: Image for CMAUI server
+    pd_server_names:
+      hidden: false
+      immutable: false
+      type: list
+      description: CMAUI1, CMAUI2 server names
+      entry_schema:
+        type: string
+    net:
+      hidden: false
+      immutable: false
+      type: string
+    oam_net_name:
+      hidden: false
+      immutable: false
+      type: string
+    jsa_name:
+      hidden: false
+      immutable: false
+      type: string
+      description: network name of jsa log network
+  node_templates:
+    pd01_port_1:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        mac_requirements:
+          mac_count_required:
+            is_required: false
+        network: packet_internal_network_nested_1
+      requirements:
+      - link:
+          capability: tosca.capabilities.network.Linkable
+          node: packet_internal_network_nested_1
+          relationship: tosca.relationships.network.LinksTo
+    packet_internal_network_nested_1:
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+      properties:
+        network_name:
+          get_input: jsa_name
+    abstract_pd_server_4:
+      type: org.openecomp.resource.abstract.nodes.pd_server_4
+      directives:
+      - substitutable
+      properties:
+        port_ps02_port_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        compute_pd_server_availability_zone:
+        - get_input: availabilityzone_name
+        compute_pd_server_name:
+        - get_input:
+          - pd_server_names
+          - 1
+        port_ps02_port_mac_requirements:
+          mac_count_required:
+            is_required: false
+        vm_flavor_name:
+          get_input: pd_flavor_name
+        port_ps02_port_network_role_tag: oam
+        vm_image_name:
+          get_input: pd_image_name
+        compute_pd_server_user_data_format:
+        - RAW
+        port_ps02_port_network:
+        - get_input: oam_net_name
+        service_template_filter:
+          substitute_service_template: Nested_pd_server_4ServiceTemplate.yaml
+          count: 1
+        index_value:
+          get_property:
+          - SELF
+          - service_template_filter
+          - index_value
+    abstract_pd_server_5:
+      type: org.openecomp.resource.abstract.nodes.pd_server_5
+      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
+        port_pd01_port_mac_requirements:
+          mac_count_required:
+            is_required: false
+        vm_image_name:
+          get_input: pd_image_name
+        port_pd01_port_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        port_pd01_port_network:
+        - packet_internal_network_nested_1
+        compute_pd_server_user_data_format:
+        - RAW
+        service_template_filter:
+          substitute_service_template: Nested_pd_server_5ServiceTemplate.yaml
+          count: 1
+        index_value:
+          get_property:
+          - SELF
+          - service_template_filter
+          - index_value
+      requirements:
+      - link_pd_server_pd01_port:
+          capability: tosca.capabilities.network.Linkable
+          node: packet_internal_network_nested_1
+          relationship: tosca.relationships.network.LinksTo
+    test_nested2Level:
+      type: org.openecomp.resource.abstract.nodes.heat.nested2
+      directives:
+      - substitutable
+      properties:
+        p1:
+          get_input: p1
+        service_template_filter:
+          substitute_service_template: nested2ServiceTemplate.yaml
+  groups:
+    nested1_group:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/nested1.yml
+        description: nested1
+      members:
+      - pd01_port_1
+      - packet_internal_network_nested_1
+      - test_nested2Level
+      - abstract_pd_server_4
+      - abstract_pd_server_5
+  substitution_mappings:
+    node_type: org.openecomp.resource.abstract.nodes.heat.nested1
+    capabilities:
+      vcpus_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - vcpus_server_pd_1
+      network.incoming.bytes.rate_pd02_port_0_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - network.incoming.bytes.rate_pd02_port_0_test_nested3Level
+      feature_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - feature_server_pd_2
+      binding_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - binding_server_pd_2_test_nested3Level
+      disk.iops_server_pd_1:
+      - abstract_pd_server_5
+      - disk.iops_pd_server
+      disk.iops_server_pd_2:
+      - abstract_pd_server_4
+      - disk.iops_pd_server
+      disk.write.bytes.rate_server_pd_2:
+      - abstract_pd_server_4
+      - disk.write.bytes.rate_pd_server
+      disk.write.bytes.rate_server_pd_1:
+      - abstract_pd_server_5
+      - disk.write.bytes.rate_pd_server
+      disk.read.requests_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - disk.read.requests_server_pd_2
+      disk.device.iops_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - disk.device.iops_server_pd_1
+      network.outgoing.packets.rate_cmaui_port_2_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - network.outgoing.packets.rate_cmaui_port_2_test_nested_no_compute_test_nested3Level
+      network.outgoing.bytes_pd01_port_0_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - network.outgoing.bytes_pd01_port_0_test_nested3Level
+      disk.device.write.bytes.rate_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - disk.device.write.bytes.rate_server_pd_1
+      disk.write.bytes_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.write.bytes_server_pd_2_test_nested3Level
+      network.outgoing.packets.rate_pd02_port_0_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - network.outgoing.packets.rate_pd02_port_0_test_nested3Level
+      disk.ephemeral.size_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - disk.ephemeral.size_server_pd_1
+      vcpus_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - vcpus_server_pd_2
+      feature_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - feature_server_pd_2_test_nested3Level
+      disk.device.usage_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.device.usage_server_pd_1_test_nested3Level
+      os_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - os_server_pd_1
+      end_point_packet_internal_network_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - end_point_packet_internal_network_test_nested_no_compute_test_nested3Level
+      host_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - host_server_pd_2
+      disk.ephemeral.size_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - disk.ephemeral.size_server_pd_2
+      disk.latency_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - disk.latency_server_pd_2
+      memory.resident_server_pd_1:
+      - abstract_pd_server_5
+      - memory.resident_pd_server
+      os_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - os_server_pd_2
+      disk.latency_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - disk.latency_server_pd_1
+      memory.resident_server_pd_2:
+      - abstract_pd_server_4
+      - memory.resident_pd_server
+      feature_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - feature_server_pd_1_test_nested3Level
+      binding_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - binding_server_pd_1_test_nested3Level
+      feature_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - feature_server_pd_1
+      feature_pd01_port_0_test_nested2Level:
+      - test_nested2Level
+      - feature_pd01_port_0
+      disk.write.bytes_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.write.bytes_server_pd_1_test_nested3Level
+      disk.ephemeral.size_server_pd_2:
+      - abstract_pd_server_4
+      - disk.ephemeral.size_pd_server
+      disk.ephemeral.size_server_pd_1:
+      - abstract_pd_server_5
+      - disk.ephemeral.size_pd_server
+      disk.write.bytes.rate_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - disk.write.bytes.rate_server_pd_1
+      network.incoming.packets_cmaui_port_2_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - network.incoming.packets_cmaui_port_2_test_nested_no_compute_test_nested3Level
+      feature_packet_internal_network_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - feature_packet_internal_network_test_nested_no_compute_test_nested3Level
+      feature_cmaui_port_2_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - feature_cmaui_port_2_test_nested_no_compute_test_nested3Level
+      binding_pd01_port_1:
+      - pd01_port_1
+      - binding
+      binding_pd01_port_0_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - binding_pd01_port_0_test_nested3Level
+      binding_pd01_port_0:
+      - abstract_pd_server_5
+      - binding_pd_server_pd01_port
+      host_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - host_server_pd_1
+      disk.device.read.bytes_server_pd_1:
+      - abstract_pd_server_5
+      - disk.device.read.bytes_pd_server
+      network.incoming.bytes.rate_pd02_port_0_test_nested2Level:
+      - test_nested2Level
+      - network.incoming.bytes.rate_pd02_port_0
+      disk.device.read.bytes_server_pd_2:
+      - abstract_pd_server_4
+      - disk.device.read.bytes_pd_server
+      attachment_pd01_port_0_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - attachment_pd01_port_0_test_nested3Level
+      instance_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - instance_server_pd_1_test_nested3Level
+      network.outgoing.packets.rate_pd01_port_1:
+      - pd01_port_1
+      - network.outgoing.packets.rate
+      cpu_util_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - cpu_util_server_pd_1
+      network.outgoing.packets.rate_pd01_port_0:
+      - abstract_pd_server_5
+      - network.outgoing.packets.rate_pd_server_pd01_port
+      disk.write.bytes.rate_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - disk.write.bytes.rate_server_pd_2
+      feature_packet_external_network_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - feature_packet_external_network_test_nested_no_compute_test_nested3Level
+      attachment_cmaui_port_2_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - attachment_cmaui_port_2_test_nested_no_compute_test_nested3Level
+      disk.device.latency_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.device.latency_server_pd_2_test_nested3Level
+      disk.root.size_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.root.size_server_pd_2_test_nested3Level
+      feature_pd01_port_0_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - feature_pd01_port_0_test_nested3Level
+      attachment_ps02_port_0:
+      - abstract_pd_server_4
+      - attachment_pd_server_ps02_port
+      disk.capacity_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - disk.capacity_server_pd_1
+      network.incoming.packets_pd02_port_0_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - network.incoming.packets_pd02_port_0_test_nested3Level
+      attachment_pd02_port_0_test_nested2Level:
+      - test_nested2Level
+      - attachment_pd02_port_0
+      disk.device.usage_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - disk.device.usage_server_pd_1
+      feature_test_nested2Level:
+      - test_nested2Level
+      - feature
+      disk.read.bytes_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.read.bytes_server_pd_2_test_nested3Level
+      network.incoming.packets.rate_cmaui_port_1_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - network.incoming.packets.rate_cmaui_port_1_test_nested_no_compute_test_nested3Level
+      network.outgoing.bytes_cmaui_port_1_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - network.outgoing.bytes_cmaui_port_1_test_nested_no_compute_test_nested3Level
+      disk.read.requests_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - disk.read.requests_server_pd_1
+      disk.device.write.bytes_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - disk.device.write.bytes_server_pd_1
+      disk.device.read.bytes_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - disk.device.read.bytes_server_pd_2
+      instance_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - instance_server_pd_2_test_nested3Level
+      disk.read.bytes_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - disk.read.bytes_server_pd_1
+      disk.device.usage_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.device.usage_server_pd_2_test_nested3Level
+      endpoint_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - endpoint_server_pd_1
+      disk.allocation_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - disk.allocation_server_pd_2
+      disk.read.bytes.rate_server_pd_2:
+      - abstract_pd_server_4
+      - disk.read.bytes.rate_pd_server
+      disk.device.read.requests.rate_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - disk.device.read.requests.rate_server_pd_1
+      disk.read.bytes.rate_server_pd_1:
+      - abstract_pd_server_5
+      - disk.read.bytes.rate_pd_server
+      cpu_server_pd_2:
+      - abstract_pd_server_4
+      - cpu_pd_server
+      attachment_pd01_port_1:
+      - pd01_port_1
+      - attachment
+      cpu_server_pd_1:
+      - abstract_pd_server_5
+      - cpu_pd_server
+      disk.root.size_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.root.size_server_pd_1_test_nested3Level
+      attachment_pd01_port_0:
+      - abstract_pd_server_5
+      - attachment_pd_server_pd01_port
+      network.outpoing.packets_cmaui_port_2_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - network.outpoing.packets_cmaui_port_2_test_nested_no_compute_test_nested3Level
+      network.incoming.bytes.rate_pd01_port_0_test_nested2Level:
+      - test_nested2Level
+      - network.incoming.bytes.rate_pd01_port_0
+      binding_cmaui_port_1_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - binding_cmaui_port_1_test_nested_no_compute_test_nested3Level
+      endpoint_server_pd_2:
+      - abstract_pd_server_4
+      - endpoint_pd_server
+      memory.resident_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - memory.resident_server_pd_2
+      network.outgoing.packets.rate_pd01_port_0_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - network.outgoing.packets.rate_pd01_port_0_test_nested3Level
+      endpoint_server_pd_1:
+      - abstract_pd_server_5
+      - endpoint_pd_server
+      vcpus_server_pd_1:
+      - abstract_pd_server_5
+      - vcpus_pd_server
+      vcpus_server_pd_2:
+      - abstract_pd_server_4
+      - vcpus_pd_server
+      disk.read.bytes.rate_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.read.bytes.rate_server_pd_2_test_nested3Level
+      endpoint_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - endpoint_server_pd_2_test_nested3Level
+      disk.write.requests_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - disk.write.requests_server_pd_1
+      disk.device.write.bytes_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.device.write.bytes_server_pd_2_test_nested3Level
+      network.outgoing.bytes_pd01_port_0_test_nested2Level:
+      - test_nested2Level
+      - network.outgoing.bytes_pd01_port_0
+      disk.device.write.requests_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.device.write.requests_server_pd_2_test_nested3Level
+      network.incoming.bytes_pd01_port_0_test_nested2Level:
+      - test_nested2Level
+      - network.incoming.bytes_pd01_port_0
+      disk.device.write.bytes.rate_server_pd_1:
+      - abstract_pd_server_5
+      - disk.device.write.bytes.rate_pd_server
+      cpu_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - cpu_server_pd_1
+      disk.device.write.bytes.rate_server_pd_2:
+      - abstract_pd_server_4
+      - disk.device.write.bytes.rate_pd_server
+      disk.ephemeral.size_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.ephemeral.size_server_pd_1_test_nested3Level
+      disk.write.requests.rate_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.write.requests.rate_server_pd_1_test_nested3Level
+      disk.write.requests.rate_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - disk.write.requests.rate_server_pd_2
+      network.incoming.bytes.rate_pd01_port_0_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - network.incoming.bytes.rate_pd01_port_0_test_nested3Level
+      disk.device.write.requests.rate_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - disk.device.write.requests.rate_server_pd_1
+      disk.write.bytes_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - disk.write.bytes_server_pd_2
+      network.outgoing.bytes.rate_pd01_port_0_test_nested2Level:
+      - test_nested2Level
+      - network.outgoing.bytes.rate_pd01_port_0
+      cpu.delta_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - cpu.delta_server_pd_2
+      network.incoming.bytes.rate_pd01_port_0:
+      - abstract_pd_server_5
+      - network.incoming.bytes.rate_pd_server_pd01_port
+      disk.latency_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.latency_server_pd_1_test_nested3Level
+      network.incoming.bytes.rate_pd01_port_1:
+      - pd01_port_1
+      - network.incoming.bytes.rate
+      feature_pd02_port_0_test_nested2Level:
+      - test_nested2Level
+      - feature_pd02_port_0
+      attachment_packet_internal_network_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - attachment_packet_internal_network_test_nested_no_compute_test_nested3Level
+      cpu_util_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - cpu_util_server_pd_1_test_nested3Level
+      link_packet_internal_network_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - link_packet_internal_network_test_nested_no_compute_test_nested3Level
+      disk.device.allocation_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - disk.device.allocation_server_pd_1
+      network.outgoing.packets.rate_cmaui_port_1_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - network.outgoing.packets.rate_cmaui_port_1_test_nested_no_compute_test_nested3Level
+      disk.device.read.bytes_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.device.read.bytes_server_pd_2_test_nested3Level
+      disk.iops_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.iops_server_pd_2_test_nested3Level
+      instance_server_pd_1:
+      - abstract_pd_server_5
+      - instance_pd_server
+      disk.device.read.requests.rate_server_pd_1:
+      - abstract_pd_server_5
+      - disk.device.read.requests.rate_pd_server
+      network.incoming.packets_pd02_port_0_test_nested2Level:
+      - test_nested2Level
+      - network.incoming.packets_pd02_port_0
+      instance_server_pd_2:
+      - abstract_pd_server_4
+      - instance_pd_server
+      disk.device.read.requests.rate_server_pd_2:
+      - abstract_pd_server_4
+      - disk.device.read.requests.rate_pd_server
+      disk.capacity_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.capacity_server_pd_1_test_nested3Level
+      network.outgoing.packets.rate_pd02_port_0_test_nested2Level:
+      - test_nested2Level
+      - network.outgoing.packets.rate_pd02_port_0
+      binding_ps02_port_0:
+      - abstract_pd_server_4
+      - binding_pd_server_ps02_port
+      disk.write.bytes.rate_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.write.bytes.rate_server_pd_2_test_nested3Level
+      cpu_util_server_pd_1:
+      - abstract_pd_server_5
+      - cpu_util_pd_server
+      cpu_util_server_pd_2:
+      - abstract_pd_server_4
+      - cpu_util_pd_server
+      disk.device.read.bytes.rate_server_pd_2:
+      - abstract_pd_server_4
+      - disk.device.read.bytes.rate_pd_server
+      network.outgoing.bytes_cmaui_port_2_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - network.outgoing.bytes_cmaui_port_2_test_nested_no_compute_test_nested3Level
+      disk.capacity_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - disk.capacity_server_pd_2
+      disk.allocation_server_pd_2:
+      - abstract_pd_server_4
+      - disk.allocation_pd_server
+      disk.device.write.bytes_server_pd_1:
+      - abstract_pd_server_5
+      - disk.device.write.bytes_pd_server
+      disk.device.write.bytes_server_pd_2:
+      - abstract_pd_server_4
+      - disk.device.write.bytes_pd_server
+      disk.allocation_server_pd_1:
+      - abstract_pd_server_5
+      - disk.allocation_pd_server
+      network.incoming.packets.rate_pd01_port_0:
+      - abstract_pd_server_5
+      - network.incoming.packets.rate_pd_server_pd01_port
+      disk.capacity_server_pd_2:
+      - abstract_pd_server_4
+      - disk.capacity_pd_server
+      disk.read.bytes_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - disk.read.bytes_server_pd_2
+      network.incoming.packets.rate_pd01_port_1:
+      - pd01_port_1
+      - network.incoming.packets.rate
+      disk.capacity_server_pd_1:
+      - abstract_pd_server_5
+      - disk.capacity_pd_server
+      disk.allocation_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.allocation_server_pd_2_test_nested3Level
+      disk.device.read.bytes.rate_server_pd_1:
+      - abstract_pd_server_5
+      - disk.device.read.bytes.rate_pd_server
+      network.outpoing.packets_pd01_port_1:
+      - pd01_port_1
+      - network.outpoing.packets
+      end_point_packet_internal_network_nested_1:
+      - packet_internal_network_nested_1
+      - end_point
+      os_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - os_server_pd_2_test_nested3Level
+      network.outgoing.packets.rate_ps02_port_0:
+      - abstract_pd_server_4
+      - network.outgoing.packets.rate_pd_server_ps02_port
+      cpu.delta_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - cpu.delta_server_pd_1_test_nested3Level
+      network.incoming.bytes.rate_cmaui_port_2_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - network.incoming.bytes.rate_cmaui_port_2_test_nested_no_compute_test_nested3Level
+      feature_packet_internal_network_nested_1:
+      - packet_internal_network_nested_1
+      - feature
+      disk.device.allocation_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.device.allocation_server_pd_1_test_nested3Level
+      network.outpoing.packets_pd01_port_0:
+      - abstract_pd_server_5
+      - network.outpoing.packets_pd_server_pd01_port
+      binding_server_pd_2:
+      - abstract_pd_server_4
+      - binding_pd_server
+      link_packet_external_network_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - link_packet_external_network_test_nested_no_compute_test_nested3Level
+      disk.device.write.requests_server_pd_2:
+      - abstract_pd_server_4
+      - disk.device.write.requests_pd_server
+      binding_server_pd_1:
+      - abstract_pd_server_5
+      - binding_pd_server
+      disk.device.write.requests_server_pd_1:
+      - abstract_pd_server_5
+      - disk.device.write.requests_pd_server
+      disk.usage_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - disk.usage_server_pd_1
+      binding_cmaui_port_2_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - binding_cmaui_port_2_test_nested_no_compute_test_nested3Level
+      binding_pd02_port_0_test_nested2Level:
+      - test_nested2Level
+      - binding_pd02_port_0
+      disk.write.requests_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.write.requests_server_pd_2_test_nested3Level
+      network.incoming.packets.rate_pd01_port_0_test_nested2Level:
+      - test_nested2Level
+      - network.incoming.packets.rate_pd01_port_0
+      network.incoming.bytes.rate_ps02_port_0:
+      - abstract_pd_server_4
+      - network.incoming.bytes.rate_pd_server_ps02_port
+      disk.device.write.requests.rate_server_pd_2:
+      - abstract_pd_server_4
+      - disk.device.write.requests.rate_pd_server
+      disk.read.bytes_server_pd_1:
+      - abstract_pd_server_5
+      - disk.read.bytes_pd_server
+      disk.device.iops_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.device.iops_server_pd_1_test_nested3Level
+      cpu_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - cpu_server_pd_1_test_nested3Level
+      disk.device.read.requests_server_pd_1:
+      - abstract_pd_server_5
+      - disk.device.read.requests_pd_server
+      disk.root.size_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - disk.root.size_server_pd_2
+      disk.device.read.requests_server_pd_2:
+      - abstract_pd_server_4
+      - disk.device.read.requests_pd_server
+      disk.read.bytes_server_pd_2:
+      - abstract_pd_server_4
+      - disk.read.bytes_pd_server
+      disk.device.write.requests.rate_server_pd_1:
+      - abstract_pd_server_5
+      - disk.device.write.requests.rate_pd_server
+      host_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - host_server_pd_1_test_nested3Level
+      vcpus_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - vcpus_server_pd_2_test_nested3Level
+      network.outpoing.packets_ps02_port_0:
+      - abstract_pd_server_4
+      - network.outpoing.packets_pd_server_ps02_port
+      endpoint_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - endpoint_server_pd_2
+      disk.read.requests_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.read.requests_server_pd_1_test_nested3Level
+      memory.resident_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - memory.resident_server_pd_2_test_nested3Level
+      network.incoming.packets.rate_cmaui_port_2_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - network.incoming.packets.rate_cmaui_port_2_test_nested_no_compute_test_nested3Level
+      disk.read.bytes.rate_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - disk.read.bytes.rate_server_pd_1
+      disk.root.size_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - disk.root.size_server_pd_1
+      host_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - host_server_pd_2_test_nested3Level
+      memory_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - memory_server_pd_2
+      disk.device.capacity_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - disk.device.capacity_server_pd_1
+      binding_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - binding_server_pd_2
+      network.outgoing.bytes.rate_cmaui_port_1_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - network.outgoing.bytes.rate_cmaui_port_1_test_nested_no_compute_test_nested3Level
+      cpu.delta_server_pd_2:
+      - abstract_pd_server_4
+      - cpu.delta_pd_server
+      disk.usage_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.usage_server_pd_2_test_nested3Level
+      feature_server_pd_2:
+      - abstract_pd_server_4
+      - feature_pd_server
+      feature_server_pd_1:
+      - abstract_pd_server_5
+      - feature_pd_server
+      scalable_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - scalable_server_pd_1
+      cpu.delta_server_pd_1:
+      - abstract_pd_server_5
+      - cpu.delta_pd_server
+      host_server_pd_1:
+      - abstract_pd_server_5
+      - host_pd_server
+      binding_pd01_port_0_test_nested2Level:
+      - test_nested2Level
+      - binding_pd01_port_0
+      host_server_pd_2:
+      - abstract_pd_server_4
+      - host_pd_server
+      memory.usage_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - memory.usage_server_pd_1_test_nested3Level
+      network.outgoing.bytes_pd01_port_0:
+      - abstract_pd_server_5
+      - network.outgoing.bytes_pd_server_pd01_port
+      network.outgoing.bytes_pd01_port_1:
+      - pd01_port_1
+      - network.outgoing.bytes
+      disk.device.read.requests.rate_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.device.read.requests.rate_server_pd_2_test_nested3Level
+      disk.device.read.requests_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.device.read.requests_server_pd_2_test_nested3Level
+      memory.usage_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - memory.usage_server_pd_2
+      disk.device.read.bytes.rate_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.device.read.bytes.rate_server_pd_1_test_nested3Level
+      memory_server_pd_2:
+      - abstract_pd_server_4
+      - memory_pd_server
+      binding_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - binding_server_pd_1
+      memory_server_pd_1:
+      - abstract_pd_server_5
+      - memory_pd_server
+      disk.device.read.requests.rate_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.device.read.requests.rate_server_pd_1_test_nested3Level
+      os_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - os_server_pd_1_test_nested3Level
+      disk.allocation_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.allocation_server_pd_1_test_nested3Level
+      network.outgoing.bytes.rate_pd01_port_0_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - network.outgoing.bytes.rate_pd01_port_0_test_nested3Level
+      network.incoming.packets_cmaui_port_1_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - network.incoming.packets_cmaui_port_1_test_nested_no_compute_test_nested3Level
+      attachment_packet_external_network_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - attachment_packet_external_network_test_nested_no_compute_test_nested3Level
+      network.outpoing.packets_pd01_port_0_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - network.outpoing.packets_pd01_port_0_test_nested3Level
+      memory.usage_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - memory.usage_server_pd_1
+      disk.read.bytes.rate_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - disk.read.bytes.rate_server_pd_2
+      feature_ps02_port_0:
+      - abstract_pd_server_4
+      - feature_pd_server_ps02_port
+      disk.device.capacity_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.device.capacity_server_pd_2_test_nested3Level
+      disk.device.read.requests_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.device.read.requests_server_pd_1_test_nested3Level
+      network.outgoing.packets.rate_pd01_port_0_test_nested2Level:
+      - test_nested2Level
+      - network.outgoing.packets.rate_pd01_port_0
+      memory_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - memory_server_pd_1
+      disk.device.read.bytes.rate_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - disk.device.read.bytes.rate_server_pd_2
+      disk.write.requests_server_pd_1:
+      - abstract_pd_server_5
+      - disk.write.requests_pd_server
+      network.incoming.bytes_cmaui_port_2_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - network.incoming.bytes_cmaui_port_2_test_nested_no_compute_test_nested3Level
+      attachment_cmaui_port_1_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - attachment_cmaui_port_1_test_nested_no_compute_test_nested3Level
+      scalable_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - scalable_server_pd_2
+      disk.write.requests_server_pd_2:
+      - abstract_pd_server_4
+      - disk.write.requests_pd_server
+      disk.write.bytes_server_pd_1:
+      - abstract_pd_server_5
+      - disk.write.bytes_pd_server
+      network.outpoing.packets_pd01_port_0_test_nested2Level:
+      - test_nested2Level
+      - network.outpoing.packets_pd01_port_0
+      cpu_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - cpu_server_pd_2_test_nested3Level
+      disk.write.bytes_server_pd_2:
+      - abstract_pd_server_4
+      - disk.write.bytes_pd_server
+      disk.read.requests_server_pd_1:
+      - abstract_pd_server_5
+      - disk.read.requests_pd_server
+      disk.read.requests_server_pd_2:
+      - abstract_pd_server_4
+      - disk.read.requests_pd_server
+      disk.device.usage_server_pd_2:
+      - abstract_pd_server_4
+      - disk.device.usage_pd_server
+      disk.device.usage_server_pd_1:
+      - abstract_pd_server_5
+      - disk.device.usage_pd_server
+      network.incoming.bytes_pd02_port_0_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - network.incoming.bytes_pd02_port_0_test_nested3Level
+      disk.device.read.bytes.rate_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.device.read.bytes.rate_server_pd_2_test_nested3Level
+      disk.device.write.bytes.rate_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.device.write.bytes.rate_server_pd_1_test_nested3Level
+      disk.capacity_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.capacity_server_pd_2_test_nested3Level
+      disk.write.requests.rate_server_pd_1:
+      - abstract_pd_server_5
+      - disk.write.requests.rate_pd_server
+      disk.write.requests.rate_server_pd_2:
+      - abstract_pd_server_4
+      - disk.write.requests.rate_pd_server
+      disk.root.size_server_pd_1:
+      - abstract_pd_server_5
+      - disk.root.size_pd_server
+      memory_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - memory_server_pd_2_test_nested3Level
+      cpu.delta_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - cpu.delta_server_pd_1
+      instance_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - instance_server_pd_1
+      binding_pd02_port_0_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - binding_pd02_port_0_test_nested3Level
+      disk.device.write.requests.rate_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.device.write.requests.rate_server_pd_2_test_nested3Level
+      network.incoming.packets.rate_ps02_port_0:
+      - abstract_pd_server_4
+      - network.incoming.packets.rate_pd_server_ps02_port
+      network.outgoing.bytes.rate_pd02_port_0_test_nested2Level:
+      - test_nested2Level
+      - network.outgoing.bytes.rate_pd02_port_0
+      disk.device.iops_server_pd_1:
+      - abstract_pd_server_5
+      - disk.device.iops_pd_server
+      network.outgoing.bytes_pd02_port_0_test_nested2Level:
+      - test_nested2Level
+      - network.outgoing.bytes_pd02_port_0
+      network.outgoing.bytes.rate_ps02_port_0:
+      - abstract_pd_server_4
+      - network.outgoing.bytes.rate_pd_server_ps02_port
+      disk.device.read.bytes.rate_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - disk.device.read.bytes.rate_server_pd_1
+      disk.device.iops_server_pd_2:
+      - abstract_pd_server_4
+      - disk.device.iops_pd_server
+      disk.device.capacity_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - disk.device.capacity_server_pd_2
+      disk.iops_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - disk.iops_server_pd_2
+      endpoint_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - endpoint_server_pd_1_test_nested3Level
+      memory_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - memory_server_pd_1_test_nested3Level
+      scalable_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - scalable_server_pd_2_test_nested3Level
+      disk.device.write.requests_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - disk.device.write.requests_server_pd_2
+      disk.device.capacity_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.device.capacity_server_pd_1_test_nested3Level
+      attachment_pd01_port_0_test_nested2Level:
+      - test_nested2Level
+      - attachment_pd01_port_0
+      disk.root.size_server_pd_2:
+      - abstract_pd_server_4
+      - disk.root.size_pd_server
+      disk.usage_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - disk.usage_server_pd_2
+      disk.usage_server_pd_2:
+      - abstract_pd_server_4
+      - disk.usage_pd_server
+      disk.usage_server_pd_1:
+      - abstract_pd_server_5
+      - disk.usage_pd_server
+      disk.write.bytes_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - disk.write.bytes_server_pd_1
+      end_point_packet_external_network_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - end_point_packet_external_network_test_nested_no_compute_test_nested3Level
+      disk.device.latency_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - disk.device.latency_server_pd_1
+      cpu_util_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - cpu_util_server_pd_2_test_nested3Level
+      disk.device.write.requests_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - disk.device.write.requests_server_pd_1
+      network.outgoing.bytes_ps02_port_0:
+      - abstract_pd_server_4
+      - network.outgoing.bytes_pd_server_ps02_port
+      disk.device.read.requests_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - disk.device.read.requests_server_pd_2
+      disk.device.capacity_server_pd_2:
+      - abstract_pd_server_4
+      - disk.device.capacity_pd_server
+      disk.device.capacity_server_pd_1:
+      - abstract_pd_server_5
+      - disk.device.capacity_pd_server
+      attachment_packet_internal_network_nested_1:
+      - packet_internal_network_nested_1
+      - attachment
+      disk.device.read.bytes_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.device.read.bytes_server_pd_1_test_nested3Level
+      feature_pd02_port_0_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - feature_pd02_port_0_test_nested3Level
+      disk.device.allocation_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - disk.device.allocation_server_pd_2
+      network.outpoing.packets_pd02_port_0_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - network.outpoing.packets_pd02_port_0_test_nested3Level
+      disk.iops_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.iops_server_pd_1_test_nested3Level
+      disk.read.bytes_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.read.bytes_server_pd_1_test_nested3Level
+      feature_cmaui_port_1_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - feature_cmaui_port_1_test_nested_no_compute_test_nested3Level
+      network.incoming.bytes.rate_cmaui_port_1_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - network.incoming.bytes.rate_cmaui_port_1_test_nested_no_compute_test_nested3Level
+      disk.write.requests_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - disk.write.requests_server_pd_2
+      disk.device.write.bytes_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.device.write.bytes_server_pd_1_test_nested3Level
+      network.outgoing.bytes.rate_cmaui_port_2_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - network.outgoing.bytes.rate_cmaui_port_2_test_nested_no_compute_test_nested3Level
+      feature_pd01_port_1:
+      - pd01_port_1
+      - feature
+      disk.device.latency_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - disk.device.latency_server_pd_2
+      disk.device.write.requests.rate_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.device.write.requests.rate_server_pd_1_test_nested3Level
+      feature_pd01_port_0:
+      - abstract_pd_server_5
+      - feature_pd_server_pd01_port
+      disk.device.latency_server_pd_2:
+      - abstract_pd_server_4
+      - disk.device.latency_pd_server
+      disk.read.bytes.rate_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.read.bytes.rate_server_pd_1_test_nested3Level
+      vcpus_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - vcpus_server_pd_1_test_nested3Level
+      disk.device.latency_server_pd_1:
+      - abstract_pd_server_5
+      - disk.device.latency_pd_server
+      disk.write.requests.rate_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.write.requests.rate_server_pd_2_test_nested3Level
+      disk.write.requests.rate_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - disk.write.requests.rate_server_pd_1
+      network.incoming.packets_pd01_port_0_test_nested2Level:
+      - test_nested2Level
+      - network.incoming.packets_pd01_port_0
+      disk.device.write.requests.rate_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - disk.device.write.requests.rate_server_pd_2
+      network.outpoing.packets_pd02_port_0_test_nested2Level:
+      - test_nested2Level
+      - network.outpoing.packets_pd02_port_0
+      disk.device.latency_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.device.latency_server_pd_1_test_nested3Level
+      cpu.delta_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - cpu.delta_server_pd_2_test_nested3Level
+      disk.ephemeral.size_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.ephemeral.size_server_pd_2_test_nested3Level
+      disk.device.write.requests_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.device.write.requests_server_pd_1_test_nested3Level
+      network.outgoing.bytes_pd02_port_0_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - network.outgoing.bytes_pd02_port_0_test_nested3Level
+      scalable_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - scalable_server_pd_1_test_nested3Level
+      disk.device.write.bytes.rate_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.device.write.bytes.rate_server_pd_2_test_nested3Level
+      feature_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - feature_test_nested_no_compute_test_nested3Level
+      disk.device.read.requests_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - disk.device.read.requests_server_pd_1
+      disk.write.bytes.rate_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.write.bytes.rate_server_pd_1_test_nested3Level
+      network.incoming.packets.rate_pd02_port_0_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - network.incoming.packets.rate_pd02_port_0_test_nested3Level
+      disk.device.read.requests.rate_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - disk.device.read.requests.rate_server_pd_2
+      link_packet_internal_network_nested_1:
+      - packet_internal_network_nested_1
+      - link
+      disk.device.write.bytes_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - disk.device.write.bytes_server_pd_2
+      disk.allocation_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - disk.allocation_server_pd_1
+      network.outgoing.bytes.rate_pd01_port_0:
+      - abstract_pd_server_5
+      - network.outgoing.bytes.rate_pd_server_pd01_port
+      memory.resident_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - memory.resident_server_pd_1_test_nested3Level
+      network.outgoing.bytes.rate_pd01_port_1:
+      - pd01_port_1
+      - network.outgoing.bytes.rate
+      disk.device.read.bytes_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - disk.device.read.bytes_server_pd_1
+      network.incoming.bytes_ps02_port_0:
+      - abstract_pd_server_4
+      - network.incoming.bytes_pd_server_ps02_port
+      network.incoming.bytes_pd01_port_0:
+      - abstract_pd_server_5
+      - network.incoming.bytes_pd_server_pd01_port
+      network.incoming.bytes_pd01_port_1:
+      - pd01_port_1
+      - network.incoming.bytes
+      disk.device.iops_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.device.iops_server_pd_2_test_nested3Level
+      network.incoming.bytes_pd01_port_0_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - network.incoming.bytes_pd01_port_0_test_nested3Level
+      network.incoming.bytes_cmaui_port_1_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - network.incoming.bytes_cmaui_port_1_test_nested_no_compute_test_nested3Level
+      network.incoming.packets_pd01_port_0_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - network.incoming.packets_pd01_port_0_test_nested3Level
+      disk.read.requests_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.read.requests_server_pd_2_test_nested3Level
+      disk.iops_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - disk.iops_server_pd_1
+      disk.write.requests_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.write.requests_server_pd_1_test_nested3Level
+      network.incoming.packets_pd01_port_1:
+      - pd01_port_1
+      - network.incoming.packets
+      instance_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - instance_server_pd_2
+      network.incoming.packets_pd01_port_0:
+      - abstract_pd_server_5
+      - network.incoming.packets_pd_server_pd01_port
+      attachment_pd02_port_0_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - attachment_pd02_port_0_test_nested3Level
+      cpu_util_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - cpu_util_server_pd_2
+      network.incoming.packets.rate_pd01_port_0_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - network.incoming.packets.rate_pd01_port_0_test_nested3Level
+      network.outpoing.packets_cmaui_port_1_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - network.outpoing.packets_cmaui_port_1_test_nested_no_compute_test_nested3Level
+      disk.device.allocation_server_pd_1:
+      - abstract_pd_server_5
+      - disk.device.allocation_pd_server
+      disk.device.allocation_server_pd_2:
+      - abstract_pd_server_4
+      - disk.device.allocation_pd_server
+      memory.usage_server_pd_2:
+      - abstract_pd_server_4
+      - memory.usage_pd_server
+      disk.usage_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.usage_server_pd_1_test_nested3Level
+      network.incoming.packets.rate_pd02_port_0_test_nested2Level:
+      - test_nested2Level
+      - network.incoming.packets.rate_pd02_port_0
+      feature_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - feature_test_nested3Level
+      network.incoming.bytes_pd02_port_0_test_nested2Level:
+      - test_nested2Level
+      - network.incoming.bytes_pd02_port_0
+      memory.usage_server_pd_1:
+      - abstract_pd_server_5
+      - memory.usage_pd_server
+      os_server_pd_2:
+      - abstract_pd_server_4
+      - os_pd_server
+      disk.latency_server_pd_1:
+      - abstract_pd_server_5
+      - disk.latency_pd_server
+      disk.latency_server_pd_2:
+      - abstract_pd_server_4
+      - disk.latency_pd_server
+      disk.device.usage_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - disk.device.usage_server_pd_2
+      disk.device.allocation_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.device.allocation_server_pd_2_test_nested3Level
+      network.outgoing.bytes.rate_pd02_port_0_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - network.outgoing.bytes.rate_pd02_port_0_test_nested3Level
+      scalable_server_pd_2:
+      - abstract_pd_server_4
+      - scalable_pd_server
+      scalable_server_pd_1:
+      - abstract_pd_server_5
+      - scalable_pd_server
+      disk.latency_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - disk.latency_server_pd_2_test_nested3Level
+      network.incoming.packets_ps02_port_0:
+      - abstract_pd_server_4
+      - network.incoming.packets_pd_server_ps02_port
+      memory.resident_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - memory.resident_server_pd_1
+      disk.device.write.bytes.rate_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - disk.device.write.bytes.rate_server_pd_2
+      disk.device.iops_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - disk.device.iops_server_pd_2
+      memory.usage_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - memory.usage_server_pd_2_test_nested3Level
+      cpu_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - cpu_server_pd_2
+      os_server_pd_1:
+      - abstract_pd_server_5
+      - os_pd_server
+    requirements:
+      binding_pd01_port_1:
+      - pd01_port_1
+      - binding
+      dependency_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - dependency_test_nested_no_compute_test_nested3Level
+      dependency_pd02_port_0_test_nested2Level:
+      - test_nested2Level
+      - dependency_pd02_port_0
+      dependency_pd02_port_0_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - dependency_pd02_port_0_test_nested3Level
+      local_storage_server_pd_1:
+      - abstract_pd_server_5
+      - local_storage_pd_server
+      local_storage_server_pd_2:
+      - abstract_pd_server_4
+      - local_storage_pd_server
+      local_storage_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - local_storage_server_pd_1_test_nested3Level
+      dependency_test_nested2Level:
+      - test_nested2Level
+      - dependency
+      dependency_server_pd_1:
+      - abstract_pd_server_5
+      - dependency_pd_server
+      dependency_server_pd_2:
+      - abstract_pd_server_4
+      - dependency_pd_server
+      dependency_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - dependency_server_pd_2_test_nested3Level
+      dependency_cmaui_port_1_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - dependency_cmaui_port_1_test_nested_no_compute_test_nested3Level
+      link_pd01_port_0_test_nested2Level:
+      - test_nested2Level
+      - link_pd01_port_0
+      local_storage_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - local_storage_server_pd_2
+      dependency_pd01_port_0_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - dependency_pd01_port_0_test_nested3Level
+      link_pd02_port_0_test_nested2Level:
+      - test_nested2Level
+      - link_pd02_port_0
+      binding_cmaui_port_2_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - binding_cmaui_port_2_test_nested_no_compute_test_nested3Level
+      dependency_packet_external_network_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - dependency_packet_external_network_test_nested_no_compute_test_nested3Level
+      local_storage_server_pd_2_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - local_storage_server_pd_2_test_nested3Level
+      link_ps02_port_0:
+      - abstract_pd_server_4
+      - link_pd_server_ps02_port
+      dependency_server_pd_2_test_nested2Level:
+      - test_nested2Level
+      - dependency_server_pd_2
+      local_storage_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - local_storage_server_pd_1
+      dependency_ps02_port_0:
+      - abstract_pd_server_4
+      - dependency_pd_server_ps02_port
+      dependency_pd01_port_0:
+      - abstract_pd_server_5
+      - dependency_pd_server_pd01_port
+      dependency_pd01_port_1:
+      - pd01_port_1
+      - dependency
+      dependency_server_pd_1_test_nested2Level:
+      - test_nested2Level
+      - dependency_server_pd_1
+      dependency_packet_internal_network_nested_1:
+      - packet_internal_network_nested_1
+      - dependency
+      dependency_packet_internal_network_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - dependency_packet_internal_network_test_nested_no_compute_test_nested3Level
+      link_pd01_port_0_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - link_pd01_port_0_test_nested3Level
+      dependency_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - dependency_test_nested3Level
+      link_pd02_port_0_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - link_pd02_port_0_test_nested3Level
+      dependency_cmaui_port_2_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - dependency_cmaui_port_2_test_nested_no_compute_test_nested3Level
+      binding_cmaui_port_1_test_nested_no_compute_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - binding_cmaui_port_1_test_nested_no_compute_test_nested3Level
+      dependency_pd01_port_0_test_nested2Level:
+      - test_nested2Level
+      - dependency_pd01_port_0
+      dependency_server_pd_1_test_nested3Level_test_nested2Level:
+      - test_nested2Level
+      - dependency_server_pd_1_test_nested3Level
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/out/nested2ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/out/nested2ServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..e7e01e3
--- /dev/null
@@ -0,0 +1,948 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: nested2
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+topology_template:
+  inputs:
+    pd_flavor_name:
+      hidden: false
+      immutable: false
+      type: string
+      description: Flavor for CMAUI server
+    p1:
+      hidden: false
+      immutable: false
+      type: string
+      description: UID of OAM network
+    p2:
+      hidden: false
+      immutable: false
+      type: string
+      description: UID of OAM network
+    availabilityzone_name:
+      label: availabilityzone name
+      hidden: false
+      immutable: false
+      type: string
+      description: availabilityzone name
+    security_group_name:
+      hidden: false
+      immutable: false
+      type: list
+      description: CMAUI1, CMAUI2 server names
+      entry_schema:
+        type: string
+    pd_image_name:
+      hidden: false
+      immutable: false
+      type: string
+      description: Image for CMAUI server
+    pd_server_names:
+      hidden: false
+      immutable: false
+      type: list
+      description: CMAUI1, CMAUI2 server names
+      entry_schema:
+        type: string
+    net:
+      hidden: false
+      immutable: false
+      type: string
+    oam_net_name:
+      hidden: false
+      immutable: false
+      type: string
+  node_templates:
+    test_nested3Level:
+      type: org.openecomp.resource.abstract.nodes.heat.nested3
+      directives:
+      - substitutable
+      properties:
+        p1:
+          get_input: p1
+        service_template_filter:
+          substitute_service_template: nested3ServiceTemplate.yaml
+    abstract_pd_server_2:
+      type: org.openecomp.resource.abstract.nodes.pd_server_2
+      directives:
+      - substitutable
+      properties:
+        compute_pd_server_availability_zone:
+        - get_input: availabilityzone_name
+        compute_pd_server_name:
+        - get_input:
+          - pd_server_names
+          - 1
+        port_pd02_port_mac_requirements:
+          mac_count_required:
+            is_required: false
+        vm_flavor_name:
+          get_input: pd_flavor_name
+        port_pd02_port_network_role_tag: oam
+        vm_image_name:
+          get_input: pd_image_name
+        port_pd02_port_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        port_pd02_port_network:
+        - get_input: oam_net_name
+        compute_pd_server_user_data_format:
+        - RAW
+        service_template_filter:
+          substitute_service_template: Nested_pd_server_2ServiceTemplate.yaml
+          count: 1
+        index_value:
+          get_property:
+          - SELF
+          - service_template_filter
+          - index_value
+    abstract_pd_server_3:
+      type: org.openecomp.resource.abstract.nodes.pd_server_3
+      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
+        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_server_3ServiceTemplate.yaml
+          count: 1
+        index_value:
+          get_property:
+          - SELF
+          - service_template_filter
+          - index_value
+  groups:
+    nested2_group:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/nested2.yml
+        description: nested2
+      members:
+      - test_nested3Level
+      - abstract_pd_server_2
+      - abstract_pd_server_3
+  substitution_mappings:
+    node_type: org.openecomp.resource.abstract.nodes.heat.nested2
+    capabilities:
+      disk.read.bytes.rate_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - disk.read.bytes.rate_server_pd_2
+      disk.root.size_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - disk.root.size_server_pd_2
+      disk.iops_server_pd_1:
+      - abstract_pd_server_3
+      - disk.iops_pd_server
+      disk.iops_server_pd_2:
+      - abstract_pd_server_2
+      - disk.iops_pd_server
+      binding_pd01_port_0_test_nested3Level:
+      - test_nested3Level
+      - binding_pd01_port_0
+      disk.write.bytes.rate_server_pd_2:
+      - abstract_pd_server_2
+      - disk.write.bytes.rate_pd_server
+      network.outpoing.packets_pd01_port_0_test_nested3Level:
+      - test_nested3Level
+      - network.outpoing.packets_pd01_port_0
+      disk.write.bytes.rate_server_pd_1:
+      - abstract_pd_server_3
+      - disk.write.bytes.rate_pd_server
+      disk.device.capacity_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - disk.device.capacity_server_pd_2
+      scalable_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - scalable_server_pd_2
+      network.incoming.packets.rate_pd02_port_0_test_nested3Level:
+      - test_nested3Level
+      - network.incoming.packets.rate_pd02_port_0
+      network.outgoing.bytes_pd02_port_0:
+      - abstract_pd_server_2
+      - network.outgoing.bytes_pd_server_pd02_port
+      attachment_packet_external_network_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - attachment_packet_external_network_test_nested_no_compute
+      scalable_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - scalable_server_pd_1
+      disk.read.bytes.rate_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - disk.read.bytes.rate_server_pd_1
+      memory.resident_server_pd_1:
+      - abstract_pd_server_3
+      - memory.resident_pd_server
+      memory.resident_server_pd_2:
+      - abstract_pd_server_2
+      - memory.resident_pd_server
+      network.incoming.bytes_pd02_port_0:
+      - abstract_pd_server_2
+      - network.incoming.bytes_pd_server_pd02_port
+      network.outgoing.bytes_cmaui_port_1_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - network.outgoing.bytes_cmaui_port_1_test_nested_no_compute
+      disk.ephemeral.size_server_pd_2:
+      - abstract_pd_server_2
+      - disk.ephemeral.size_pd_server
+      disk.ephemeral.size_server_pd_1:
+      - abstract_pd_server_3
+      - disk.ephemeral.size_pd_server
+      binding_cmaui_port_2_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - binding_cmaui_port_2_test_nested_no_compute
+      binding_pd01_port_0:
+      - abstract_pd_server_3
+      - binding_pd_server_pd01_port
+      network.outgoing.bytes.rate_pd02_port_0_test_nested3Level:
+      - test_nested3Level
+      - network.outgoing.bytes.rate_pd02_port_0
+      disk.device.read.bytes_server_pd_1:
+      - abstract_pd_server_3
+      - disk.device.read.bytes_pd_server
+      disk.device.read.bytes_server_pd_2:
+      - abstract_pd_server_2
+      - disk.device.read.bytes_pd_server
+      feature_pd02_port_0_test_nested3Level:
+      - test_nested3Level
+      - feature_pd02_port_0
+      binding_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - binding_server_pd_1
+      network.outgoing.bytes_cmaui_port_2_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - network.outgoing.bytes_cmaui_port_2_test_nested_no_compute
+      network.outgoing.packets.rate_pd01_port_0:
+      - abstract_pd_server_3
+      - network.outgoing.packets.rate_pd_server_pd01_port
+      network.incoming.packets_cmaui_port_2_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - network.incoming.packets_cmaui_port_2_test_nested_no_compute
+      instance_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - instance_server_pd_2
+      memory.resident_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - memory.resident_server_pd_1
+      link_packet_external_network_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - link_packet_external_network_test_nested_no_compute
+      cpu.delta_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - cpu.delta_server_pd_1
+      network.incoming.packets.rate_cmaui_port_1_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - network.incoming.packets.rate_cmaui_port_1_test_nested_no_compute
+      memory_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - memory_server_pd_1
+      memory.usage_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - memory.usage_server_pd_2
+      network.outgoing.packets.rate_cmaui_port_1_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - network.outgoing.packets.rate_cmaui_port_1_test_nested_no_compute
+      disk.usage_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - disk.usage_server_pd_1
+      disk.iops_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - disk.iops_server_pd_1
+      disk.device.allocation_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - disk.device.allocation_server_pd_2
+      attachment_cmaui_port_2_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - attachment_cmaui_port_2_test_nested_no_compute
+      disk.write.requests.rate_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - disk.write.requests.rate_server_pd_2
+      disk.read.bytes.rate_server_pd_2:
+      - abstract_pd_server_2
+      - disk.read.bytes.rate_pd_server
+      disk.read.bytes.rate_server_pd_1:
+      - abstract_pd_server_3
+      - disk.read.bytes.rate_pd_server
+      cpu_server_pd_2:
+      - abstract_pd_server_2
+      - cpu_pd_server
+      cpu_server_pd_1:
+      - abstract_pd_server_3
+      - cpu_pd_server
+      attachment_pd01_port_0:
+      - abstract_pd_server_3
+      - attachment_pd_server_pd01_port
+      disk.device.capacity_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - disk.device.capacity_server_pd_1
+      endpoint_server_pd_2:
+      - abstract_pd_server_2
+      - endpoint_pd_server
+      end_point_packet_external_network_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - end_point_packet_external_network_test_nested_no_compute
+      endpoint_server_pd_1:
+      - abstract_pd_server_3
+      - endpoint_pd_server
+      network.incoming.packets_cmaui_port_1_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - network.incoming.packets_cmaui_port_1_test_nested_no_compute
+      vcpus_server_pd_1:
+      - abstract_pd_server_3
+      - vcpus_pd_server
+      vcpus_server_pd_2:
+      - abstract_pd_server_2
+      - vcpus_pd_server
+      attachment_pd01_port_0_test_nested3Level:
+      - test_nested3Level
+      - attachment_pd01_port_0
+      feature_cmaui_port_1_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - feature_cmaui_port_1_test_nested_no_compute
+      disk.write.requests_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - disk.write.requests_server_pd_2
+      network.incoming.bytes_pd01_port_0_test_nested3Level:
+      - test_nested3Level
+      - network.incoming.bytes_pd01_port_0
+      disk.device.write.bytes.rate_server_pd_1:
+      - abstract_pd_server_3
+      - disk.device.write.bytes.rate_pd_server
+      disk.device.write.bytes.rate_server_pd_2:
+      - abstract_pd_server_2
+      - disk.device.write.bytes.rate_pd_server
+      link_packet_internal_network_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - link_packet_internal_network_test_nested_no_compute
+      disk.device.usage_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - disk.device.usage_server_pd_1
+      disk.device.write.requests.rate_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - disk.device.write.requests.rate_server_pd_2
+      network.incoming.bytes.rate_pd01_port_0:
+      - abstract_pd_server_3
+      - network.incoming.bytes.rate_pd_server_pd01_port
+      disk.device.write.requests.rate_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - disk.device.write.requests.rate_server_pd_1
+      disk.write.bytes_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - disk.write.bytes_server_pd_2
+      disk.device.read.bytes.rate_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - disk.device.read.bytes.rate_server_pd_1
+      disk.device.read.requests.rate_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - disk.device.read.requests.rate_server_pd_1
+      network.incoming.bytes.rate_pd02_port_0_test_nested3Level:
+      - test_nested3Level
+      - network.incoming.bytes.rate_pd02_port_0
+      disk.device.write.bytes_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - disk.device.write.bytes_server_pd_1
+      instance_server_pd_1:
+      - abstract_pd_server_3
+      - instance_pd_server
+      disk.device.read.requests.rate_server_pd_1:
+      - abstract_pd_server_3
+      - disk.device.read.requests.rate_pd_server
+      disk.device.latency_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - disk.device.latency_server_pd_1
+      instance_server_pd_2:
+      - abstract_pd_server_2
+      - instance_pd_server
+      disk.device.read.requests.rate_server_pd_2:
+      - abstract_pd_server_2
+      - disk.device.read.requests.rate_pd_server
+      disk.write.requests_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - disk.write.requests_server_pd_1
+      binding_cmaui_port_1_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - binding_cmaui_port_1_test_nested_no_compute
+      attachment_pd02_port_0:
+      - abstract_pd_server_2
+      - attachment_pd_server_pd02_port
+      cpu_util_server_pd_1:
+      - abstract_pd_server_3
+      - cpu_util_pd_server
+      host_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - host_server_pd_2
+      cpu_util_server_pd_2:
+      - abstract_pd_server_2
+      - cpu_util_pd_server
+      disk.device.read.bytes.rate_server_pd_2:
+      - abstract_pd_server_2
+      - disk.device.read.bytes.rate_pd_server
+      disk.device.allocation_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - disk.device.allocation_server_pd_1
+      disk.allocation_server_pd_2:
+      - abstract_pd_server_2
+      - disk.allocation_pd_server
+      disk.device.write.bytes_server_pd_1:
+      - abstract_pd_server_3
+      - disk.device.write.bytes_pd_server
+      disk.device.write.bytes_server_pd_2:
+      - abstract_pd_server_2
+      - disk.device.write.bytes_pd_server
+      disk.allocation_server_pd_1:
+      - abstract_pd_server_3
+      - disk.allocation_pd_server
+      network.incoming.packets.rate_pd01_port_0:
+      - abstract_pd_server_3
+      - network.incoming.packets.rate_pd_server_pd01_port
+      disk.capacity_server_pd_2:
+      - abstract_pd_server_2
+      - disk.capacity_pd_server
+      disk.capacity_server_pd_1:
+      - abstract_pd_server_3
+      - disk.capacity_pd_server
+      disk.device.read.bytes.rate_server_pd_1:
+      - abstract_pd_server_3
+      - disk.device.read.bytes.rate_pd_server
+      cpu.delta_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - cpu.delta_server_pd_2
+      binding_pd02_port_0_test_nested3Level:
+      - test_nested3Level
+      - binding_pd02_port_0
+      feature_packet_external_network_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - feature_packet_external_network_test_nested_no_compute
+      network.outpoing.packets_pd01_port_0:
+      - abstract_pd_server_3
+      - network.outpoing.packets_pd_server_pd01_port
+      binding_server_pd_2:
+      - abstract_pd_server_2
+      - binding_pd_server
+      disk.device.write.requests_server_pd_2:
+      - abstract_pd_server_2
+      - disk.device.write.requests_pd_server
+      binding_server_pd_1:
+      - abstract_pd_server_3
+      - binding_pd_server
+      disk.device.write.requests_server_pd_1:
+      - abstract_pd_server_3
+      - disk.device.write.requests_pd_server
+      disk.usage_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - disk.usage_server_pd_2
+      disk.capacity_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - disk.capacity_server_pd_2
+      disk.device.write.requests.rate_server_pd_2:
+      - abstract_pd_server_2
+      - disk.device.write.requests.rate_pd_server
+      network.outgoing.packets.rate_pd02_port_0_test_nested3Level:
+      - test_nested3Level
+      - network.outgoing.packets.rate_pd02_port_0
+      disk.read.bytes_server_pd_1:
+      - abstract_pd_server_3
+      - disk.read.bytes_pd_server
+      disk.device.read.requests_server_pd_1:
+      - abstract_pd_server_3
+      - disk.device.read.requests_pd_server
+      cpu_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - cpu_server_pd_1
+      disk.device.read.requests_server_pd_2:
+      - abstract_pd_server_2
+      - disk.device.read.requests_pd_server
+      disk.read.bytes_server_pd_2:
+      - abstract_pd_server_2
+      - disk.read.bytes_pd_server
+      disk.device.write.requests.rate_server_pd_1:
+      - abstract_pd_server_3
+      - disk.device.write.requests.rate_pd_server
+      feature_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - feature_server_pd_1
+      memory_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - memory_server_pd_2
+      vcpus_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - vcpus_server_pd_1
+      disk.write.bytes.rate_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - disk.write.bytes.rate_server_pd_2
+      instance_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - instance_server_pd_1
+      network.outgoing.bytes_pd01_port_0_test_nested3Level:
+      - test_nested3Level
+      - network.outgoing.bytes_pd01_port_0
+      network.incoming.bytes.rate_cmaui_port_1_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - network.incoming.bytes.rate_cmaui_port_1_test_nested_no_compute
+      feature_pd01_port_0_test_nested3Level:
+      - test_nested3Level
+      - feature_pd01_port_0
+      disk.ephemeral.size_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - disk.ephemeral.size_server_pd_1
+      vcpus_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - vcpus_server_pd_2
+      os_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - os_server_pd_1
+      network.outgoing.bytes.rate_cmaui_port_2_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - network.outgoing.bytes.rate_cmaui_port_2_test_nested_no_compute
+      disk.device.write.bytes.rate_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - disk.device.write.bytes.rate_server_pd_1
+      cpu.delta_server_pd_2:
+      - abstract_pd_server_2
+      - cpu.delta_pd_server
+      feature_server_pd_2:
+      - abstract_pd_server_2
+      - feature_pd_server
+      feature_server_pd_1:
+      - abstract_pd_server_3
+      - feature_pd_server
+      cpu.delta_server_pd_1:
+      - abstract_pd_server_3
+      - cpu.delta_pd_server
+      disk.device.iops_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - disk.device.iops_server_pd_2
+      disk.device.write.bytes.rate_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - disk.device.write.bytes.rate_server_pd_2
+      host_server_pd_1:
+      - abstract_pd_server_3
+      - host_pd_server
+      disk.device.iops_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - disk.device.iops_server_pd_1
+      disk.ephemeral.size_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - disk.ephemeral.size_server_pd_2
+      host_server_pd_2:
+      - abstract_pd_server_2
+      - host_pd_server
+      network.outgoing.bytes_pd01_port_0:
+      - abstract_pd_server_3
+      - network.outgoing.bytes_pd_server_pd01_port
+      os_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - os_server_pd_2
+      disk.read.bytes_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - disk.read.bytes_server_pd_1
+      memory_server_pd_2:
+      - abstract_pd_server_2
+      - memory_pd_server
+      memory_server_pd_1:
+      - abstract_pd_server_3
+      - memory_pd_server
+      feature_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - feature_test_nested_no_compute
+      network.outpoing.packets_cmaui_port_2_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - network.outpoing.packets_cmaui_port_2_test_nested_no_compute
+      network.incoming.packets_pd02_port_0:
+      - abstract_pd_server_2
+      - network.incoming.packets_pd_server_pd02_port
+      disk.read.requests_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - disk.read.requests_server_pd_2
+      network.outpoing.packets_cmaui_port_1_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - network.outpoing.packets_cmaui_port_1_test_nested_no_compute
+      cpu_util_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - cpu_util_server_pd_1
+      disk.read.requests_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - disk.read.requests_server_pd_1
+      disk.read.bytes_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - disk.read.bytes_server_pd_2
+      disk.write.requests_server_pd_1:
+      - abstract_pd_server_3
+      - disk.write.requests_pd_server
+      endpoint_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - endpoint_server_pd_2
+      disk.write.requests_server_pd_2:
+      - abstract_pd_server_2
+      - disk.write.requests_pd_server
+      disk.write.bytes_server_pd_1:
+      - abstract_pd_server_3
+      - disk.write.bytes_pd_server
+      disk.write.bytes_server_pd_2:
+      - abstract_pd_server_2
+      - disk.write.bytes_pd_server
+      disk.read.requests_server_pd_1:
+      - abstract_pd_server_3
+      - disk.read.requests_pd_server
+      network.outgoing.bytes.rate_pd02_port_0:
+      - abstract_pd_server_2
+      - network.outgoing.bytes.rate_pd_server_pd02_port
+      disk.read.requests_server_pd_2:
+      - abstract_pd_server_2
+      - disk.read.requests_pd_server
+      disk.device.usage_server_pd_2:
+      - abstract_pd_server_2
+      - disk.device.usage_pd_server
+      disk.device.usage_server_pd_1:
+      - abstract_pd_server_3
+      - disk.device.usage_pd_server
+      network.outgoing.bytes.rate_cmaui_port_1_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - network.outgoing.bytes.rate_cmaui_port_1_test_nested_no_compute
+      network.incoming.packets.rate_pd02_port_0:
+      - abstract_pd_server_2
+      - network.incoming.packets.rate_pd_server_pd02_port
+      network.incoming.bytes_pd02_port_0_test_nested3Level:
+      - test_nested3Level
+      - network.incoming.bytes_pd02_port_0
+      network.incoming.packets.rate_pd01_port_0_test_nested3Level:
+      - test_nested3Level
+      - network.incoming.packets.rate_pd01_port_0
+      disk.device.read.requests_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - disk.device.read.requests_server_pd_1
+      disk.write.requests.rate_server_pd_1:
+      - abstract_pd_server_3
+      - disk.write.requests.rate_pd_server
+      disk.write.requests.rate_server_pd_2:
+      - abstract_pd_server_2
+      - disk.write.requests.rate_pd_server
+      disk.root.size_server_pd_1:
+      - abstract_pd_server_3
+      - disk.root.size_pd_server
+      attachment_packet_internal_network_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - attachment_packet_internal_network_test_nested_no_compute
+      disk.allocation_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - disk.allocation_server_pd_1
+      host_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - host_server_pd_1
+      disk.device.iops_server_pd_1:
+      - abstract_pd_server_3
+      - disk.device.iops_pd_server
+      disk.device.iops_server_pd_2:
+      - abstract_pd_server_2
+      - disk.device.iops_pd_server
+      network.incoming.packets_pd02_port_0_test_nested3Level:
+      - test_nested3Level
+      - network.incoming.packets_pd02_port_0
+      disk.write.bytes.rate_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - disk.write.bytes.rate_server_pd_1
+      feature_pd02_port_0:
+      - abstract_pd_server_2
+      - feature_pd_server_pd02_port
+      network.incoming.packets_pd01_port_0_test_nested3Level:
+      - test_nested3Level
+      - network.incoming.packets_pd01_port_0
+      disk.root.size_server_pd_2:
+      - abstract_pd_server_2
+      - disk.root.size_pd_server
+      disk.latency_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - disk.latency_server_pd_2
+      disk.usage_server_pd_2:
+      - abstract_pd_server_2
+      - disk.usage_pd_server
+      disk.usage_server_pd_1:
+      - abstract_pd_server_3
+      - disk.usage_pd_server
+      disk.device.write.requests_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - disk.device.write.requests_server_pd_1
+      feature_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - feature_server_pd_2
+      disk.device.read.bytes_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - disk.device.read.bytes_server_pd_1
+      network.incoming.bytes.rate_cmaui_port_2_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - network.incoming.bytes.rate_cmaui_port_2_test_nested_no_compute
+      disk.device.latency_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - disk.device.latency_server_pd_2
+      network.outgoing.bytes.rate_pd01_port_0_test_nested3Level:
+      - test_nested3Level
+      - network.outgoing.bytes.rate_pd01_port_0
+      disk.device.write.requests_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - disk.device.write.requests_server_pd_2
+      disk.device.capacity_server_pd_2:
+      - abstract_pd_server_2
+      - disk.device.capacity_pd_server
+      disk.device.capacity_server_pd_1:
+      - abstract_pd_server_3
+      - disk.device.capacity_pd_server
+      cpu_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - cpu_server_pd_2
+      disk.device.usage_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - disk.device.usage_server_pd_2
+      network.incoming.bytes_cmaui_port_1_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - network.incoming.bytes_cmaui_port_1_test_nested_no_compute
+      network.incoming.bytes.rate_pd01_port_0_test_nested3Level:
+      - test_nested3Level
+      - network.incoming.bytes.rate_pd01_port_0
+      disk.device.write.bytes_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - disk.device.write.bytes_server_pd_2
+      disk.capacity_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - disk.capacity_server_pd_1
+      feature_pd01_port_0:
+      - abstract_pd_server_3
+      - feature_pd_server_pd01_port
+      disk.device.latency_server_pd_2:
+      - abstract_pd_server_2
+      - disk.device.latency_pd_server
+      disk.device.latency_server_pd_1:
+      - abstract_pd_server_3
+      - disk.device.latency_pd_server
+      feature_packet_internal_network_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - feature_packet_internal_network_test_nested_no_compute
+      network.incoming.bytes_cmaui_port_2_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - network.incoming.bytes_cmaui_port_2_test_nested_no_compute
+      memory.resident_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - memory.resident_server_pd_2
+      disk.device.read.requests.rate_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - disk.device.read.requests.rate_server_pd_2
+      network.outgoing.bytes_pd02_port_0_test_nested3Level:
+      - test_nested3Level
+      - network.outgoing.bytes_pd02_port_0
+      disk.write.bytes_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - disk.write.bytes_server_pd_1
+      endpoint_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - endpoint_server_pd_1
+      network.outgoing.bytes.rate_pd01_port_0:
+      - abstract_pd_server_3
+      - network.outgoing.bytes.rate_pd_server_pd01_port
+      disk.allocation_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - disk.allocation_server_pd_2
+      network.outpoing.packets_pd02_port_0_test_nested3Level:
+      - test_nested3Level
+      - network.outpoing.packets_pd02_port_0
+      feature_cmaui_port_2_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - feature_cmaui_port_2_test_nested_no_compute
+      binding_pd02_port_0:
+      - abstract_pd_server_2
+      - binding_pd_server_pd02_port
+      disk.device.read.bytes_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - disk.device.read.bytes_server_pd_2
+      feature_test_nested3Level:
+      - test_nested3Level
+      - feature
+      disk.write.requests.rate_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - disk.write.requests.rate_server_pd_1
+      disk.latency_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - disk.latency_server_pd_1
+      network.incoming.bytes_pd01_port_0:
+      - abstract_pd_server_3
+      - network.incoming.bytes_pd_server_pd01_port
+      cpu_util_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - cpu_util_server_pd_2
+      network.outgoing.packets.rate_pd02_port_0:
+      - abstract_pd_server_2
+      - network.outgoing.packets.rate_pd_server_pd02_port
+      network.outpoing.packets_pd02_port_0:
+      - abstract_pd_server_2
+      - network.outpoing.packets_pd_server_pd02_port
+      disk.iops_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - disk.iops_server_pd_2
+      network.incoming.packets_pd01_port_0:
+      - abstract_pd_server_3
+      - network.incoming.packets_pd_server_pd01_port
+      attachment_pd02_port_0_test_nested3Level:
+      - test_nested3Level
+      - attachment_pd02_port_0
+      disk.device.read.bytes.rate_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - disk.device.read.bytes.rate_server_pd_2
+      disk.device.allocation_server_pd_1:
+      - abstract_pd_server_3
+      - disk.device.allocation_pd_server
+      network.outgoing.packets.rate_cmaui_port_2_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - network.outgoing.packets.rate_cmaui_port_2_test_nested_no_compute
+      binding_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - binding_server_pd_2
+      disk.device.read.requests_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - disk.device.read.requests_server_pd_2
+      disk.device.allocation_server_pd_2:
+      - abstract_pd_server_2
+      - disk.device.allocation_pd_server
+      network.incoming.packets.rate_cmaui_port_2_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - network.incoming.packets.rate_cmaui_port_2_test_nested_no_compute
+      memory.usage_server_pd_2:
+      - abstract_pd_server_2
+      - memory.usage_pd_server
+      network.outgoing.packets.rate_pd01_port_0_test_nested3Level:
+      - test_nested3Level
+      - network.outgoing.packets.rate_pd01_port_0
+      end_point_packet_internal_network_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - end_point_packet_internal_network_test_nested_no_compute
+      memory.usage_server_pd_1:
+      - abstract_pd_server_3
+      - memory.usage_pd_server
+      network.incoming.bytes.rate_pd02_port_0:
+      - abstract_pd_server_2
+      - network.incoming.bytes.rate_pd_server_pd02_port
+      attachment_cmaui_port_1_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - attachment_cmaui_port_1_test_nested_no_compute
+      os_server_pd_2:
+      - abstract_pd_server_2
+      - os_pd_server
+      memory.usage_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - memory.usage_server_pd_1
+      disk.latency_server_pd_1:
+      - abstract_pd_server_3
+      - disk.latency_pd_server
+      disk.latency_server_pd_2:
+      - abstract_pd_server_2
+      - disk.latency_pd_server
+      scalable_server_pd_2:
+      - abstract_pd_server_2
+      - scalable_pd_server
+      scalable_server_pd_1:
+      - abstract_pd_server_3
+      - scalable_pd_server
+      disk.root.size_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - disk.root.size_server_pd_1
+      os_server_pd_1:
+      - abstract_pd_server_3
+      - os_pd_server
+    requirements:
+      link_pd01_port_0:
+      - abstract_pd_server_3
+      - link_pd_server_pd01_port
+      link_pd02_port_0:
+      - abstract_pd_server_2
+      - link_pd_server_pd02_port
+      link_pd02_port_0_test_nested3Level:
+      - test_nested3Level
+      - link_pd02_port_0
+      local_storage_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - local_storage_server_pd_2
+      local_storage_server_pd_1:
+      - abstract_pd_server_3
+      - local_storage_pd_server
+      local_storage_server_pd_2:
+      - abstract_pd_server_2
+      - local_storage_pd_server
+      dependency_pd01_port_0_test_nested3Level:
+      - test_nested3Level
+      - dependency_pd01_port_0
+      dependency_pd01_port_0:
+      - abstract_pd_server_3
+      - dependency_pd_server_pd01_port
+      dependency_server_pd_1:
+      - abstract_pd_server_3
+      - dependency_pd_server
+      dependency_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - dependency_server_pd_1
+      dependency_server_pd_2:
+      - abstract_pd_server_2
+      - dependency_pd_server
+      dependency_pd02_port_0:
+      - abstract_pd_server_2
+      - dependency_pd_server_pd02_port
+      dependency_server_pd_2_test_nested3Level:
+      - test_nested3Level
+      - dependency_server_pd_2
+      dependency_pd02_port_0_test_nested3Level:
+      - test_nested3Level
+      - dependency_pd02_port_0
+      dependency_cmaui_port_2_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - dependency_cmaui_port_2_test_nested_no_compute
+      dependency_packet_external_network_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - dependency_packet_external_network_test_nested_no_compute
+      local_storage_server_pd_1_test_nested3Level:
+      - test_nested3Level
+      - local_storage_server_pd_1
+      binding_cmaui_port_2_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - binding_cmaui_port_2_test_nested_no_compute
+      dependency_test_nested3Level:
+      - test_nested3Level
+      - dependency
+      link_pd01_port_0_test_nested3Level:
+      - test_nested3Level
+      - link_pd01_port_0
+      dependency_packet_internal_network_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - dependency_packet_internal_network_test_nested_no_compute
+      dependency_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - dependency_test_nested_no_compute
+      dependency_cmaui_port_1_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - dependency_cmaui_port_1_test_nested_no_compute
+      binding_cmaui_port_1_test_nested_no_compute_test_nested3Level:
+      - test_nested3Level
+      - binding_cmaui_port_1_test_nested_no_compute
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/out/nested3ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/out/nested3ServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..90f1067
--- /dev/null
@@ -0,0 +1,604 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: nested3
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+topology_template:
+  inputs:
+    pd_flavor_name:
+      hidden: false
+      immutable: false
+      type: string
+      description: Flavor for CMAUI server
+    p1:
+      hidden: false
+      immutable: false
+      type: string
+      description: UID of OAM network
+    p2:
+      hidden: false
+      immutable: false
+      type: string
+      description: UID of OAM network
+    availabilityzone_name:
+      label: availabilityzone name
+      hidden: false
+      immutable: false
+      type: string
+      description: availabilityzone name
+    security_group_name:
+      hidden: false
+      immutable: false
+      type: list
+      description: CMAUI1, CMAUI2 server names
+      entry_schema:
+        type: string
+    pd_image_name:
+      hidden: false
+      immutable: false
+      type: string
+      description: Image for CMAUI server
+    pd_server_names:
+      hidden: false
+      immutable: false
+      type: list
+      description: CMAUI1, CMAUI2 server names
+      entry_schema:
+        type: string
+    net:
+      hidden: false
+      immutable: false
+      type: string
+    oam_net_name:
+      hidden: false
+      immutable: false
+      type: string
+  node_templates:
+    abstract_pd_server:
+      type: org.openecomp.resource.abstract.nodes.pd_server
+      directives:
+      - substitutable
+      properties:
+        compute_pd_server_availability_zone:
+        - get_input: availabilityzone_name
+        compute_pd_server_name:
+        - get_input:
+          - pd_server_names
+          - 1
+        port_pd02_port_mac_requirements:
+          mac_count_required:
+            is_required: false
+        vm_flavor_name:
+          get_input: pd_flavor_name
+        port_pd02_port_network_role_tag: oam
+        vm_image_name:
+          get_input: pd_image_name
+        port_pd02_port_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        port_pd02_port_network:
+        - get_input: oam_net_name
+        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
+    test_nested_no_compute:
+      type: org.openecomp.resource.abstract.nodes.heat.nested-no-compute
+      directives:
+      - substitutable
+      properties:
+        service_template_filter:
+          substitute_service_template: nested-no-computeServiceTemplate.yaml
+    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
+        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_server_1ServiceTemplate.yaml
+          count: 1
+        index_value:
+          get_property:
+          - SELF
+          - service_template_filter
+          - index_value
+  groups:
+    nested3_group:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/nested3.yml
+        description: nested2
+      members:
+      - test_nested_no_compute
+      - abstract_pd_server
+      - abstract_pd_server_1
+  substitution_mappings:
+    node_type: org.openecomp.resource.abstract.nodes.heat.nested3
+    capabilities:
+      disk.iops_server_pd_1:
+      - abstract_pd_server_1
+      - disk.iops_pd_server
+      disk.iops_server_pd_2:
+      - abstract_pd_server
+      - disk.iops_pd_server
+      disk.write.bytes.rate_server_pd_2:
+      - abstract_pd_server
+      - disk.write.bytes.rate_pd_server
+      disk.write.bytes.rate_server_pd_1:
+      - abstract_pd_server_1
+      - disk.write.bytes.rate_pd_server
+      cpu.delta_server_pd_2:
+      - abstract_pd_server
+      - cpu.delta_pd_server
+      feature_server_pd_2:
+      - abstract_pd_server
+      - feature_pd_server
+      feature_server_pd_1:
+      - abstract_pd_server_1
+      - feature_pd_server
+      cpu.delta_server_pd_1:
+      - abstract_pd_server_1
+      - cpu.delta_pd_server
+      attachment_cmaui_port_2_test_nested_no_compute:
+      - test_nested_no_compute
+      - attachment_cmaui_port_2
+      host_server_pd_1:
+      - abstract_pd_server_1
+      - host_pd_server
+      network.outgoing.bytes_pd02_port_0:
+      - abstract_pd_server
+      - network.outgoing.bytes_pd_server_pd02_port
+      host_server_pd_2:
+      - abstract_pd_server
+      - host_pd_server
+      end_point_packet_external_network_test_nested_no_compute:
+      - test_nested_no_compute
+      - end_point_packet_external_network
+      network.outgoing.bytes_pd01_port_0:
+      - abstract_pd_server_1
+      - network.outgoing.bytes_pd_server_pd01_port
+      binding_cmaui_port_1_test_nested_no_compute:
+      - test_nested_no_compute
+      - binding_cmaui_port_1
+      memory_server_pd_2:
+      - abstract_pd_server
+      - memory_pd_server
+      memory_server_pd_1:
+      - abstract_pd_server_1
+      - memory_pd_server
+      network.incoming.packets_pd02_port_0:
+      - abstract_pd_server
+      - network.incoming.packets_pd_server_pd02_port
+      network.incoming.packets.rate_cmaui_port_1_test_nested_no_compute:
+      - test_nested_no_compute
+      - network.incoming.packets.rate_cmaui_port_1
+      network.incoming.bytes_cmaui_port_1_test_nested_no_compute:
+      - test_nested_no_compute
+      - network.incoming.bytes_cmaui_port_1
+      attachment_packet_external_network_test_nested_no_compute:
+      - test_nested_no_compute
+      - attachment_packet_external_network
+      memory.resident_server_pd_1:
+      - abstract_pd_server_1
+      - memory.resident_pd_server
+      memory.resident_server_pd_2:
+      - abstract_pd_server
+      - memory.resident_pd_server
+      network.incoming.bytes_pd02_port_0:
+      - abstract_pd_server
+      - network.incoming.bytes_pd_server_pd02_port
+      disk.write.requests_server_pd_1:
+      - abstract_pd_server_1
+      - disk.write.requests_pd_server
+      network.incoming.packets.rate_cmaui_port_2_test_nested_no_compute:
+      - test_nested_no_compute
+      - network.incoming.packets.rate_cmaui_port_2
+      disk.ephemeral.size_server_pd_2:
+      - abstract_pd_server
+      - disk.ephemeral.size_pd_server
+      disk.ephemeral.size_server_pd_1:
+      - abstract_pd_server_1
+      - disk.ephemeral.size_pd_server
+      disk.write.requests_server_pd_2:
+      - abstract_pd_server
+      - disk.write.requests_pd_server
+      disk.write.bytes_server_pd_1:
+      - abstract_pd_server_1
+      - disk.write.bytes_pd_server
+      disk.write.bytes_server_pd_2:
+      - abstract_pd_server
+      - disk.write.bytes_pd_server
+      network.outgoing.bytes_cmaui_port_2_test_nested_no_compute:
+      - test_nested_no_compute
+      - network.outgoing.bytes_cmaui_port_2
+      binding_cmaui_port_2_test_nested_no_compute:
+      - test_nested_no_compute
+      - binding_cmaui_port_2
+      disk.read.requests_server_pd_1:
+      - abstract_pd_server_1
+      - disk.read.requests_pd_server
+      network.outgoing.bytes.rate_pd02_port_0:
+      - abstract_pd_server
+      - network.outgoing.bytes.rate_pd_server_pd02_port
+      binding_pd01_port_0:
+      - abstract_pd_server_1
+      - binding_pd_server_pd01_port
+      disk.read.requests_server_pd_2:
+      - abstract_pd_server
+      - disk.read.requests_pd_server
+      disk.device.usage_server_pd_2:
+      - abstract_pd_server
+      - disk.device.usage_pd_server
+      disk.device.usage_server_pd_1:
+      - abstract_pd_server_1
+      - disk.device.usage_pd_server
+      disk.device.read.bytes_server_pd_1:
+      - abstract_pd_server_1
+      - disk.device.read.bytes_pd_server
+      disk.device.read.bytes_server_pd_2:
+      - abstract_pd_server
+      - disk.device.read.bytes_pd_server
+      network.incoming.packets.rate_pd02_port_0:
+      - abstract_pd_server
+      - network.incoming.packets.rate_pd_server_pd02_port
+      link_packet_external_network_test_nested_no_compute:
+      - test_nested_no_compute
+      - link_packet_external_network
+      network.outgoing.packets.rate_pd01_port_0:
+      - abstract_pd_server_1
+      - network.outgoing.packets.rate_pd_server_pd01_port
+      disk.write.requests.rate_server_pd_1:
+      - abstract_pd_server_1
+      - disk.write.requests.rate_pd_server
+      disk.write.requests.rate_server_pd_2:
+      - abstract_pd_server
+      - disk.write.requests.rate_pd_server
+      disk.root.size_server_pd_1:
+      - abstract_pd_server_1
+      - disk.root.size_pd_server
+      network.outgoing.bytes.rate_cmaui_port_2_test_nested_no_compute:
+      - test_nested_no_compute
+      - network.outgoing.bytes.rate_cmaui_port_2
+      network.incoming.bytes_cmaui_port_2_test_nested_no_compute:
+      - test_nested_no_compute
+      - network.incoming.bytes_cmaui_port_2
+      network.outgoing.packets.rate_cmaui_port_2_test_nested_no_compute:
+      - test_nested_no_compute
+      - network.outgoing.packets.rate_cmaui_port_2
+      network.incoming.bytes.rate_cmaui_port_2_test_nested_no_compute:
+      - test_nested_no_compute
+      - network.incoming.bytes.rate_cmaui_port_2
+      disk.device.iops_server_pd_1:
+      - abstract_pd_server_1
+      - disk.device.iops_pd_server
+      disk.device.iops_server_pd_2:
+      - abstract_pd_server
+      - disk.device.iops_pd_server
+      end_point_packet_internal_network_test_nested_no_compute:
+      - test_nested_no_compute
+      - end_point_packet_internal_network
+      feature_pd02_port_0:
+      - abstract_pd_server
+      - feature_pd_server_pd02_port
+      feature_packet_internal_network_test_nested_no_compute:
+      - test_nested_no_compute
+      - feature_packet_internal_network
+      disk.root.size_server_pd_2:
+      - abstract_pd_server
+      - disk.root.size_pd_server
+      disk.usage_server_pd_2:
+      - abstract_pd_server
+      - disk.usage_pd_server
+      disk.usage_server_pd_1:
+      - abstract_pd_server_1
+      - disk.usage_pd_server
+      network.outgoing.packets.rate_cmaui_port_1_test_nested_no_compute:
+      - test_nested_no_compute
+      - network.outgoing.packets.rate_cmaui_port_1
+      network.incoming.bytes.rate_cmaui_port_1_test_nested_no_compute:
+      - test_nested_no_compute
+      - network.incoming.bytes.rate_cmaui_port_1
+      disk.read.bytes.rate_server_pd_2:
+      - abstract_pd_server
+      - disk.read.bytes.rate_pd_server
+      disk.read.bytes.rate_server_pd_1:
+      - abstract_pd_server_1
+      - disk.read.bytes.rate_pd_server
+      cpu_server_pd_2:
+      - abstract_pd_server
+      - cpu_pd_server
+      cpu_server_pd_1:
+      - abstract_pd_server_1
+      - cpu_pd_server
+      attachment_pd01_port_0:
+      - abstract_pd_server_1
+      - attachment_pd_server_pd01_port
+      network.outpoing.packets_cmaui_port_1_test_nested_no_compute:
+      - test_nested_no_compute
+      - network.outpoing.packets_cmaui_port_1
+      endpoint_server_pd_2:
+      - abstract_pd_server
+      - endpoint_pd_server
+      endpoint_server_pd_1:
+      - abstract_pd_server_1
+      - endpoint_pd_server
+      vcpus_server_pd_1:
+      - abstract_pd_server_1
+      - vcpus_pd_server
+      vcpus_server_pd_2:
+      - abstract_pd_server
+      - vcpus_pd_server
+      network.outgoing.bytes.rate_cmaui_port_1_test_nested_no_compute:
+      - test_nested_no_compute
+      - network.outgoing.bytes.rate_cmaui_port_1
+      disk.device.capacity_server_pd_2:
+      - abstract_pd_server
+      - disk.device.capacity_pd_server
+      disk.device.capacity_server_pd_1:
+      - abstract_pd_server_1
+      - disk.device.capacity_pd_server
+      disk.device.write.bytes.rate_server_pd_1:
+      - abstract_pd_server_1
+      - disk.device.write.bytes.rate_pd_server
+      disk.device.write.bytes.rate_server_pd_2:
+      - abstract_pd_server
+      - disk.device.write.bytes.rate_pd_server
+      network.outpoing.packets_cmaui_port_2_test_nested_no_compute:
+      - test_nested_no_compute
+      - network.outpoing.packets_cmaui_port_2
+      network.incoming.bytes.rate_pd01_port_0:
+      - abstract_pd_server_1
+      - network.incoming.bytes.rate_pd_server_pd01_port
+      feature_pd01_port_0:
+      - abstract_pd_server_1
+      - feature_pd_server_pd01_port
+      disk.device.latency_server_pd_2:
+      - abstract_pd_server
+      - disk.device.latency_pd_server
+      disk.device.latency_server_pd_1:
+      - abstract_pd_server_1
+      - disk.device.latency_pd_server
+      network.incoming.packets_cmaui_port_2_test_nested_no_compute:
+      - test_nested_no_compute
+      - network.incoming.packets_cmaui_port_2
+      instance_server_pd_1:
+      - abstract_pd_server_1
+      - instance_pd_server
+      disk.device.read.requests.rate_server_pd_1:
+      - abstract_pd_server_1
+      - disk.device.read.requests.rate_pd_server
+      instance_server_pd_2:
+      - abstract_pd_server
+      - instance_pd_server
+      disk.device.read.requests.rate_server_pd_2:
+      - abstract_pd_server
+      - disk.device.read.requests.rate_pd_server
+      link_packet_internal_network_test_nested_no_compute:
+      - test_nested_no_compute
+      - link_packet_internal_network
+      attachment_pd02_port_0:
+      - abstract_pd_server
+      - attachment_pd_server_pd02_port
+      network.outgoing.bytes.rate_pd01_port_0:
+      - abstract_pd_server_1
+      - network.outgoing.bytes.rate_pd_server_pd01_port
+      cpu_util_server_pd_1:
+      - abstract_pd_server_1
+      - cpu_util_pd_server
+      cpu_util_server_pd_2:
+      - abstract_pd_server
+      - cpu_util_pd_server
+      feature_cmaui_port_1_test_nested_no_compute:
+      - test_nested_no_compute
+      - feature_cmaui_port_1
+      disk.device.read.bytes.rate_server_pd_2:
+      - abstract_pd_server
+      - disk.device.read.bytes.rate_pd_server
+      binding_pd02_port_0:
+      - abstract_pd_server
+      - binding_pd_server_pd02_port
+      disk.allocation_server_pd_2:
+      - abstract_pd_server
+      - disk.allocation_pd_server
+      disk.device.write.bytes_server_pd_1:
+      - abstract_pd_server_1
+      - disk.device.write.bytes_pd_server
+      disk.device.write.bytes_server_pd_2:
+      - abstract_pd_server
+      - disk.device.write.bytes_pd_server
+      disk.allocation_server_pd_1:
+      - abstract_pd_server_1
+      - disk.allocation_pd_server
+      network.incoming.packets.rate_pd01_port_0:
+      - abstract_pd_server_1
+      - network.incoming.packets.rate_pd_server_pd01_port
+      disk.capacity_server_pd_2:
+      - abstract_pd_server
+      - disk.capacity_pd_server
+      disk.capacity_server_pd_1:
+      - abstract_pd_server_1
+      - disk.capacity_pd_server
+      disk.device.read.bytes.rate_server_pd_1:
+      - abstract_pd_server_1
+      - disk.device.read.bytes.rate_pd_server
+      network.incoming.bytes_pd01_port_0:
+      - abstract_pd_server_1
+      - network.incoming.bytes_pd_server_pd01_port
+      network.incoming.packets_cmaui_port_1_test_nested_no_compute:
+      - test_nested_no_compute
+      - network.incoming.packets_cmaui_port_1
+      attachment_cmaui_port_1_test_nested_no_compute:
+      - test_nested_no_compute
+      - attachment_cmaui_port_1
+      network.outgoing.packets.rate_pd02_port_0:
+      - abstract_pd_server
+      - network.outgoing.packets.rate_pd_server_pd02_port
+      network.outpoing.packets_pd02_port_0:
+      - abstract_pd_server
+      - network.outpoing.packets_pd_server_pd02_port
+      network.outpoing.packets_pd01_port_0:
+      - abstract_pd_server_1
+      - network.outpoing.packets_pd_server_pd01_port
+      binding_server_pd_2:
+      - abstract_pd_server
+      - binding_pd_server
+      disk.device.write.requests_server_pd_2:
+      - abstract_pd_server
+      - disk.device.write.requests_pd_server
+      binding_server_pd_1:
+      - abstract_pd_server_1
+      - binding_pd_server
+      disk.device.write.requests_server_pd_1:
+      - abstract_pd_server_1
+      - disk.device.write.requests_pd_server
+      network.incoming.packets_pd01_port_0:
+      - abstract_pd_server_1
+      - network.incoming.packets_pd_server_pd01_port
+      network.outgoing.bytes_cmaui_port_1_test_nested_no_compute:
+      - test_nested_no_compute
+      - network.outgoing.bytes_cmaui_port_1
+      disk.device.allocation_server_pd_1:
+      - abstract_pd_server_1
+      - disk.device.allocation_pd_server
+      feature_cmaui_port_2_test_nested_no_compute:
+      - test_nested_no_compute
+      - feature_cmaui_port_2
+      disk.device.allocation_server_pd_2:
+      - abstract_pd_server
+      - disk.device.allocation_pd_server
+      disk.device.write.requests.rate_server_pd_2:
+      - abstract_pd_server
+      - disk.device.write.requests.rate_pd_server
+      memory.usage_server_pd_2:
+      - abstract_pd_server
+      - memory.usage_pd_server
+      disk.read.bytes_server_pd_1:
+      - abstract_pd_server_1
+      - disk.read.bytes_pd_server
+      feature_packet_external_network_test_nested_no_compute:
+      - test_nested_no_compute
+      - feature_packet_external_network
+      disk.device.read.requests_server_pd_1:
+      - abstract_pd_server_1
+      - disk.device.read.requests_pd_server
+      disk.device.read.requests_server_pd_2:
+      - abstract_pd_server
+      - disk.device.read.requests_pd_server
+      disk.read.bytes_server_pd_2:
+      - abstract_pd_server
+      - disk.read.bytes_pd_server
+      feature_test_nested_no_compute:
+      - test_nested_no_compute
+      - feature
+      memory.usage_server_pd_1:
+      - abstract_pd_server_1
+      - memory.usage_pd_server
+      network.incoming.bytes.rate_pd02_port_0:
+      - abstract_pd_server
+      - network.incoming.bytes.rate_pd_server_pd02_port
+      attachment_packet_internal_network_test_nested_no_compute:
+      - test_nested_no_compute
+      - attachment_packet_internal_network
+      disk.device.write.requests.rate_server_pd_1:
+      - abstract_pd_server_1
+      - disk.device.write.requests.rate_pd_server
+      os_server_pd_2:
+      - abstract_pd_server
+      - os_pd_server
+      disk.latency_server_pd_1:
+      - abstract_pd_server_1
+      - disk.latency_pd_server
+      disk.latency_server_pd_2:
+      - abstract_pd_server
+      - disk.latency_pd_server
+      scalable_server_pd_2:
+      - abstract_pd_server
+      - scalable_pd_server
+      scalable_server_pd_1:
+      - abstract_pd_server_1
+      - scalable_pd_server
+      os_server_pd_1:
+      - abstract_pd_server_1
+      - os_pd_server
+    requirements:
+      dependency_cmaui_port_1_test_nested_no_compute:
+      - test_nested_no_compute
+      - dependency_cmaui_port_1
+      dependency_test_nested_no_compute:
+      - test_nested_no_compute
+      - dependency
+      link_pd01_port_0:
+      - abstract_pd_server_1
+      - link_pd_server_pd01_port
+      link_pd02_port_0:
+      - abstract_pd_server
+      - link_pd_server_pd02_port
+      local_storage_server_pd_1:
+      - abstract_pd_server_1
+      - local_storage_pd_server
+      local_storage_server_pd_2:
+      - abstract_pd_server
+      - local_storage_pd_server
+      dependency_cmaui_port_2_test_nested_no_compute:
+      - test_nested_no_compute
+      - dependency_cmaui_port_2
+      dependency_pd01_port_0:
+      - abstract_pd_server_1
+      - dependency_pd_server_pd01_port
+      dependency_server_pd_1:
+      - abstract_pd_server_1
+      - dependency_pd_server
+      dependency_server_pd_2:
+      - abstract_pd_server
+      - dependency_pd_server
+      dependency_pd02_port_0:
+      - abstract_pd_server
+      - dependency_pd_server_pd02_port
+      dependency_packet_external_network_test_nested_no_compute:
+      - test_nested_no_compute
+      - dependency_packet_external_network
+      dependency_packet_internal_network_test_nested_no_compute:
+      - test_nested_no_compute
+      - dependency_packet_internal_network
+      binding_cmaui_port_1_test_nested_no_compute:
+      - test_nested_no_compute
+      - binding_cmaui_port_1
+      binding_cmaui_port_2_test_nested_no_compute:
+      - test_nested_no_compute
+      - binding_cmaui_port_2
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/oneLevel/in/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/oneLevel/in/GlobalSubstitutionTypesServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..04d6a69
--- /dev/null
@@ -0,0 +1,1205 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: GlobalSubstitutionTypes
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+node_types:
+  org.openecomp.resource.abstract.nodes.heat.pcm_server:
+    derived_from: org.openecomp.resource.abstract.nodes.VFC
+    properties:
+      port_pcm_1port_0_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      availabilityzone_name:
+        type: string
+        description: availabilityzone name
+        required: true
+        status: SUPPORTED
+      port_pcm_1port_0_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      pcm_image_name:
+        type: string
+        description: PCRF CM image name
+        required: true
+        status: SUPPORTED
+      port_pcm_2port_2_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_pcm_1port_0_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pcm_1port_0_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_pcm_2port_2_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_pcm_2port_2_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pcm_2port_2_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_pcm_2port_1_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pcm_2port_1_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_pcm_1port_0_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_pcm_1port_0_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_pcm_2port_2_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      pcm_server_name:
+        type: string
+        description: PCRF CM server name
+        required: true
+        status: SUPPORTED
+      cps_net_mask:
+        type: string
+        description: CPS network mask
+        required: true
+        status: SUPPORTED
+      port_pcm_2port_2_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      oam_net_name:
+        type: string
+        description: OAM network name
+        required: true
+        status: SUPPORTED
+      port_pcm_2port_2_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_pcm_1port_0_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_pcm_2port_1_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      oam_net_gw:
+        type: string
+        description: CPS network gateway
+        required: true
+        status: SUPPORTED
+      packet_internal_network_name:
+        type: string
+        description: name of the network
+        required: true
+        status: SUPPORTED
+      port_pcm_1port_0_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pcm_2port_1_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      security_group_name:
+        type: string
+        description: the name of security group
+        required: true
+        status: SUPPORTED
+      cps_net_ip:
+        type: string
+        description: CPS network ip
+        required: true
+        status: SUPPORTED
+      port_pcm_2port_1_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      pcm_flavor_name:
+        type: string
+        description: flavor name of PCRF CM instance
+        required: true
+        status: SUPPORTED
+      port_pcm_2port_2_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pcm_2port_1_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      pcm_vol:
+        type: string
+        description: CPS Cluman Cinder Volume
+        required: true
+        status: SUPPORTED
+      cps_net_name:
+        type: string
+        description: CPS network name
+        required: true
+        status: SUPPORTED
+      oam_net_ip:
+        type: string
+        description: OAM network ip
+        required: true
+        status: SUPPORTED
+      oam_net_mask:
+        type: string
+        description: CPS network mask
+        required: true
+        status: SUPPORTED
+      port_pcm_2port_1_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_pcm_2port_1_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+    attributes:
+      server_pcm_id:
+        type: string
+        description: the pcm nova service id
+        status: SUPPORTED
+    requirements:
+    - dependency_server_pcm:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - local_storage_server_pcm:
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_packet_internal_network:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_pcm_1port_0:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_pcm_3port_1:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_pcm_3port_1:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - binding_pcm_3port_1:
+        capability: tosca.capabilities.network.Bindable
+        relationship: tosca.relationships.network.BindsTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_pcm_2port_2:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - binding_pcm_2port_2:
+        capability: tosca.capabilities.network.Bindable
+        relationship: tosca.relationships.network.BindsTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_pcm_2port_1:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_pcm_2port_1:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    capabilities:
+      binding_pcm_2port_1:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      binding_pcm_2port_2:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      cpu_server_pcm:
+        type: org.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_pcm_2port_1:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_pcm_2port_1:
+        type: org.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_pcm_2port_2:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_pcm_2port_2:
+        type: org.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_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.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_pcm_2port_2:
+        type: org.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_pcm_2port_2:
+        type: org.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_pcm_2port_1:
+        type: org.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_pcm_1port_0:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets.rate_pcm_2port_1:
+        type: org.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_pcm_2port_1:
+        type: org.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_pcm_2port_2:
+        type: org.openecomp.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_server_pcm:
+        type: org.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_server_pcm:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      end_point_packet_internal_network:
+        type: tosca.capabilities.Endpoint
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.requests_server_pcm:
+        type: org.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_packet_internal_network:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_pcm_2port_1:
+        type: org.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_pcm_2port_2:
+        type: org.openecomp.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_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.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_pcm_2port_1:
+        type: org.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_pcm_2port_2:
+        type: org.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_pcm_3port_1:
+        type: org.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_pcm_3port_1:
+        type: org.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_packet_internal_network:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_pcm_1port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.usage_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.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_pcm_1port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_pcm_3port_1:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      memory.usage_server_pcm:
+        type: org.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_pcm_3port_1:
+        type: org.openecomp.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_server_pcm:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.capacity_server_pcm:
+        type: org.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_server_pcm:
+        type: tosca.capabilities.OperatingSystem
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_pcm_3port_1:
+        type: org.openecomp.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_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.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_pcm_1port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_pcm_3port_1:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_pcm_3port_1:
+        type: org.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_server_pcm:
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_pcm_3port_1:
+        type: org.openecomp.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_server_pcm:
+        type: org.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_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.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_pcm_1port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.bytes.rate_server_pcm:
+        type: org.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_pcm_3port_1:
+        type: org.openecomp.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_server_pcm:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      link_packet_internal_network:
+        type: tosca.capabilities.network.Linkable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets.rate_pcm_1port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_pcm_2port_1:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      scalable_server_pcm:
+        type: tosca.capabilities.Scalable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_pcm_1port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_pcm_2port_2:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_pcm_2port_1:
+        type: org.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_pcm_2port_2:
+        type: org.openecomp.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_server_pcm:
+        type: org.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_server_pcm:
+        type: org.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_pcm_1port_0:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.requests.rate_server_pcm:
+        type: org.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_pcm_2port_2:
+        type: org.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_pcm_2port_1:
+        type: org.openecomp.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_server_pcm:
+        type: org.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_server_pcm:
+        type: tosca.capabilities.Container
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_pcm_3port_1:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_pcm_1port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_pcm_1port_0:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      cpu.delta_server_pcm:
+        type: org.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_pcm_1port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_server_pcm:
+        type: tosca.capabilities.network.Bindable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.capacity_server_pcm:
+        type: org.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_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.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_pcm_3port_1:
+        type: org.openecomp.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_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.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_server_pcm:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.bytes.rate_server_pcm:
+        type: org.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.compute:
+    derived_from: org.openecomp.resource.abstract.nodes.VFC
+    properties:
+      compute_compute_user_data_format:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_compute_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
+      port_compute_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      compute_compute_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_compute_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_compute_port_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_compute_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      compute_compute_metadata:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
+      port_compute_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_compute_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_compute_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_compute_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+    requirements:
+    - dependency_compute:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - local_storage_compute:
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_compute_compute_port:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_compute_compute_port:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    capabilities:
+      disk.write.requests_compute:
+        type: org.openecomp.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_compute:
+        type: org.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_compute_compute_port:
+        type: org.openecomp.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_compute:
+        type: org.openecomp.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_compute:
+        type: org.openecomp.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_compute:
+        type: org.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_compute:
+        type: tosca.capabilities.OperatingSystem
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.bytes.rate_compute:
+        type: org.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_compute:
+        type: org.openecomp.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_compute:
+        type: org.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_compute_compute_port:
+        type: org.openecomp.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_compute:
+        type: org.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_compute_compute_port:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      host_compute:
+        type: tosca.capabilities.Container
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.bytes_compute:
+        type: org.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_compute:
+        type: org.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_compute_compute_port:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      disk.allocation_compute:
+        type: org.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_compute:
+        type: org.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_compute:
+        type: tosca.capabilities.network.Bindable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_compute_compute_port:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.usage_compute:
+        type: org.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_compute_compute_port:
+        type: org.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_compute:
+        type: org.openecomp.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_compute:
+        type: org.openecomp.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_compute:
+        type: org.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_compute:
+        type: org.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_compute:
+        type: org.openecomp.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_compute:
+        type: org.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_compute_compute_port:
+        type: org.openecomp.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_compute:
+        type: org.openecomp.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_compute:
+        type: org.openecomp.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_compute:
+        type: org.openecomp.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_compute:
+        type: org.openecomp.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_compute:
+        type: org.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_compute_compute_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.capacity_compute:
+        type: org.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_compute:
+        type: org.openecomp.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_compute:
+        type: org.openecomp.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_compute:
+        type: org.openecomp.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_compute:
+        type: org.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_compute_compute_port:
+        type: org.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_compute_compute_port:
+        type: org.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_compute:
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory.usage_compute:
+        type: org.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_compute:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.bytes.rate_compute:
+        type: org.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_compute:
+        type: tosca.capabilities.Scalable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_compute_compute_port:
+        type: org.openecomp.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_compute:
+        type: org.openecomp.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_compute:
+        type: org.openecomp.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_compute:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/oneLevel/in/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/oneLevel/in/MainServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..5bd0fba
--- /dev/null
@@ -0,0 +1,287 @@
+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:
+    oam_net_ips:
+      label: OAM network ips
+      hidden: false
+      immutable: false
+      type: list
+      description: OAM network ips
+      default:
+      - 107.239.64.121
+      entry_schema:
+        type: string
+    availabilityzone_name:
+      label: availabilityzone name
+      hidden: false
+      immutable: false
+      type: string
+      description: availabilityzone name
+      default: nova
+    oam_net_gw:
+      label: CPS network gateway
+      hidden: false
+      immutable: false
+      type: string
+      description: CPS network gateway
+      default: 107.239.64.1
+    pcm_server_names:
+      label: PCRF CM server names
+      hidden: false
+      immutable: false
+      type: list
+      description: name of the PCRF CM instance
+      default:
+      - ZRDM1PCRF01PCM001
+      entry_schema:
+        type: string
+    pcm_image_name:
+      label: PCRF CM image name
+      hidden: false
+      immutable: false
+      type: string
+      description: PCRF CM image name
+      default: rhel2
+    cps_net_ips:
+      label: CPS network ips
+      hidden: false
+      immutable: false
+      type: list
+      description: CPS network ips
+      default:
+      - 172.26.16.113
+      entry_schema:
+        type: string
+    security_group_name:
+      label: security group name
+      hidden: false
+      immutable: false
+      type: string
+      description: the name of security group
+      default: nimbus_security_group
+    pcm_volumes:
+      label: CPS Cluman Cinder Volume
+      hidden: false
+      immutable: false
+      type: list
+      description: CPS Cluman Cinder Volume
+      default:
+      - 249cb355-8fdf-4382-9c3c-a2ebe767d45b
+      entry_schema:
+        type: string
+    compute_image_name:
+      hidden: false
+      immutable: false
+      type: string
+    pcm_flavor_name:
+      label: PCRF CM flavor name
+      hidden: false
+      immutable: false
+      type: string
+      description: flavor name of PCRF CM instance
+      default: cps
+    net_name:
+      hidden: false
+      immutable: false
+      type: string
+    cps_net_name:
+      label: CPS network name
+      hidden: false
+      immutable: false
+      type: string
+      description: CPS network name
+      default: int_pcrf_net_0
+    cps_net_mask:
+      label: CPS network mask
+      hidden: false
+      immutable: false
+      type: string
+      description: CPS network mask
+      default: 255.255.255.0
+    oam_net_mask:
+      label: CPS network mask
+      hidden: false
+      immutable: false
+      type: string
+      description: CPS network mask
+      default: 255.255.255.0
+    oam_net_name:
+      label: OAM network name
+      hidden: false
+      immutable: false
+      type: string
+      description: OAM network name
+      default: oam_protected_net_0
+  node_templates:
+    server_pcm_001:
+      type: org.openecomp.resource.abstract.nodes.heat.pcm_server
+      directives:
+      - substitutable
+      properties:
+        port_pcm_1port_0_mac_requirements:
+          mac_count_required:
+            is_required: false
+        port_pcm_1port_0_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: true
+          floating_ip_count_required:
+            is_required: false
+        availabilityzone_name:
+          get_input: availabilityzone_name
+        oam_net_gw:
+          get_input: oam_net_gw
+        pcm_image_name:
+          get_input: pcm_image_name
+        port_pcm_2port_1_network_role_tag: oam
+        security_group_name:
+          get_input: security_group_name
+        cps_net_ip:
+          get_input:
+          - cps_net_ips
+          - 0
+        port_pcm_2port_1_mac_requirements:
+          mac_count_required:
+            is_required: false
+        port_pcm_2port_1_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: true
+          floating_ip_count_required:
+            is_required: false
+        pcm_flavor_name:
+          get_input: pcm_flavor_name
+        service_template_filter:
+          substitute_service_template: nested-pcm_v0.1ServiceTemplate.yaml
+        pcm_vol:
+          get_input:
+          - pcm_volumes
+          - 0
+        port_pcm_2port_2_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: true
+          floating_ip_count_required:
+            is_required: false
+        pcm_server_name:
+          get_input:
+          - pcm_server_names
+          - 0
+        cps_net_name:
+          get_input: cps_net_name
+        cps_net_mask:
+          get_input: cps_net_mask
+        oam_net_ip:
+          get_input:
+          - oam_net_ips
+          - 0
+        oam_net_mask:
+          get_input: oam_net_mask
+        oam_net_name:
+          get_input: oam_net_name
+        port_pcm_2port_2_mac_requirements:
+          mac_count_required:
+            is_required: false
+    packet_mirror_network:
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+      properties:
+        network_name:
+          get_input: net_name
+      requirements:
+      - dependency:
+          capability: tosca.capabilities.Node
+          node: server_pcm_001
+          relationship: tosca.relationships.DependsOn
+    compute1_port_0:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        replacement_policy: AUTO
+        ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        mac_requirements:
+          mac_count_required:
+            is_required: false
+    compute_port_1:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        mac_requirements:
+          mac_count_required:
+            is_required: false
+        network: packet_mirror_network
+      requirements:
+      - link:
+          capability: tosca.capabilities.network.Linkable
+          node: packet_mirror_network
+          relationship: tosca.relationships.network.LinksTo
+    abstract_compute:
+      type: org.openecomp.resource.abstract.nodes.compute
+      directives:
+      - substitutable
+      properties:
+        compute_compute_user_data_format:
+        - get_attribute:
+          - server_pcm_001
+          - oam_net_gw
+        compute_compute_name:
+        - compute_name: null
+        vm_flavor_name:
+          compute_flavor_name: null
+        vm_image_name:
+          get_input: compute_image_name
+        port_compute_port_network:
+        - packet_mirror_network
+        compute_compute_metadata:
+        - get_attribute:
+          - server_pcm_001
+          - server_pcm_id
+        port_compute_port_mac_requirements:
+          mac_count_required:
+            is_required: false
+        port_compute_port_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        service_template_filter:
+          substitute_service_template: Nested_computeServiceTemplate.yaml
+          count: 1
+        index_value:
+          get_property:
+          - SELF
+          - service_template_filter
+          - index_value
+      requirements:
+      - link_compute_compute_port:
+          capability: tosca.capabilities.network.Linkable
+          node: packet_mirror_network
+          relationship: tosca.relationships.network.LinksTo
+  groups:
+    hot-nimbus-pcm_v0.4_group:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/hot-nimbus-pcm_v0.4.yaml
+        description: heat template that creates PCRF Cluman stack
+      members:
+      - server_pcm_001
+      - packet_mirror_network
+      - compute1_port_0
+      - compute_port_1
+      - abstract_compute
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/oneLevel/in/Nested_computeServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/oneLevel/in/Nested_computeServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..cdbc299
--- /dev/null
@@ -0,0 +1,313 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: Nested_compute
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+  org.openecomp.resource.vfc.nodes.heat.compute:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+  inputs:
+    compute_compute_user_data_format:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_compute_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
+    port_compute_port_vlan_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.VlanRequirements
+    compute_compute_name:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    vm_flavor_name:
+      type: string
+      required: true
+    port_compute_port_network_role:
+      type: string
+      required: true
+    vm_image_name:
+      type: string
+      required: true
+    port_compute_port_network:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_compute_port_network_role_tag:
+      type: string
+      required: true
+    compute_compute_metadata:
+      type: list
+      required: true
+      entry_schema:
+        type: json
+    port_compute_port_order:
+      type: integer
+      required: true
+    port_compute_port_mac_requirements:
+      type: org.openecomp.datatypes.network.MacRequirements
+      required: true
+    port_compute_port_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+    port_compute_port_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+  node_templates:
+    compute:
+      type: org.openecomp.resource.vfc.nodes.heat.compute
+      properties:
+        flavor:
+          get_input: vm_flavor_name
+        metadata:
+          get_input:
+          - compute_compute_metadata
+          - index_value
+        config_drive:
+          get_attribute:
+          - compute_compute_port
+          - tenant_id
+          - port_security_enabled
+          - device_id
+          - qos_policy
+          - allowed_address_pairs
+          - show
+          - device_owner
+          - network
+          - security_groups
+          - fixed_ips
+          - mac_address
+          - admin_state_up
+          - name
+          - subnets
+          - status
+        image:
+          get_input: vm_image_name
+        name:
+          get_input:
+          - compute_compute_name
+          - index_value
+        user_data_format:
+          get_input:
+          - compute_compute_user_data_format
+          - index_value
+    #Internal with connection to server on top level
+    compute_compute_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        exCP_naming:
+          get_input: port_compute_port_exCP_naming
+        vlan_requirements:
+          get_input: port_compute_port_vlan_requirements
+        ip_requirements:
+          get_input: port_compute_port_ip_requirements
+        network_role_tag:
+          get_input: port_compute_port_network_role_tag
+        mac_requirements:
+          get_input: port_compute_port_mac_requirements
+        order:
+          get_input: port_compute_port_order
+        network_role:
+          get_input: port_compute_port_network_role
+        subnetpoolid:
+          get_input: port_compute_port_subnetpoolid
+        network:
+          get_input:
+          - port_compute_port_network
+          - index_value
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: compute
+          relationship: tosca.relationships.network.BindsTo
+  substitution_mappings:
+    node_type: org.openecomp.resource.abstract.nodes.compute
+    capabilities:
+      disk.write.requests_compute:
+      - compute
+      - disk.write.requests
+      disk.latency_compute:
+      - compute
+      - disk.latency
+      network.incoming.bytes_compute_compute_port:
+      - compute_compute_port
+      - network.incoming.bytes
+      disk.root.size_compute:
+      - compute
+      - disk.root.size
+      disk.write.requests.rate_compute:
+      - compute
+      - disk.write.requests.rate
+      disk.read.requests_compute:
+      - compute
+      - disk.read.requests
+      os_compute:
+      - compute
+      - os
+      disk.write.bytes.rate_compute:
+      - compute
+      - disk.write.bytes.rate
+      vcpus_compute:
+      - compute
+      - vcpus
+      disk.device.iops_compute:
+      - compute
+      - disk.device.iops
+      network.incoming.bytes.rate_compute_compute_port:
+      - compute_compute_port
+      - network.incoming.bytes.rate
+      disk.device.write.requests.rate_compute:
+      - compute
+      - disk.device.write.requests.rate
+      attachment_compute_compute_port:
+      - compute_compute_port
+      - attachment
+      host_compute:
+      - compute
+      - host
+      disk.device.write.bytes_compute:
+      - compute
+      - disk.device.write.bytes
+      cpu_compute:
+      - compute
+      - cpu
+      binding_compute_compute_port:
+      - compute_compute_port
+      - binding
+      disk.allocation_compute:
+      - compute
+      - disk.allocation
+      cpu.delta_compute:
+      - compute
+      - cpu.delta
+      binding_compute:
+      - compute
+      - binding
+      feature_compute_compute_port:
+      - compute_compute_port
+      - feature
+      disk.device.usage_compute:
+      - compute
+      - disk.device.usage
+      network.incoming.packets_compute_compute_port:
+      - compute_compute_port
+      - network.incoming.packets
+      instance_compute:
+      - compute
+      - instance
+      disk.ephemeral.size_compute:
+      - compute
+      - disk.ephemeral.size
+      disk.device.read.bytes.rate_compute:
+      - compute
+      - disk.device.read.bytes.rate
+      memory.resident_compute:
+      - compute
+      - memory.resident
+      memory_compute:
+      - compute
+      - memory
+      disk.iops_compute:
+      - compute
+      - disk.iops
+      network.incoming.packets.rate_compute_compute_port:
+      - compute_compute_port
+      - network.incoming.packets.rate
+      disk.device.read.requests.rate_compute:
+      - compute
+      - disk.device.read.requests.rate
+      disk.read.bytes_compute:
+      - compute
+      - disk.read.bytes
+      disk.device.read.bytes_compute:
+      - compute
+      - disk.device.read.bytes
+      disk.write.bytes_compute:
+      - compute
+      - disk.write.bytes
+      disk.usage_compute:
+      - compute
+      - disk.usage
+      network.outgoing.bytes.rate_compute_compute_port:
+      - compute_compute_port
+      - network.outgoing.bytes.rate
+      disk.capacity_compute:
+      - compute
+      - disk.capacity
+      cpu_util_compute:
+      - compute
+      - cpu_util
+      disk.read.bytes.rate_compute:
+      - compute
+      - disk.read.bytes.rate
+      disk.device.latency_compute:
+      - compute
+      - disk.device.latency
+      disk.device.write.requests_compute:
+      - compute
+      - disk.device.write.requests
+      network.outgoing.packets.rate_compute_compute_port:
+      - compute_compute_port
+      - network.outgoing.packets.rate
+      network.outgoing.bytes_compute_compute_port:
+      - compute_compute_port
+      - network.outgoing.bytes
+      endpoint_compute:
+      - compute
+      - endpoint
+      memory.usage_compute:
+      - compute
+      - memory.usage
+      feature_compute:
+      - compute
+      - feature
+      disk.device.write.bytes.rate_compute:
+      - compute
+      - disk.device.write.bytes.rate
+      scalable_compute:
+      - compute
+      - scalable
+      network.outpoing.packets_compute_compute_port:
+      - compute_compute_port
+      - network.outpoing.packets
+      disk.device.read.requests_compute:
+      - compute
+      - disk.device.read.requests
+      disk.device.capacity_compute:
+      - compute
+      - disk.device.capacity
+      disk.device.allocation_compute:
+      - compute
+      - disk.device.allocation
+    requirements:
+      local_storage_compute:
+      - compute
+      - local_storage
+      dependency_compute_compute_port:
+      - compute_compute_port
+      - dependency
+      link_compute_compute_port:
+      - compute_compute_port
+      - link
+      dependency_compute:
+      - compute
+      - dependency
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/oneLevel/in/nested-pcm_v0.1ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/oneLevel/in/nested-pcm_v0.1ServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..f99757e
--- /dev/null
@@ -0,0 +1,640 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: nested-pcm_v0.1
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+  org.openecomp.resource.vfc.nodes.heat.pcm_server:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+  inputs:
+    port_pcm_1port_0_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+    availabilityzone_name:
+      label: availabilityzone name
+      hidden: false
+      immutable: false
+      type: string
+      description: availabilityzone name
+    port_pcm_1port_0_network_role_tag:
+      type: string
+      required: true
+    pcm_image_name:
+      label: image name
+      hidden: false
+      immutable: false
+      type: string
+      description: PCRF CM image name
+    port_pcm_2port_2_order:
+      type: integer
+      required: true
+    port_pcm_1port_0_subnetpoolid:
+      type: string
+      required: true
+    port_pcm_1port_0_order:
+      type: integer
+      required: true
+    port_pcm_2port_2_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+    port_pcm_2port_2_subnetpoolid:
+      type: string
+      required: true
+    port_pcm_2port_2_vlan_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.VlanRequirements
+    port_pcm_2port_1_subnetpoolid:
+      type: string
+      required: true
+    port_pcm_2port_1_mac_requirements:
+      type: org.openecomp.datatypes.network.MacRequirements
+      required: true
+    port_pcm_1port_0_vlan_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.VlanRequirements
+    port_pcm_1port_0_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+    port_pcm_2port_2_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+    pcm_server_name:
+      label: PCRF CM server name
+      hidden: false
+      immutable: false
+      type: string
+      description: PCRF CM server name
+    cps_net_mask:
+      label: CPS network mask
+      hidden: false
+      immutable: false
+      type: string
+      description: CPS network mask
+    port_pcm_2port_2_network_role:
+      type: string
+      required: true
+    oam_net_name:
+      label: OAM network name
+      hidden: false
+      immutable: false
+      type: string
+      description: OAM network name
+    port_pcm_2port_2_mac_requirements:
+      type: org.openecomp.datatypes.network.MacRequirements
+      required: true
+    port_pcm_1port_0_mac_requirements:
+      type: org.openecomp.datatypes.network.MacRequirements
+      required: true
+    port_pcm_2port_1_network_role:
+      type: string
+      required: true
+    oam_net_gw:
+      label: CPS network gateway
+      hidden: false
+      immutable: false
+      type: string
+      description: CPS network gateway
+    packet_internal_network_name:
+      label: packet internal network name
+      hidden: false
+      immutable: false
+      type: string
+      description: name of the network
+    port_pcm_1port_0_network_role:
+      type: string
+      required: true
+    port_pcm_2port_1_network_role_tag:
+      type: string
+      required: true
+    security_group_name:
+      label: security group name
+      hidden: false
+      immutable: false
+      type: string
+      description: the name of security group
+    cps_net_ip:
+      label: CPS network ip
+      hidden: false
+      immutable: false
+      type: string
+      description: CPS network ip
+    port_pcm_2port_1_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+    pcm_flavor_name:
+      label: PCRF CM flavor name
+      hidden: false
+      immutable: false
+      type: string
+      description: flavor name of PCRF CM instance
+    port_pcm_2port_2_network_role_tag:
+      type: string
+      required: true
+    port_pcm_2port_1_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+    pcm_vol:
+      label: CPS Cluman Cinder Volume
+      hidden: false
+      immutable: false
+      type: string
+      description: CPS Cluman Cinder Volume
+    cps_net_name:
+      label: CPS network name
+      hidden: false
+      immutable: false
+      type: string
+      description: CPS network name
+    oam_net_ip:
+      label: OAM network ip
+      hidden: false
+      immutable: false
+      type: string
+      description: OAM network ip
+    oam_net_mask:
+      label: CPS network mask
+      hidden: false
+      immutable: false
+      type: string
+      description: CPS network mask
+    port_pcm_2port_1_order:
+      type: integer
+      required: true
+    port_pcm_2port_1_vlan_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.VlanRequirements
+  node_templates:
+    server_pcm:
+      type: org.openecomp.resource.vfc.nodes.heat.pcm_server
+      properties:
+        flavor:
+          get_input: pcm_flavor_name
+        availability_zone:
+          get_input: availabilityzone_name
+        image:
+          get_input: pcm_image_name
+        config_drive: true
+        user_data_format: RAW
+        name:
+          get_input: pcm_server_name
+    packet_internal_network:
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+      properties:
+        network_name:
+          get_input: packet_internal_network_name
+    #Internal with link
+    pcm_1port_0:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        ip_requirements:
+          get_input: port_pcm_1port_0_ip_requirements
+        security_groups:
+        - get_input: security_group_name
+        network_role:
+          get_input: port_pcm_1port_0_network_role
+        fixed_ips:
+        - ip_address:
+            get_input: cps_net_ip
+        subnetpoolid:
+          get_input: port_pcm_1port_0_subnetpoolid
+        mac_requirements:
+          get_input: port_pcm_1port_0_mac_requirements
+        exCP_naming:
+          get_input: port_pcm_1port_0_exCP_naming
+        vlan_requirements:
+          get_input: port_pcm_1port_0_vlan_requirements
+        network_role_tag:
+          get_input: port_pcm_1port_0_network_role_tag
+        network: packet_internal_network
+        order:
+          get_input: port_pcm_1port_0_order
+      requirements:
+      - link:
+          capability: tosca.capabilities.network.Linkable
+          node: packet_internal_network
+          relationship: tosca.relationships.network.LinksTo
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: server_pcm
+          relationship: tosca.relationships.network.BindsTo
+    #External without link or connection to server
+    pcm_3port_1:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: true
+          floating_ip_count_required:
+            is_required: false
+        security_groups:
+        - get_input: security_group_name
+        fixed_ips:
+        - ip_address:
+            get_input: oam_net_ip
+        mac_requirements:
+          mac_count_required:
+            is_required: false
+        network_role_tag: oam
+        network:
+          get_input: oam_net_name
+    #Internal with connection server on top level
+    pcm_2port_2:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        ip_requirements:
+          get_input: port_pcm_2port_2_ip_requirements
+        security_groups:
+        - get_input: security_group_name
+        network_role:
+          get_input: port_pcm_2port_2_network_role
+        fixed_ips:
+        - ip_address:
+            get_input: oam_net_ip
+        subnetpoolid:
+          get_input: port_pcm_2port_2_subnetpoolid
+        mac_requirements:
+          get_input: port_pcm_2port_2_mac_requirements
+        exCP_naming:
+          get_input: port_pcm_2port_2_exCP_naming
+        vlan_requirements:
+          get_input: port_pcm_2port_2_vlan_requirements
+        network_role_tag:
+          get_input: port_pcm_2port_2_network_role_tag
+        network: packet_internal_network
+        order:
+          get_input: port_pcm_2port_2_order
+      requirements:
+      - link:
+          capability: tosca.capabilities.network.Linkable
+          node: packet_internal_network
+          relationship: tosca.relationships.network.LinksTo
+    #External with connection to server on top level
+    pcm_2port_1:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        ip_requirements:
+          get_input: port_pcm_2port_1_ip_requirements
+        security_groups:
+        - get_input: security_group_name
+        network_role:
+          get_input: port_pcm_2port_1_network_role
+        fixed_ips:
+        - ip_address:
+            get_input: oam_net_ip
+        subnetpoolid:
+          get_input: port_pcm_2port_1_subnetpoolid
+        mac_requirements:
+          get_input: port_pcm_2port_1_mac_requirements
+        exCP_naming:
+          get_input: port_pcm_2port_1_exCP_naming
+        vlan_requirements:
+          get_input: port_pcm_2port_1_vlan_requirements
+        network_role_tag:
+          get_input: port_pcm_2port_1_network_role_tag
+        network:
+          get_input: oam_net_name
+        order:
+          get_input: port_pcm_2port_1_order
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: server_pcm
+          relationship: tosca.relationships.network.BindsTo
+  groups:
+    nested-pcm_v0.1_group:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/nested-pcm_v0.1.yaml
+        description: heat template that creates PCRF Cluman stack
+      members:
+      - server_pcm
+      - packet_internal_network
+      - pcm_1port_0
+      - pcm_3port_1
+      - pcm_2port_2
+      - pcm_2port_1
+  outputs:
+    server_pcm_id:
+      description: the pcm nova service id
+      value: server_pcm
+  substitution_mappings:
+    node_type: org.openecomp.resource.abstract.nodes.heat.pcm_server
+    capabilities:
+      binding_pcm_2port_1:
+      - pcm_2port_1
+      - binding
+      binding_pcm_2port_2:
+      - pcm_2port_2
+      - binding
+      cpu_server_pcm:
+      - server_pcm
+      - cpu
+      attachment_pcm_2port_1:
+      - pcm_2port_1
+      - attachment
+      network.outgoing.bytes.rate_pcm_2port_1:
+      - pcm_2port_1
+      - network.outgoing.bytes.rate
+      attachment_pcm_2port_2:
+      - pcm_2port_2
+      - attachment
+      network.outgoing.bytes.rate_pcm_2port_2:
+      - pcm_2port_2
+      - network.outgoing.bytes.rate
+      memory_server_pcm:
+      - server_pcm
+      - memory
+      disk.write.requests_server_pcm:
+      - server_pcm
+      - disk.write.requests
+      network.outpoing.packets_pcm_2port_2:
+      - pcm_2port_2
+      - network.outpoing.packets
+      network.incoming.bytes_pcm_2port_2:
+      - pcm_2port_2
+      - network.incoming.bytes
+      network.incoming.bytes_pcm_2port_1:
+      - pcm_2port_1
+      - network.incoming.bytes
+      feature_pcm_1port_0:
+      - pcm_1port_0
+      - feature
+      network.incoming.packets.rate_pcm_2port_1:
+      - pcm_2port_1
+      - network.incoming.packets.rate
+      network.outpoing.packets_pcm_2port_1:
+      - pcm_2port_1
+      - network.outpoing.packets
+      network.incoming.packets.rate_pcm_2port_2:
+      - pcm_2port_2
+      - network.incoming.packets.rate
+      disk.device.iops_server_pcm:
+      - server_pcm
+      - disk.device.iops
+      memory.resident_server_pcm:
+      - server_pcm
+      - memory.resident
+      end_point_packet_internal_network:
+      - packet_internal_network
+      - end_point
+      disk.device.write.requests_server_pcm:
+      - server_pcm
+      - disk.device.write.requests
+      feature_packet_internal_network:
+      - packet_internal_network
+      - feature
+      network.outgoing.packets.rate_pcm_2port_1:
+      - pcm_2port_1
+      - network.outgoing.packets.rate
+      network.outgoing.packets.rate_pcm_2port_2:
+      - pcm_2port_2
+      - network.outgoing.packets.rate
+      disk.device.usage_server_pcm:
+      - server_pcm
+      - disk.device.usage
+      disk.allocation_server_pcm:
+      - server_pcm
+      - disk.allocation
+      network.incoming.packets_pcm_2port_1:
+      - pcm_2port_1
+      - network.incoming.packets
+      network.incoming.packets_pcm_2port_2:
+      - pcm_2port_2
+      - network.incoming.packets
+      network.incoming.bytes.rate_pcm_3port_1:
+      - pcm_3port_1
+      - network.incoming.bytes.rate
+      network.incoming.packets.rate_pcm_3port_1:
+      - pcm_3port_1
+      - network.incoming.packets.rate
+      attachment_packet_internal_network:
+      - packet_internal_network
+      - attachment
+      network.outpoing.packets_pcm_1port_0:
+      - pcm_1port_0
+      - network.outpoing.packets
+      disk.usage_server_pcm:
+      - server_pcm
+      - disk.usage
+      disk.device.write.bytes_server_pcm:
+      - server_pcm
+      - disk.device.write.bytes
+      disk.root.size_server_pcm:
+      - server_pcm
+      - disk.root.size
+      disk.ephemeral.size_server_pcm:
+      - server_pcm
+      - disk.ephemeral.size
+      disk.device.latency_server_pcm:
+      - server_pcm
+      - disk.device.latency
+      network.incoming.bytes_pcm_1port_0:
+      - pcm_1port_0
+      - network.incoming.bytes
+      binding_pcm_3port_1:
+      - pcm_3port_1
+      - binding
+      memory.usage_server_pcm:
+      - server_pcm
+      - memory.usage
+      network.outgoing.bytes.rate_pcm_3port_1:
+      - pcm_3port_1
+      - network.outgoing.bytes.rate
+      disk.read.requests_server_pcm:
+      - server_pcm
+      - disk.read.requests
+      disk.capacity_server_pcm:
+      - server_pcm
+      - disk.capacity
+      os_server_pcm:
+      - server_pcm
+      - os
+      network.outgoing.bytes_pcm_3port_1:
+      - pcm_3port_1
+      - network.outgoing.bytes
+      disk.read.bytes_server_pcm:
+      - server_pcm
+      - disk.read.bytes
+      disk.device.read.bytes_server_pcm:
+      - server_pcm
+      - disk.device.read.bytes
+      network.incoming.packets_pcm_1port_0:
+      - pcm_1port_0
+      - network.incoming.packets
+      feature_pcm_3port_1:
+      - pcm_3port_1
+      - feature
+      network.outgoing.packets.rate_pcm_3port_1:
+      - pcm_3port_1
+      - network.outgoing.packets.rate
+      endpoint_server_pcm:
+      - server_pcm
+      - endpoint
+      network.incoming.packets_pcm_3port_1:
+      - pcm_3port_1
+      - network.incoming.packets
+      disk.device.read.requests.rate_server_pcm:
+      - server_pcm
+      - disk.device.read.requests.rate
+      vcpus_server_pcm:
+      - server_pcm
+      - vcpus
+      disk.write.bytes_server_pcm:
+      - server_pcm
+      - disk.write.bytes
+      disk.iops_server_pcm:
+      - server_pcm
+      - disk.iops
+      network.incoming.bytes.rate_pcm_1port_0:
+      - pcm_1port_0
+      - network.incoming.bytes.rate
+      disk.read.bytes.rate_server_pcm:
+      - server_pcm
+      - disk.read.bytes.rate
+      network.outpoing.packets_pcm_3port_1:
+      - pcm_3port_1
+      - network.outpoing.packets
+      disk.device.allocation_server_pcm:
+      - server_pcm
+      - disk.device.allocation
+      link_packet_internal_network:
+      - packet_internal_network
+      - link
+      network.incoming.packets.rate_pcm_1port_0:
+      - pcm_1port_0
+      - network.incoming.packets.rate
+      feature_pcm_2port_1:
+      - pcm_2port_1
+      - feature
+      scalable_server_pcm:
+      - server_pcm
+      - scalable
+      network.outgoing.bytes.rate_pcm_1port_0:
+      - pcm_1port_0
+      - network.outgoing.bytes.rate
+      feature_pcm_2port_2:
+      - pcm_2port_2
+      - feature
+      network.outgoing.bytes_pcm_2port_1:
+      - pcm_2port_1
+      - network.outgoing.bytes
+      network.outgoing.bytes_pcm_2port_2:
+      - pcm_2port_2
+      - network.outgoing.bytes
+      disk.device.read.bytes.rate_server_pcm:
+      - server_pcm
+      - disk.device.read.bytes.rate
+      cpu_util_server_pcm:
+      - server_pcm
+      - cpu_util
+      attachment_pcm_1port_0:
+      - pcm_1port_0
+      - attachment
+      disk.write.requests.rate_server_pcm:
+      - server_pcm
+      - disk.write.requests.rate
+      network.incoming.bytes.rate_pcm_2port_2:
+      - pcm_2port_2
+      - network.incoming.bytes.rate
+      network.incoming.bytes.rate_pcm_2port_1:
+      - pcm_2port_1
+      - network.incoming.bytes.rate
+      disk.device.write.bytes.rate_server_pcm:
+      - server_pcm
+      - disk.device.write.bytes.rate
+      host_server_pcm:
+      - server_pcm
+      - host
+      attachment_pcm_3port_1:
+      - pcm_3port_1
+      - attachment
+      network.outgoing.bytes_pcm_1port_0:
+      - pcm_1port_0
+      - network.outgoing.bytes
+      binding_pcm_1port_0:
+      - pcm_1port_0
+      - binding
+      cpu.delta_server_pcm:
+      - server_pcm
+      - cpu.delta
+      network.outgoing.packets.rate_pcm_1port_0:
+      - pcm_1port_0
+      - network.outgoing.packets.rate
+      binding_server_pcm:
+      - server_pcm
+      - binding
+      disk.device.capacity_server_pcm:
+      - server_pcm
+      - disk.device.capacity
+      instance_server_pcm:
+      - server_pcm
+      - instance
+      disk.device.write.requests.rate_server_pcm:
+      - server_pcm
+      - disk.device.write.requests.rate
+      network.incoming.bytes_pcm_3port_1:
+      - pcm_3port_1
+      - network.incoming.bytes
+      disk.latency_server_pcm:
+      - server_pcm
+      - disk.latency
+      disk.device.read.requests_server_pcm:
+      - server_pcm
+      - disk.device.read.requests
+      feature_server_pcm:
+      - server_pcm
+      - feature
+      disk.write.bytes.rate_server_pcm:
+      - server_pcm
+      - disk.write.bytes.rate
+    requirements:
+      binding_pcm_2port_2:
+      - pcm_2port_2
+      - binding
+      dependency_pcm_3port_1:
+      - pcm_3port_1
+      - dependency
+      dependency_pcm_2port_2:
+      - pcm_2port_2
+      - dependency
+      dependency_pcm_2port_1:
+      - pcm_2port_1
+      - dependency
+      local_storage_server_pcm:
+      - server_pcm
+      - local_storage
+      link_pcm_3port_1:
+      - pcm_3port_1
+      - link
+      dependency_packet_internal_network:
+      - packet_internal_network
+      - dependency
+      dependency_pcm_1port_0:
+      - pcm_1port_0
+      - dependency
+      dependency_server_pcm:
+      - server_pcm
+      - dependency
+      binding_pcm_3port_1:
+      - pcm_3port_1
+      - binding
+      link_pcm_2port_1:
+      - pcm_2port_1
+      - link
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/oneLevel/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/oneLevel/out/GlobalSubstitutionTypesServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..34406ed
--- /dev/null
@@ -0,0 +1,518 @@
+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_pd01_port_0_floating_ip_count:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_0_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_0_network_role_tag:
+        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_pd01_port_0_ip_count:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      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_1_floating_ip_count:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_1_ip_count:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_1_mac_count:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_1_network_role_tag:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_0_mac_count:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_1_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      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_1:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_pd_server_pd01_port_1:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_pd_server_pd01_port_0:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_pd_server_pd01_port_0:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    capabilities:
+      binding_pd_server_pd01_port_0:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      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
+      binding_pd_server_pd01_port_1:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - 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.packets_pd_server_pd01_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.iops_pd_server:
+        type: org.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_1:
+        type: org.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_1:
+        type: org.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_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_pd_server_pd01_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_pd_server_pd01_port_1:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_pd_server_pd01_port_1:
+        type: org.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_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      vcpus_pd_server:
+        type: org.openecomp.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
+      attachment_pd_server_pd01_port_0:
+        type: tosca.capabilities.Attachment
+        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
+      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.incoming.packets_pd_server_pd01_port_1:
+        type: org.openecomp.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.outgoing.bytes.rate_pd_server_pd01_port_1:
+        type: org.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_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_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
+      network.incoming.bytes_pd_server_pd01_port_1:
+        type: org.openecomp.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
+      network.outgoing.bytes_pd_server_pd01_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_pd_server_pd01_port_1:
+        type: org.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_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.requests.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
+      network.outpoing.packets_pd_server_pd01_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_pd_server_pd01_port_1:
+        type: org.openecomp.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
+      feature_pd_server_pd01_port_1:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_pd_server_pd01_port_0:
+        type: tosca.capabilities.Node
+        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
+      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
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/oneLevel/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/oneLevel/out/MainServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..00091c6
--- /dev/null
@@ -0,0 +1,297 @@
+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
+- openecomp_index:
+    file: openecomp/_index.yml
+topology_template:
+  inputs:
+    oam_net_ips:
+      label: OAM network ips
+      hidden: false
+      immutable: false
+      type: list
+      description: OAM network ips
+      default:
+      - 107.239.64.121
+      entry_schema:
+        type: string
+    availabilityzone_name:
+      label: availabilityzone name
+      hidden: false
+      immutable: false
+      type: string
+      description: availabilityzone name
+      default: nova
+    oam_net_gw:
+      label: CPS network gateway
+      hidden: false
+      immutable: false
+      type: string
+      description: CPS network gateway
+      default: 107.239.64.1
+    pcm_server_names:
+      label: PCRF CM server names
+      hidden: false
+      immutable: false
+      type: list
+      description: name of the PCRF CM instance
+      default:
+      - ZRDM1PCRF01PCM001
+      entry_schema:
+        type: string
+    pcm_image_name:
+      label: PCRF CM image name
+      hidden: false
+      immutable: false
+      type: string
+      description: PCRF CM image name
+      default: rhel2
+    cps_net_ips:
+      label: CPS network ips
+      hidden: false
+      immutable: false
+      type: list
+      description: CPS network ips
+      default:
+      - 172.26.16.113
+      entry_schema:
+        type: string
+    security_group_name:
+      label: security group name
+      hidden: false
+      immutable: false
+      type: string
+      description: the name of security group
+      default: nimbus_security_group
+    pcm_volumes:
+      label: CPS Cluman Cinder Volume
+      hidden: false
+      immutable: false
+      type: list
+      description: CPS Cluman Cinder Volume
+      default:
+      - 249cb355-8fdf-4382-9c3c-a2ebe767d45b
+      entry_schema:
+        type: string
+    compute_image_name:
+      hidden: false
+      immutable: false
+      type: string
+    pcm_flavor_name:
+      label: PCRF CM flavor name
+      hidden: false
+      immutable: false
+      type: string
+      description: flavor name of PCRF CM instance
+      default: cps
+    net_name:
+      hidden: false
+      immutable: false
+      type: string
+    cps_net_name:
+      label: CPS network name
+      hidden: false
+      immutable: false
+      type: string
+      description: CPS network name
+      default: int_pcrf_net_0
+    cps_net_mask:
+      label: CPS network mask
+      hidden: false
+      immutable: false
+      type: string
+      description: CPS network mask
+      default: 255.255.255.0
+    oam_net_mask:
+      label: CPS network mask
+      hidden: false
+      immutable: false
+      type: string
+      description: CPS network mask
+      default: 255.255.255.0
+    oam_net_name:
+      label: OAM network name
+      hidden: false
+      immutable: false
+      type: string
+      description: OAM network name
+      default: oam_protected_net_0
+  node_templates:
+    server_pcm_001:
+      type: org.openecomp.resource.abstract.nodes.heat.pcm_server
+      directives:
+      - substitutable
+      properties:
+        port_pcm_1port_0_mac_requirements:
+          mac_count_required:
+            is_required: false
+        port_pcm_1port_0_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: true
+          floating_ip_count_required:
+            is_required: false
+        availabilityzone_name:
+          get_input: availabilityzone_name
+        oam_net_gw:
+          get_input: oam_net_gw
+        pcm_image_name:
+          get_input: pcm_image_name
+        port_pcm_2port_1_network_role_tag: oam
+        security_group_name:
+          get_input: security_group_name
+        cps_net_ip:
+          get_input:
+          - cps_net_ips
+          - 0
+        port_pcm_2port_1_mac_requirements:
+          mac_count_required:
+            is_required: false
+        port_pcm_2port_1_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: true
+          floating_ip_count_required:
+            is_required: false
+        pcm_flavor_name:
+          get_input: pcm_flavor_name
+        service_template_filter:
+          substitute_service_template: nested-pcm_v0.1ServiceTemplate.yaml
+        pcm_vol:
+          get_input:
+          - pcm_volumes
+          - 0
+        port_pcm_2port_2_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: true
+          floating_ip_count_required:
+            is_required: false
+        pcm_server_name:
+          get_input:
+          - pcm_server_names
+          - 0
+        cps_net_name:
+          get_input: cps_net_name
+        cps_net_mask:
+          get_input: cps_net_mask
+        oam_net_ip:
+          get_input:
+          - oam_net_ips
+          - 0
+        oam_net_mask:
+          get_input: oam_net_mask
+        oam_net_name:
+          get_input: oam_net_name
+        port_pcm_2port_2_mac_requirements:
+          mac_count_required:
+            is_required: false
+    packet_mirror_network:
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+      properties:
+        network_name:
+          get_input: net_name
+      requirements:
+      - dependency:
+          capability: tosca.capabilities.Node
+          node: server_pcm_001
+          relationship: tosca.relationships.DependsOn
+    compute1_port_0:
+      type: org.openecomp.resource.cp.v2.extNeutronCP
+      properties:
+        replacement_policy: AUTO
+        ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        mac_requirements:
+          mac_count_required:
+            is_required: false
+      capabilities:
+      - port_mirroring:
+          properties:
+            connection_point:
+              nf_type: ''
+              nfc_type: ''
+              network_role: ''
+              pps_capacity: ''
+    compute_port_1:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        mac_requirements:
+          mac_count_required:
+            is_required: false
+        network: packet_mirror_network
+      requirements:
+      - link:
+          capability: tosca.capabilities.network.Linkable
+          node: packet_mirror_network
+          relationship: tosca.relationships.network.LinksTo
+    abstract_compute:
+      type: org.openecomp.resource.abstract.nodes.compute
+      directives:
+      - substitutable
+      properties:
+        compute_compute_user_data_format:
+        - get_attribute:
+          - server_pcm_001
+          - oam_net_gw
+        compute_compute_name:
+        - compute_name: null
+        vm_flavor_name:
+          compute_flavor_name: null
+        vm_image_name:
+          get_input: compute_image_name
+        port_compute_port_network:
+        - packet_mirror_network
+        compute_compute_metadata:
+        - get_attribute:
+          - server_pcm_001
+          - server_pcm_id
+        port_compute_port_mac_requirements:
+          mac_count_required:
+            is_required: false
+        port_compute_port_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        service_template_filter:
+          substitute_service_template: Nested_computeServiceTemplate.yaml
+          count: 1
+        index_value:
+          get_property:
+          - SELF
+          - service_template_filter
+          - index_value
+      requirements:
+      - link_compute_compute_port:
+          capability: tosca.capabilities.network.Linkable
+          node: packet_mirror_network
+          relationship: tosca.relationships.network.LinksTo
+  groups:
+    hot-nimbus-pcm_v0.4_group:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/hot-nimbus-pcm_v0.4.yaml
+        description: heat template that creates PCRF Cluman stack
+      members:
+      - server_pcm_001
+      - packet_mirror_network
+      - compute1_port_0
+      - compute_port_1
+      - abstract_compute
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/oneLevel/out/Nested_computeServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/oneLevel/out/Nested_computeServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..7a9311c
--- /dev/null
@@ -0,0 +1,312 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: Nested_compute
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+  org.openecomp.resource.vfc.nodes.heat.compute:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+  inputs:
+    compute_compute_user_data_format:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_compute_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
+    port_compute_port_vlan_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.VlanRequirements
+    compute_compute_name:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    vm_flavor_name:
+      type: string
+      required: true
+    port_compute_port_network_role:
+      type: string
+      required: true
+    vm_image_name:
+      type: string
+      required: true
+    port_compute_port_network:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_compute_port_network_role_tag:
+      type: string
+      required: true
+    compute_compute_metadata:
+      type: list
+      required: true
+      entry_schema:
+        type: json
+    port_compute_port_order:
+      type: integer
+      required: true
+    port_compute_port_mac_requirements:
+      type: org.openecomp.datatypes.network.MacRequirements
+      required: true
+    port_compute_port_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+    port_compute_port_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+  node_templates:
+    compute:
+      type: org.openecomp.resource.vfc.nodes.heat.compute
+      properties:
+        flavor:
+          get_input: vm_flavor_name
+        metadata:
+          get_input:
+          - compute_compute_metadata
+          - index_value
+        config_drive:
+          get_attribute:
+          - compute_compute_port
+          - tenant_id
+          - port_security_enabled
+          - device_id
+          - qos_policy
+          - allowed_address_pairs
+          - show
+          - device_owner
+          - network
+          - security_groups
+          - fixed_ips
+          - mac_address
+          - admin_state_up
+          - name
+          - subnets
+          - status
+        image:
+          get_input: vm_image_name
+        name:
+          get_input:
+          - compute_compute_name
+          - index_value
+        user_data_format:
+          get_input:
+          - compute_compute_user_data_format
+          - index_value
+    compute_compute_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        exCP_naming:
+          get_input: port_compute_port_exCP_naming
+        vlan_requirements:
+          get_input: port_compute_port_vlan_requirements
+        ip_requirements:
+          get_input: port_compute_port_ip_requirements
+        network_role_tag:
+          get_input: port_compute_port_network_role_tag
+        mac_requirements:
+          get_input: port_compute_port_mac_requirements
+        order:
+          get_input: port_compute_port_order
+        network_role:
+          get_input: port_compute_port_network_role
+        subnetpoolid:
+          get_input: port_compute_port_subnetpoolid
+        network:
+          get_input:
+          - port_compute_port_network
+          - index_value
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: compute
+          relationship: tosca.relationships.network.BindsTo
+  substitution_mappings:
+    node_type: org.openecomp.resource.abstract.nodes.compute
+    capabilities:
+      disk.write.requests_compute:
+      - compute
+      - disk.write.requests
+      disk.latency_compute:
+      - compute
+      - disk.latency
+      network.incoming.bytes_compute_compute_port:
+      - compute_compute_port
+      - network.incoming.bytes
+      disk.root.size_compute:
+      - compute
+      - disk.root.size
+      disk.write.requests.rate_compute:
+      - compute
+      - disk.write.requests.rate
+      disk.read.requests_compute:
+      - compute
+      - disk.read.requests
+      os_compute:
+      - compute
+      - os
+      disk.write.bytes.rate_compute:
+      - compute
+      - disk.write.bytes.rate
+      vcpus_compute:
+      - compute
+      - vcpus
+      disk.device.iops_compute:
+      - compute
+      - disk.device.iops
+      network.incoming.bytes.rate_compute_compute_port:
+      - compute_compute_port
+      - network.incoming.bytes.rate
+      disk.device.write.requests.rate_compute:
+      - compute
+      - disk.device.write.requests.rate
+      attachment_compute_compute_port:
+      - compute_compute_port
+      - attachment
+      host_compute:
+      - compute
+      - host
+      disk.device.write.bytes_compute:
+      - compute
+      - disk.device.write.bytes
+      cpu_compute:
+      - compute
+      - cpu
+      binding_compute_compute_port:
+      - compute_compute_port
+      - binding
+      disk.allocation_compute:
+      - compute
+      - disk.allocation
+      cpu.delta_compute:
+      - compute
+      - cpu.delta
+      binding_compute:
+      - compute
+      - binding
+      feature_compute_compute_port:
+      - compute_compute_port
+      - feature
+      disk.device.usage_compute:
+      - compute
+      - disk.device.usage
+      network.incoming.packets_compute_compute_port:
+      - compute_compute_port
+      - network.incoming.packets
+      instance_compute:
+      - compute
+      - instance
+      disk.ephemeral.size_compute:
+      - compute
+      - disk.ephemeral.size
+      disk.device.read.bytes.rate_compute:
+      - compute
+      - disk.device.read.bytes.rate
+      memory.resident_compute:
+      - compute
+      - memory.resident
+      memory_compute:
+      - compute
+      - memory
+      disk.iops_compute:
+      - compute
+      - disk.iops
+      network.incoming.packets.rate_compute_compute_port:
+      - compute_compute_port
+      - network.incoming.packets.rate
+      disk.device.read.requests.rate_compute:
+      - compute
+      - disk.device.read.requests.rate
+      disk.read.bytes_compute:
+      - compute
+      - disk.read.bytes
+      disk.device.read.bytes_compute:
+      - compute
+      - disk.device.read.bytes
+      disk.write.bytes_compute:
+      - compute
+      - disk.write.bytes
+      disk.usage_compute:
+      - compute
+      - disk.usage
+      network.outgoing.bytes.rate_compute_compute_port:
+      - compute_compute_port
+      - network.outgoing.bytes.rate
+      disk.capacity_compute:
+      - compute
+      - disk.capacity
+      cpu_util_compute:
+      - compute
+      - cpu_util
+      disk.read.bytes.rate_compute:
+      - compute
+      - disk.read.bytes.rate
+      disk.device.latency_compute:
+      - compute
+      - disk.device.latency
+      disk.device.write.requests_compute:
+      - compute
+      - disk.device.write.requests
+      network.outgoing.packets.rate_compute_compute_port:
+      - compute_compute_port
+      - network.outgoing.packets.rate
+      network.outgoing.bytes_compute_compute_port:
+      - compute_compute_port
+      - network.outgoing.bytes
+      endpoint_compute:
+      - compute
+      - endpoint
+      memory.usage_compute:
+      - compute
+      - memory.usage
+      feature_compute:
+      - compute
+      - feature
+      disk.device.write.bytes.rate_compute:
+      - compute
+      - disk.device.write.bytes.rate
+      scalable_compute:
+      - compute
+      - scalable
+      network.outpoing.packets_compute_compute_port:
+      - compute_compute_port
+      - network.outpoing.packets
+      disk.device.read.requests_compute:
+      - compute
+      - disk.device.read.requests
+      disk.device.capacity_compute:
+      - compute
+      - disk.device.capacity
+      disk.device.allocation_compute:
+      - compute
+      - disk.device.allocation
+    requirements:
+      local_storage_compute:
+      - compute
+      - local_storage
+      dependency_compute_compute_port:
+      - compute_compute_port
+      - dependency
+      link_compute_compute_port:
+      - compute_compute_port
+      - link
+      dependency_compute:
+      - compute
+      - dependency
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/oneLevel/out/nested-pcm_v0.1ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/oneLevel/out/nested-pcm_v0.1ServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..ac6f670
--- /dev/null
@@ -0,0 +1,661 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: nested-pcm_v0.1
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+- openecomp_index:
+    file: openecomp/_index.yml
+node_types:
+  org.openecomp.resource.vfc.nodes.heat.pcm_server:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+  inputs:
+    port_pcm_1port_0_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+    availabilityzone_name:
+      label: availabilityzone name
+      hidden: false
+      immutable: false
+      type: string
+      description: availabilityzone name
+    port_pcm_1port_0_network_role_tag:
+      type: string
+      required: true
+    pcm_image_name:
+      label: image name
+      hidden: false
+      immutable: false
+      type: string
+      description: PCRF CM image name
+    port_pcm_2port_2_order:
+      type: integer
+      required: true
+    port_pcm_1port_0_subnetpoolid:
+      type: string
+      required: true
+    port_pcm_1port_0_order:
+      type: integer
+      required: true
+    port_pcm_2port_2_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+    port_pcm_2port_2_subnetpoolid:
+      type: string
+      required: true
+    port_pcm_2port_2_vlan_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.VlanRequirements
+    port_pcm_2port_1_subnetpoolid:
+      type: string
+      required: true
+    port_pcm_2port_1_mac_requirements:
+      type: org.openecomp.datatypes.network.MacRequirements
+      required: true
+    port_pcm_1port_0_vlan_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.VlanRequirements
+    port_pcm_1port_0_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+    port_pcm_2port_2_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+    pcm_server_name:
+      label: PCRF CM server name
+      hidden: false
+      immutable: false
+      type: string
+      description: PCRF CM server name
+    cps_net_mask:
+      label: CPS network mask
+      hidden: false
+      immutable: false
+      type: string
+      description: CPS network mask
+    port_pcm_2port_2_network_role:
+      type: string
+      required: true
+    oam_net_name:
+      label: OAM network name
+      hidden: false
+      immutable: false
+      type: string
+      description: OAM network name
+    port_pcm_2port_2_mac_requirements:
+      type: org.openecomp.datatypes.network.MacRequirements
+      required: true
+    port_pcm_1port_0_mac_requirements:
+      type: org.openecomp.datatypes.network.MacRequirements
+      required: true
+    port_pcm_2port_1_network_role:
+      type: string
+      required: true
+    oam_net_gw:
+      label: CPS network gateway
+      hidden: false
+      immutable: false
+      type: string
+      description: CPS network gateway
+    packet_internal_network_name:
+      label: packet internal network name
+      hidden: false
+      immutable: false
+      type: string
+      description: name of the network
+    port_pcm_1port_0_network_role:
+      type: string
+      required: true
+    port_pcm_2port_1_network_role_tag:
+      type: string
+      required: true
+    security_group_name:
+      label: security group name
+      hidden: false
+      immutable: false
+      type: string
+      description: the name of security group
+    cps_net_ip:
+      label: CPS network ip
+      hidden: false
+      immutable: false
+      type: string
+      description: CPS network ip
+    port_pcm_2port_1_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+    pcm_flavor_name:
+      label: PCRF CM flavor name
+      hidden: false
+      immutable: false
+      type: string
+      description: flavor name of PCRF CM instance
+    port_pcm_2port_2_network_role_tag:
+      type: string
+      required: true
+    port_pcm_2port_1_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+    pcm_vol:
+      label: CPS Cluman Cinder Volume
+      hidden: false
+      immutable: false
+      type: string
+      description: CPS Cluman Cinder Volume
+    cps_net_name:
+      label: CPS network name
+      hidden: false
+      immutable: false
+      type: string
+      description: CPS network name
+    oam_net_ip:
+      label: OAM network ip
+      hidden: false
+      immutable: false
+      type: string
+      description: OAM network ip
+    oam_net_mask:
+      label: CPS network mask
+      hidden: false
+      immutable: false
+      type: string
+      description: CPS network mask
+    port_pcm_2port_1_order:
+      type: integer
+      required: true
+    port_pcm_2port_1_vlan_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.VlanRequirements
+  node_templates:
+    server_pcm:
+      type: org.openecomp.resource.vfc.nodes.heat.pcm_server
+      properties:
+        flavor:
+          get_input: pcm_flavor_name
+        availability_zone:
+          get_input: availabilityzone_name
+        image:
+          get_input: pcm_image_name
+        config_drive: true
+        user_data_format: RAW
+        name:
+          get_input: pcm_server_name
+    packet_internal_network:
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+      properties:
+        network_name:
+          get_input: packet_internal_network_name
+    pcm_1port_0:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        ip_requirements:
+          get_input: port_pcm_1port_0_ip_requirements
+        security_groups:
+        - get_input: security_group_name
+        network_role:
+          get_input: port_pcm_1port_0_network_role
+        fixed_ips:
+        - ip_address:
+            get_input: cps_net_ip
+        subnetpoolid:
+          get_input: port_pcm_1port_0_subnetpoolid
+        mac_requirements:
+          get_input: port_pcm_1port_0_mac_requirements
+        exCP_naming:
+          get_input: port_pcm_1port_0_exCP_naming
+        vlan_requirements:
+          get_input: port_pcm_1port_0_vlan_requirements
+        network_role_tag:
+          get_input: port_pcm_1port_0_network_role_tag
+        network: packet_internal_network
+        order:
+          get_input: port_pcm_1port_0_order
+      requirements:
+      - link:
+          capability: tosca.capabilities.network.Linkable
+          node: packet_internal_network
+          relationship: tosca.relationships.network.LinksTo
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: server_pcm
+          relationship: tosca.relationships.network.BindsTo
+    pcm_3port_1:
+      type: org.openecomp.resource.cp.v2.extNeutronCP
+      properties:
+        ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: true
+          floating_ip_count_required:
+            is_required: false
+        security_groups:
+        - get_input: security_group_name
+        fixed_ips:
+        - ip_address:
+            get_input: oam_net_ip
+        mac_requirements:
+          mac_count_required:
+            is_required: false
+        network_role_tag: oam
+        network:
+          get_input: oam_net_name
+      capabilities:
+      - port_mirroring:
+          properties:
+            connection_point:
+              nf_type: ''
+              nfc_type: ''
+              network_role: ''
+              pps_capacity: ''
+    pcm_2port_2:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        ip_requirements:
+          get_input: port_pcm_2port_2_ip_requirements
+        security_groups:
+        - get_input: security_group_name
+        network_role:
+          get_input: port_pcm_2port_2_network_role
+        fixed_ips:
+        - ip_address:
+            get_input: oam_net_ip
+        subnetpoolid:
+          get_input: port_pcm_2port_2_subnetpoolid
+        mac_requirements:
+          get_input: port_pcm_2port_2_mac_requirements
+        exCP_naming:
+          get_input: port_pcm_2port_2_exCP_naming
+        vlan_requirements:
+          get_input: port_pcm_2port_2_vlan_requirements
+        network_role_tag:
+          get_input: port_pcm_2port_2_network_role_tag
+        network: packet_internal_network
+        order:
+          get_input: port_pcm_2port_2_order
+      requirements:
+      - link:
+          capability: tosca.capabilities.network.Linkable
+          node: packet_internal_network
+          relationship: tosca.relationships.network.LinksTo
+    pcm_2port_1:
+      type: org.openecomp.resource.cp.v2.extNeutronCP
+      properties:
+        ip_requirements:
+          get_input: port_pcm_2port_1_ip_requirements
+        security_groups:
+        - get_input: security_group_name
+        network_role:
+          get_input: port_pcm_2port_1_network_role
+        fixed_ips:
+        - ip_address:
+            get_input: oam_net_ip
+        subnetpoolid:
+          get_input: port_pcm_2port_1_subnetpoolid
+        mac_requirements:
+          get_input: port_pcm_2port_1_mac_requirements
+        exCP_naming:
+          get_input: port_pcm_2port_1_exCP_naming
+        vlan_requirements:
+          get_input: port_pcm_2port_1_vlan_requirements
+        network_role_tag:
+          get_input: port_pcm_2port_1_network_role_tag
+        network:
+          get_input: oam_net_name
+        order:
+          get_input: port_pcm_2port_1_order
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: server_pcm
+          relationship: tosca.relationships.network.BindsTo
+      capabilities:
+      - port_mirroring:
+          properties:
+            connection_point:
+              nf_type: ''
+              nfc_type: server_pcm
+              network_role:
+                get_input: port_pcm_2port_1_network_role
+              pps_capacity: ''
+  groups:
+    nested-pcm_v0.1_group:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/nested-pcm_v0.1.yaml
+        description: heat template that creates PCRF Cluman stack
+      members:
+      - server_pcm
+      - packet_internal_network
+      - pcm_1port_0
+      - pcm_3port_1
+      - pcm_2port_2
+      - pcm_2port_1
+  outputs:
+    server_pcm_id:
+      description: the pcm nova service id
+      value: server_pcm
+  substitution_mappings:
+    node_type: org.openecomp.resource.abstract.nodes.heat.pcm_server
+    capabilities:
+      binding_pcm_2port_1:
+      - pcm_2port_1
+      - binding
+      binding_pcm_2port_2:
+      - pcm_2port_2
+      - binding
+      cpu_server_pcm:
+      - server_pcm
+      - cpu
+      attachment_pcm_2port_1:
+      - pcm_2port_1
+      - attachment
+      network.outgoing.bytes.rate_pcm_2port_1:
+      - pcm_2port_1
+      - network.outgoing.bytes.rate
+      attachment_pcm_2port_2:
+      - pcm_2port_2
+      - attachment
+      network.outgoing.bytes.rate_pcm_2port_2:
+      - pcm_2port_2
+      - network.outgoing.bytes.rate
+      memory_server_pcm:
+      - server_pcm
+      - memory
+      disk.write.requests_server_pcm:
+      - server_pcm
+      - disk.write.requests
+      network.outpoing.packets_pcm_2port_2:
+      - pcm_2port_2
+      - network.outpoing.packets
+      network.incoming.bytes_pcm_2port_2:
+      - pcm_2port_2
+      - network.incoming.bytes
+      network.incoming.bytes_pcm_2port_1:
+      - pcm_2port_1
+      - network.incoming.bytes
+      feature_pcm_1port_0:
+      - pcm_1port_0
+      - feature
+      network.incoming.packets.rate_pcm_2port_1:
+      - pcm_2port_1
+      - network.incoming.packets.rate
+      network.outpoing.packets_pcm_2port_1:
+      - pcm_2port_1
+      - network.outpoing.packets
+      network.incoming.packets.rate_pcm_2port_2:
+      - pcm_2port_2
+      - network.incoming.packets.rate
+      disk.device.iops_server_pcm:
+      - server_pcm
+      - disk.device.iops
+      memory.resident_server_pcm:
+      - server_pcm
+      - memory.resident
+      end_point_packet_internal_network:
+      - packet_internal_network
+      - end_point
+      disk.device.write.requests_server_pcm:
+      - server_pcm
+      - disk.device.write.requests
+      feature_packet_internal_network:
+      - packet_internal_network
+      - feature
+      network.outgoing.packets.rate_pcm_2port_1:
+      - pcm_2port_1
+      - network.outgoing.packets.rate
+      network.outgoing.packets.rate_pcm_2port_2:
+      - pcm_2port_2
+      - network.outgoing.packets.rate
+      disk.device.usage_server_pcm:
+      - server_pcm
+      - disk.device.usage
+      disk.allocation_server_pcm:
+      - server_pcm
+      - disk.allocation
+      network.incoming.packets_pcm_2port_1:
+      - pcm_2port_1
+      - network.incoming.packets
+      network.incoming.packets_pcm_2port_2:
+      - pcm_2port_2
+      - network.incoming.packets
+      network.incoming.bytes.rate_pcm_3port_1:
+      - pcm_3port_1
+      - network.incoming.bytes.rate
+      network.incoming.packets.rate_pcm_3port_1:
+      - pcm_3port_1
+      - network.incoming.packets.rate
+      attachment_packet_internal_network:
+      - packet_internal_network
+      - attachment
+      network.outpoing.packets_pcm_1port_0:
+      - pcm_1port_0
+      - network.outpoing.packets
+      disk.usage_server_pcm:
+      - server_pcm
+      - disk.usage
+      disk.device.write.bytes_server_pcm:
+      - server_pcm
+      - disk.device.write.bytes
+      disk.root.size_server_pcm:
+      - server_pcm
+      - disk.root.size
+      disk.ephemeral.size_server_pcm:
+      - server_pcm
+      - disk.ephemeral.size
+      disk.device.latency_server_pcm:
+      - server_pcm
+      - disk.device.latency
+      network.incoming.bytes_pcm_1port_0:
+      - pcm_1port_0
+      - network.incoming.bytes
+      binding_pcm_3port_1:
+      - pcm_3port_1
+      - binding
+      memory.usage_server_pcm:
+      - server_pcm
+      - memory.usage
+      network.outgoing.bytes.rate_pcm_3port_1:
+      - pcm_3port_1
+      - network.outgoing.bytes.rate
+      disk.read.requests_server_pcm:
+      - server_pcm
+      - disk.read.requests
+      disk.capacity_server_pcm:
+      - server_pcm
+      - disk.capacity
+      os_server_pcm:
+      - server_pcm
+      - os
+      network.outgoing.bytes_pcm_3port_1:
+      - pcm_3port_1
+      - network.outgoing.bytes
+      disk.read.bytes_server_pcm:
+      - server_pcm
+      - disk.read.bytes
+      disk.device.read.bytes_server_pcm:
+      - server_pcm
+      - disk.device.read.bytes
+      network.incoming.packets_pcm_1port_0:
+      - pcm_1port_0
+      - network.incoming.packets
+      feature_pcm_3port_1:
+      - pcm_3port_1
+      - feature
+      network.outgoing.packets.rate_pcm_3port_1:
+      - pcm_3port_1
+      - network.outgoing.packets.rate
+      endpoint_server_pcm:
+      - server_pcm
+      - endpoint
+      network.incoming.packets_pcm_3port_1:
+      - pcm_3port_1
+      - network.incoming.packets
+      disk.device.read.requests.rate_server_pcm:
+      - server_pcm
+      - disk.device.read.requests.rate
+      vcpus_server_pcm:
+      - server_pcm
+      - vcpus
+      disk.write.bytes_server_pcm:
+      - server_pcm
+      - disk.write.bytes
+      disk.iops_server_pcm:
+      - server_pcm
+      - disk.iops
+      network.incoming.bytes.rate_pcm_1port_0:
+      - pcm_1port_0
+      - network.incoming.bytes.rate
+      disk.read.bytes.rate_server_pcm:
+      - server_pcm
+      - disk.read.bytes.rate
+      network.outpoing.packets_pcm_3port_1:
+      - pcm_3port_1
+      - network.outpoing.packets
+      disk.device.allocation_server_pcm:
+      - server_pcm
+      - disk.device.allocation
+      link_packet_internal_network:
+      - packet_internal_network
+      - link
+      network.incoming.packets.rate_pcm_1port_0:
+      - pcm_1port_0
+      - network.incoming.packets.rate
+      feature_pcm_2port_1:
+      - pcm_2port_1
+      - feature
+      scalable_server_pcm:
+      - server_pcm
+      - scalable
+      network.outgoing.bytes.rate_pcm_1port_0:
+      - pcm_1port_0
+      - network.outgoing.bytes.rate
+      feature_pcm_2port_2:
+      - pcm_2port_2
+      - feature
+      network.outgoing.bytes_pcm_2port_1:
+      - pcm_2port_1
+      - network.outgoing.bytes
+      network.outgoing.bytes_pcm_2port_2:
+      - pcm_2port_2
+      - network.outgoing.bytes
+      disk.device.read.bytes.rate_server_pcm:
+      - server_pcm
+      - disk.device.read.bytes.rate
+      cpu_util_server_pcm:
+      - server_pcm
+      - cpu_util
+      attachment_pcm_1port_0:
+      - pcm_1port_0
+      - attachment
+      disk.write.requests.rate_server_pcm:
+      - server_pcm
+      - disk.write.requests.rate
+      network.incoming.bytes.rate_pcm_2port_2:
+      - pcm_2port_2
+      - network.incoming.bytes.rate
+      network.incoming.bytes.rate_pcm_2port_1:
+      - pcm_2port_1
+      - network.incoming.bytes.rate
+      disk.device.write.bytes.rate_server_pcm:
+      - server_pcm
+      - disk.device.write.bytes.rate
+      host_server_pcm:
+      - server_pcm
+      - host
+      attachment_pcm_3port_1:
+      - pcm_3port_1
+      - attachment
+      network.outgoing.bytes_pcm_1port_0:
+      - pcm_1port_0
+      - network.outgoing.bytes
+      binding_pcm_1port_0:
+      - pcm_1port_0
+      - binding
+      cpu.delta_server_pcm:
+      - server_pcm
+      - cpu.delta
+      network.outgoing.packets.rate_pcm_1port_0:
+      - pcm_1port_0
+      - network.outgoing.packets.rate
+      binding_server_pcm:
+      - server_pcm
+      - binding
+      disk.device.capacity_server_pcm:
+      - server_pcm
+      - disk.device.capacity
+      instance_server_pcm:
+      - server_pcm
+      - instance
+      disk.device.write.requests.rate_server_pcm:
+      - server_pcm
+      - disk.device.write.requests.rate
+      network.incoming.bytes_pcm_3port_1:
+      - pcm_3port_1
+      - network.incoming.bytes
+      disk.latency_server_pcm:
+      - server_pcm
+      - disk.latency
+      disk.device.read.requests_server_pcm:
+      - server_pcm
+      - disk.device.read.requests
+      feature_server_pcm:
+      - server_pcm
+      - feature
+      disk.write.bytes.rate_server_pcm:
+      - server_pcm
+      - disk.write.bytes.rate
+      port_mirroring_pcm_3port_1:
+      - pcm_3port_1
+      - port_mirroring
+      port_mirroring_pcm_2port_1:
+      - pcm_2port_1
+      - port_mirroring
+    requirements:
+      binding_pcm_2port_2:
+      - pcm_2port_2
+      - binding
+      dependency_pcm_3port_1:
+      - pcm_3port_1
+      - dependency
+      dependency_pcm_2port_2:
+      - pcm_2port_2
+      - dependency
+      dependency_pcm_2port_1:
+      - pcm_2port_1
+      - dependency
+      local_storage_server_pcm:
+      - server_pcm
+      - local_storage
+      link_pcm_3port_1:
+      - pcm_3port_1
+      - link
+      dependency_packet_internal_network:
+      - packet_internal_network
+      - dependency
+      dependency_pcm_1port_0:
+      - pcm_1port_0
+      - dependency
+      dependency_server_pcm:
+      - server_pcm
+      - dependency
+      binding_pcm_3port_1:
+      - pcm_3port_1
+      - binding
+      link_pcm_2port_1:
+      - pcm_2port_1
+      - link
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/noPorts/in/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/noPorts/in/GlobalSubstitutionTypesServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..0585915
--- /dev/null
@@ -0,0 +1,302 @@
+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:
+      vm_image_name:
+        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
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      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
+    capabilities:
+      binding_pd_server:
+        type: tosca.capabilities.network.Bindable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      scalable_pd_server:
+        type: tosca.capabilities.Scalable
+        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
+      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
+      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
+      os_pd_server:
+        type: tosca.capabilities.OperatingSystem
+        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.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.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.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
+      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
+      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
+      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
+      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
+      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
+      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.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.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
+      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
+      endpoint_pd_server:
+        type: tosca.capabilities.Endpoint.Admin
+        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.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.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.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.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
+      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
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/noPorts/in/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/noPorts/in/MainServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..7963125
--- /dev/null
@@ -0,0 +1,454 @@
+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
+      type: string
+      description: flavor name of PD instance
+      default: m3.xlarge
+    availabilityzone_name:
+      label: availabilityzone name
+      hidden: false
+      immutable: false
+      type: string
+      description: availabilityzone name
+      default: nova
+    repl_net_ips:
+      label: repl network ips
+      hidden: false
+      immutable: false
+      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
+      type: string
+      description: id of the sl network
+      default: exn_protected_net_0
+    pd_image_name:
+      label: image name
+      hidden: false
+      immutable: false
+      type: string
+      description: PD image name
+      default: MOG_BASE_8.0
+    pd_server_names:
+      label: PD server names
+      hidden: false
+      immutable: false
+      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
+      type: list
+      description: name of the SM instance
+      default:
+      - ZRDM1MOGX01MSM001
+      - ZRDM1MOGX01MSM002
+      entry_schema:
+        type: string
+    dummy_net_netmask_1:
+      hidden: false
+      immutable: false
+      type: string
+      description: CSB internal network subnet mask
+      default: 255.255.255.0
+    dummy_net_netmask_0:
+      hidden: false
+      immutable: false
+      type: string
+      description: CSB internal network subnet mask
+      default: 255.255.255.0
+    ran_net_floating_ip:
+      label: mog ran net virtual ip
+      hidden: false
+      immutable: false
+      type: string
+      description: mog ran net virtual ip
+      default: 107.239.36.5
+    ran_net_ips:
+      label: RAN network ips
+      hidden: false
+      immutable: false
+      type: list
+      description: RAN network ip
+      default:
+      - 107.239.36.3
+      - 107.239.36.4
+      entry_schema:
+        type: string
+    dummy_net_end_0:
+      label: csb internal end
+      hidden: false
+      immutable: false
+      type: string
+      description: csb internal end
+      default: 169.254.1.254
+    oam_image_name:
+      label: image name
+      hidden: false
+      immutable: false
+      type: string
+      description: OAM image name
+      default: MOG_BASE_8.0
+    dummy_net_end_1:
+      label: csb internal end
+      hidden: false
+      immutable: false
+      type: string
+      description: csb internal end
+      default: 169.254.2.254
+    oam_net_name:
+      label: oam network name
+      hidden: false
+      immutable: false
+      type: string
+      description: name of the oam network
+      default: oam_protected_net_0
+    oam_net_ips:
+      label: internet network ips
+      hidden: false
+      immutable: false
+      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
+    ran_net_name:
+      label: RAN network name
+      hidden: false
+      immutable: false
+      type: string
+      description: RAN network name
+      default: gn_direct_net_0
+    cluster-manager-vol-1:
+      label: mog-cm-vol-1
+      hidden: false
+      immutable: false
+      type: string
+      description: Cluster Manager volume 1
+      default: 43ccf5ba-2d50-427b-a38f-e8c7d8670eee
+    csb_net_netmask:
+      hidden: false
+      immutable: false
+      type: string
+      description: CSB internal network subnet mask
+      default: 255.255.255.0
+    oam_flavor_name:
+      label: OAM flavor name
+      hidden: false
+      immutable: false
+      type: string
+      description: flavor name of OAM instance
+      default: m3.xlarge
+    dummy_net_start_0:
+      label: csb internal start
+      hidden: false
+      immutable: false
+      type: string
+      description: csb internal start
+      default: 169.254.1.4
+    dummy_net_start_1:
+      label: csb internal start
+      hidden: false
+      immutable: false
+      type: string
+      description: csb internal start
+      default: 169.254.2.4
+    cm_flavor_name:
+      label: CM flavor name
+      hidden: false
+      immutable: false
+      type: string
+      description: flavor name of CM instance
+      default: m3.xlarge
+    sm_image_name:
+      label: image name
+      hidden: false
+      immutable: false
+      type: string
+      description: SM image name
+      default: MOG_BASE_8.0
+    ps_server_names:
+      label: PS server names
+      hidden: false
+      immutable: false
+      type: list
+      description: name of the PS instance
+      default:
+      - ZRDM1MOGX01MPS001
+      - ZRDM1MOGX01MPS002
+      - ZRDM1MOGX01MPS003
+      - ZRDM1MOGX01MPS004
+      entry_schema:
+        type: string
+    csb_net_ips:
+      hidden: false
+      immutable: false
+      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
+      type: string
+      description: flavor name of PS instance
+      default: m3.xlarge
+    rx_net_ips:
+      label: Rx network ips
+      hidden: false
+      immutable: false
+      type: list
+      description: Rx network ips
+      default:
+      - 107.239.34.3
+      - 107.239.34.4
+      entry_schema:
+        type: string
+    dummy_net_name_1:
+      label: csb internal network name
+      hidden: false
+      immutable: false
+      type: string
+      description: csb internal network name
+      default: mog_dummy_1
+    dummy_net_cidr_1:
+      label: csb ineternal cidr
+      hidden: false
+      immutable: false
+      type: string
+      description: csb internal cidr
+      default: 169.254.2.0/24
+    dummy_net_name_0:
+      label: csb internal network name
+      hidden: false
+      immutable: false
+      type: string
+      description: csb internal network name
+      default: mog_dummy_0
+    dummy_net_cidr_0:
+      label: csb ineternal cidr
+      hidden: false
+      immutable: false
+      type: string
+      description: csb internal cidr
+      default: 169.254.1.0/24
+    oam-vol-2:
+      label: mog-oam-vol-2
+      hidden: false
+      immutable: false
+      type: string
+      description: OAM volume 2
+      default: 6d169cb6-6ddc-41dc-920c-2839898a2924
+    sl_net_floating_ip:
+      label: mog sl net virtual ip
+      hidden: false
+      immutable: false
+      type: string
+      description: mog sl net virtual ip
+      default: 107.239.45.6
+    session-manager-vol-1:
+      label: mog-sm-vol-1
+      hidden: false
+      immutable: false
+      type: string
+      description: Session Manager volume 1
+      default: 49201898-333d-4c88-b58d-cf573b091633
+    rx_net_floating_ip:
+      label: mog rx net virtual ip
+      hidden: false
+      immutable: false
+      type: string
+      description: mog rx net virtual ip
+      default: 107.239.34.5
+    session-manager-vol-2:
+      label: mog-sm-vol-2
+      hidden: false
+      immutable: false
+      type: string
+      description: Session Manager volume 2
+      default: 4c35b5f1-ce99-4220-a6e2-cda6e2d713a0
+    oam-vol-1:
+      label: mog-oam-vol-1
+      hidden: false
+      immutable: false
+      type: string
+      description: OAM volume 1
+      default: 0a7fcd9e-2624-401d-ac21-b0191f85ec77
+    csb_net_start:
+      label: csb internal start
+      hidden: false
+      immutable: false
+      type: string
+      description: csb internal start
+      default: 172.26.0.1
+    cm_image_name:
+      label: image name
+      hidden: false
+      immutable: false
+      type: string
+      description: CM image name
+      default: MOG_BASE_8.0
+    sm_flavor_name:
+      label: SM flavor name
+      hidden: false
+      immutable: false
+      type: string
+      description: flavor name of SM instance
+      default: m2.xlarge4
+    ps_image_name:
+      label: PS image name
+      hidden: false
+      immutable: false
+      type: string
+      description: PS image name
+      default: MOG_BASE_8.0
+    oam_server_names:
+      label: OAM server names
+      hidden: false
+      immutable: false
+      type: list
+      description: name of the OAM instance
+      default:
+      - ZRDM1MOGX01OAM001
+      - ZRDM1MOGX01OAM002
+      entry_schema:
+        type: string
+    csb_net_cidr:
+      label: csb ineternal cidr
+      hidden: false
+      immutable: false
+      type: string
+      description: csb internal cidr
+      default: 172.26.0.0/24
+    cm_server_names:
+      label: CM server names
+      hidden: false
+      immutable: false
+      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
+      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
+      type: string
+      description: Rx network name
+      default: cor_direct_net_1
+    repl_net_name:
+      label: Replication network name
+      hidden: false
+      immutable: false
+      type: string
+      description: name of the replication network
+      default: cor_direct_net_0
+    security_group_name:
+      label: security group name
+      hidden: false
+      immutable: false
+      type: string
+      description: the name of security group
+      default: mog_security_group
+    csb_net_end:
+      label: csb internal end
+      hidden: false
+      immutable: false
+      type: string
+      description: csb internal end
+      default: 172.26.0.254
+    csb_net_name:
+      label: csb internal network name
+      hidden: false
+      immutable: false
+      type: string
+      description: csb internal network name
+      default: int_mog_csb_net
+  node_templates:
+    abstract_pd_server:
+      type: org.openecomp.resource.abstract.nodes.pd_server
+      directives:
+      - substitutable
+      properties:
+        vm_image_name:
+          get_input: pd_image_name
+        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
+        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
+  groups:
+    hot-mog-0108-bs1271_group:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/hot-mog-0108-bs1271.yml
+        description: heat template that creates MOG stack
+      members:
+      - abstract_pd_server
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/noPorts/in/Nested_pd_serverServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/noPorts/in/Nested_pd_serverServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..318fbba
--- /dev/null
@@ -0,0 +1,194 @@
+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.nodes.heat.pd_server:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+  inputs:
+    vm_image_name:
+      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
+    vm_flavor_name:
+      type: string
+      required: true
+    compute_pd_server_user_data_format:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+  node_templates:
+    pd_server:
+      type: org.openecomp.resource.vfc.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:
+      binding_pd_server:
+      - pd_server
+      - binding
+      scalable_pd_server:
+      - pd_server
+      - scalable
+      disk.read.requests_pd_server:
+      - pd_server
+      - disk.read.requests
+      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
+      feature_pd_server:
+      - pd_server
+      - feature
+      disk.usage_pd_server:
+      - pd_server
+      - disk.usage
+      os_pd_server:
+      - pd_server
+      - os
+      disk.write.bytes_pd_server:
+      - pd_server
+      - disk.write.bytes
+      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.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.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
+      disk.device.write.bytes_pd_server:
+      - pd_server
+      - disk.device.write.bytes
+      disk.device.read.requests_pd_server:
+      - pd_server
+      - disk.device.read.requests
+      disk.iops_pd_server:
+      - pd_server
+      - disk.iops
+      instance_pd_server:
+      - pd_server
+      - instance
+      host_pd_server:
+      - pd_server
+      - host
+      memory.resident_pd_server:
+      - pd_server
+      - memory.resident
+      cpu.delta_pd_server:
+      - pd_server
+      - cpu.delta
+      disk.write.requests.rate_pd_server:
+      - pd_server
+      - disk.write.requests.rate
+      vcpus_pd_server:
+      - pd_server
+      - vcpus
+      disk.ephemeral.size_pd_server:
+      - pd_server
+      - disk.ephemeral.size
+      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
+      disk.write.requests_pd_server:
+      - pd_server
+      - disk.write.requests
+      endpoint_pd_server:
+      - pd_server
+      - endpoint
+      disk.device.latency_pd_server:
+      - pd_server
+      - disk.device.latency
+      disk.capacity_pd_server:
+      - pd_server
+      - disk.capacity
+      disk.latency_pd_server:
+      - pd_server
+      - disk.latency
+      disk.device.capacity_pd_server:
+      - pd_server
+      - disk.device.capacity
+      disk.device.allocation_pd_server:
+      - pd_server
+      - disk.device.allocation
+      disk.device.iops_pd_server:
+      - pd_server
+      - disk.device.iops
+      disk.allocation_pd_server:
+      - pd_server
+      - disk.allocation
+    requirements:
+      local_storage_pd_server:
+      - pd_server
+      - local_storage
+      dependency_pd_server:
+      - pd_server
+      - dependency
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/noPorts/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/noPorts/out/GlobalSubstitutionTypesServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..34406ed
--- /dev/null
@@ -0,0 +1,518 @@
+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_pd01_port_0_floating_ip_count:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_0_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_0_network_role_tag:
+        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_pd01_port_0_ip_count:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      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_1_floating_ip_count:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_1_ip_count:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_1_mac_count:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_1_network_role_tag:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_0_mac_count:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_1_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      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_1:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_pd_server_pd01_port_1:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_pd_server_pd01_port_0:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_pd_server_pd01_port_0:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    capabilities:
+      binding_pd_server_pd01_port_0:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      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
+      binding_pd_server_pd01_port_1:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - 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.packets_pd_server_pd01_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.iops_pd_server:
+        type: org.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_1:
+        type: org.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_1:
+        type: org.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_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_pd_server_pd01_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_pd_server_pd01_port_1:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_pd_server_pd01_port_1:
+        type: org.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_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      vcpus_pd_server:
+        type: org.openecomp.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
+      attachment_pd_server_pd01_port_0:
+        type: tosca.capabilities.Attachment
+        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
+      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.incoming.packets_pd_server_pd01_port_1:
+        type: org.openecomp.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.outgoing.bytes.rate_pd_server_pd01_port_1:
+        type: org.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_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_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
+      network.incoming.bytes_pd_server_pd01_port_1:
+        type: org.openecomp.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
+      network.outgoing.bytes_pd_server_pd01_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_pd_server_pd01_port_1:
+        type: org.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_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.requests.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
+      network.outpoing.packets_pd_server_pd01_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_pd_server_pd01_port_1:
+        type: org.openecomp.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
+      feature_pd_server_pd01_port_1:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_pd_server_pd01_port_0:
+        type: tosca.capabilities.Node
+        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
+      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
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/noPorts/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/noPorts/out/MainServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..7963125
--- /dev/null
@@ -0,0 +1,454 @@
+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
+      type: string
+      description: flavor name of PD instance
+      default: m3.xlarge
+    availabilityzone_name:
+      label: availabilityzone name
+      hidden: false
+      immutable: false
+      type: string
+      description: availabilityzone name
+      default: nova
+    repl_net_ips:
+      label: repl network ips
+      hidden: false
+      immutable: false
+      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
+      type: string
+      description: id of the sl network
+      default: exn_protected_net_0
+    pd_image_name:
+      label: image name
+      hidden: false
+      immutable: false
+      type: string
+      description: PD image name
+      default: MOG_BASE_8.0
+    pd_server_names:
+      label: PD server names
+      hidden: false
+      immutable: false
+      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
+      type: list
+      description: name of the SM instance
+      default:
+      - ZRDM1MOGX01MSM001
+      - ZRDM1MOGX01MSM002
+      entry_schema:
+        type: string
+    dummy_net_netmask_1:
+      hidden: false
+      immutable: false
+      type: string
+      description: CSB internal network subnet mask
+      default: 255.255.255.0
+    dummy_net_netmask_0:
+      hidden: false
+      immutable: false
+      type: string
+      description: CSB internal network subnet mask
+      default: 255.255.255.0
+    ran_net_floating_ip:
+      label: mog ran net virtual ip
+      hidden: false
+      immutable: false
+      type: string
+      description: mog ran net virtual ip
+      default: 107.239.36.5
+    ran_net_ips:
+      label: RAN network ips
+      hidden: false
+      immutable: false
+      type: list
+      description: RAN network ip
+      default:
+      - 107.239.36.3
+      - 107.239.36.4
+      entry_schema:
+        type: string
+    dummy_net_end_0:
+      label: csb internal end
+      hidden: false
+      immutable: false
+      type: string
+      description: csb internal end
+      default: 169.254.1.254
+    oam_image_name:
+      label: image name
+      hidden: false
+      immutable: false
+      type: string
+      description: OAM image name
+      default: MOG_BASE_8.0
+    dummy_net_end_1:
+      label: csb internal end
+      hidden: false
+      immutable: false
+      type: string
+      description: csb internal end
+      default: 169.254.2.254
+    oam_net_name:
+      label: oam network name
+      hidden: false
+      immutable: false
+      type: string
+      description: name of the oam network
+      default: oam_protected_net_0
+    oam_net_ips:
+      label: internet network ips
+      hidden: false
+      immutable: false
+      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
+    ran_net_name:
+      label: RAN network name
+      hidden: false
+      immutable: false
+      type: string
+      description: RAN network name
+      default: gn_direct_net_0
+    cluster-manager-vol-1:
+      label: mog-cm-vol-1
+      hidden: false
+      immutable: false
+      type: string
+      description: Cluster Manager volume 1
+      default: 43ccf5ba-2d50-427b-a38f-e8c7d8670eee
+    csb_net_netmask:
+      hidden: false
+      immutable: false
+      type: string
+      description: CSB internal network subnet mask
+      default: 255.255.255.0
+    oam_flavor_name:
+      label: OAM flavor name
+      hidden: false
+      immutable: false
+      type: string
+      description: flavor name of OAM instance
+      default: m3.xlarge
+    dummy_net_start_0:
+      label: csb internal start
+      hidden: false
+      immutable: false
+      type: string
+      description: csb internal start
+      default: 169.254.1.4
+    dummy_net_start_1:
+      label: csb internal start
+      hidden: false
+      immutable: false
+      type: string
+      description: csb internal start
+      default: 169.254.2.4
+    cm_flavor_name:
+      label: CM flavor name
+      hidden: false
+      immutable: false
+      type: string
+      description: flavor name of CM instance
+      default: m3.xlarge
+    sm_image_name:
+      label: image name
+      hidden: false
+      immutable: false
+      type: string
+      description: SM image name
+      default: MOG_BASE_8.0
+    ps_server_names:
+      label: PS server names
+      hidden: false
+      immutable: false
+      type: list
+      description: name of the PS instance
+      default:
+      - ZRDM1MOGX01MPS001
+      - ZRDM1MOGX01MPS002
+      - ZRDM1MOGX01MPS003
+      - ZRDM1MOGX01MPS004
+      entry_schema:
+        type: string
+    csb_net_ips:
+      hidden: false
+      immutable: false
+      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
+      type: string
+      description: flavor name of PS instance
+      default: m3.xlarge
+    rx_net_ips:
+      label: Rx network ips
+      hidden: false
+      immutable: false
+      type: list
+      description: Rx network ips
+      default:
+      - 107.239.34.3
+      - 107.239.34.4
+      entry_schema:
+        type: string
+    dummy_net_name_1:
+      label: csb internal network name
+      hidden: false
+      immutable: false
+      type: string
+      description: csb internal network name
+      default: mog_dummy_1
+    dummy_net_cidr_1:
+      label: csb ineternal cidr
+      hidden: false
+      immutable: false
+      type: string
+      description: csb internal cidr
+      default: 169.254.2.0/24
+    dummy_net_name_0:
+      label: csb internal network name
+      hidden: false
+      immutable: false
+      type: string
+      description: csb internal network name
+      default: mog_dummy_0
+    dummy_net_cidr_0:
+      label: csb ineternal cidr
+      hidden: false
+      immutable: false
+      type: string
+      description: csb internal cidr
+      default: 169.254.1.0/24
+    oam-vol-2:
+      label: mog-oam-vol-2
+      hidden: false
+      immutable: false
+      type: string
+      description: OAM volume 2
+      default: 6d169cb6-6ddc-41dc-920c-2839898a2924
+    sl_net_floating_ip:
+      label: mog sl net virtual ip
+      hidden: false
+      immutable: false
+      type: string
+      description: mog sl net virtual ip
+      default: 107.239.45.6
+    session-manager-vol-1:
+      label: mog-sm-vol-1
+      hidden: false
+      immutable: false
+      type: string
+      description: Session Manager volume 1
+      default: 49201898-333d-4c88-b58d-cf573b091633
+    rx_net_floating_ip:
+      label: mog rx net virtual ip
+      hidden: false
+      immutable: false
+      type: string
+      description: mog rx net virtual ip
+      default: 107.239.34.5
+    session-manager-vol-2:
+      label: mog-sm-vol-2
+      hidden: false
+      immutable: false
+      type: string
+      description: Session Manager volume 2
+      default: 4c35b5f1-ce99-4220-a6e2-cda6e2d713a0
+    oam-vol-1:
+      label: mog-oam-vol-1
+      hidden: false
+      immutable: false
+      type: string
+      description: OAM volume 1
+      default: 0a7fcd9e-2624-401d-ac21-b0191f85ec77
+    csb_net_start:
+      label: csb internal start
+      hidden: false
+      immutable: false
+      type: string
+      description: csb internal start
+      default: 172.26.0.1
+    cm_image_name:
+      label: image name
+      hidden: false
+      immutable: false
+      type: string
+      description: CM image name
+      default: MOG_BASE_8.0
+    sm_flavor_name:
+      label: SM flavor name
+      hidden: false
+      immutable: false
+      type: string
+      description: flavor name of SM instance
+      default: m2.xlarge4
+    ps_image_name:
+      label: PS image name
+      hidden: false
+      immutable: false
+      type: string
+      description: PS image name
+      default: MOG_BASE_8.0
+    oam_server_names:
+      label: OAM server names
+      hidden: false
+      immutable: false
+      type: list
+      description: name of the OAM instance
+      default:
+      - ZRDM1MOGX01OAM001
+      - ZRDM1MOGX01OAM002
+      entry_schema:
+        type: string
+    csb_net_cidr:
+      label: csb ineternal cidr
+      hidden: false
+      immutable: false
+      type: string
+      description: csb internal cidr
+      default: 172.26.0.0/24
+    cm_server_names:
+      label: CM server names
+      hidden: false
+      immutable: false
+      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
+      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
+      type: string
+      description: Rx network name
+      default: cor_direct_net_1
+    repl_net_name:
+      label: Replication network name
+      hidden: false
+      immutable: false
+      type: string
+      description: name of the replication network
+      default: cor_direct_net_0
+    security_group_name:
+      label: security group name
+      hidden: false
+      immutable: false
+      type: string
+      description: the name of security group
+      default: mog_security_group
+    csb_net_end:
+      label: csb internal end
+      hidden: false
+      immutable: false
+      type: string
+      description: csb internal end
+      default: 172.26.0.254
+    csb_net_name:
+      label: csb internal network name
+      hidden: false
+      immutable: false
+      type: string
+      description: csb internal network name
+      default: int_mog_csb_net
+  node_templates:
+    abstract_pd_server:
+      type: org.openecomp.resource.abstract.nodes.pd_server
+      directives:
+      - substitutable
+      properties:
+        vm_image_name:
+          get_input: pd_image_name
+        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
+        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
+  groups:
+    hot-mog-0108-bs1271_group:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/hot-mog-0108-bs1271.yml
+        description: heat template that creates MOG stack
+      members:
+      - abstract_pd_server
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/noPorts/out/Nested_pd_serverServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/noPorts/out/Nested_pd_serverServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..318fbba
--- /dev/null
@@ -0,0 +1,194 @@
+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.nodes.heat.pd_server:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+  inputs:
+    vm_image_name:
+      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
+    vm_flavor_name:
+      type: string
+      required: true
+    compute_pd_server_user_data_format:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+  node_templates:
+    pd_server:
+      type: org.openecomp.resource.vfc.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:
+      binding_pd_server:
+      - pd_server
+      - binding
+      scalable_pd_server:
+      - pd_server
+      - scalable
+      disk.read.requests_pd_server:
+      - pd_server
+      - disk.read.requests
+      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
+      feature_pd_server:
+      - pd_server
+      - feature
+      disk.usage_pd_server:
+      - pd_server
+      - disk.usage
+      os_pd_server:
+      - pd_server
+      - os
+      disk.write.bytes_pd_server:
+      - pd_server
+      - disk.write.bytes
+      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.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.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
+      disk.device.write.bytes_pd_server:
+      - pd_server
+      - disk.device.write.bytes
+      disk.device.read.requests_pd_server:
+      - pd_server
+      - disk.device.read.requests
+      disk.iops_pd_server:
+      - pd_server
+      - disk.iops
+      instance_pd_server:
+      - pd_server
+      - instance
+      host_pd_server:
+      - pd_server
+      - host
+      memory.resident_pd_server:
+      - pd_server
+      - memory.resident
+      cpu.delta_pd_server:
+      - pd_server
+      - cpu.delta
+      disk.write.requests.rate_pd_server:
+      - pd_server
+      - disk.write.requests.rate
+      vcpus_pd_server:
+      - pd_server
+      - vcpus
+      disk.ephemeral.size_pd_server:
+      - pd_server
+      - disk.ephemeral.size
+      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
+      disk.write.requests_pd_server:
+      - pd_server
+      - disk.write.requests
+      endpoint_pd_server:
+      - pd_server
+      - endpoint
+      disk.device.latency_pd_server:
+      - pd_server
+      - disk.device.latency
+      disk.capacity_pd_server:
+      - pd_server
+      - disk.capacity
+      disk.latency_pd_server:
+      - pd_server
+      - disk.latency
+      disk.device.capacity_pd_server:
+      - pd_server
+      - disk.device.capacity
+      disk.device.allocation_pd_server:
+      - pd_server
+      - disk.device.allocation
+      disk.device.iops_pd_server:
+      - pd_server
+      - disk.device.iops
+      disk.allocation_pd_server:
+      - pd_server
+      - disk.allocation
+    requirements:
+      local_storage_pd_server:
+      - pd_server
+      - local_storage
+      dependency_pd_server:
+      - pd_server
+      - dependency
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/scalingInstance/in/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/scalingInstance/in/GlobalSubstitutionTypesServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..6cea875
--- /dev/null
@@ -0,0 +1,548 @@
+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:
+      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_replacement_policy:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd02_port_network_role_tag:
+        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_pd02_port_replacement_policy:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_pd02_port_network_role:
+        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
+      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_pd02_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_pd01_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_pd02_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_pd02_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd02_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      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_pd02_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_pd01_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd02_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_pd01_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+    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
+    - dependency_pd_server_pd02_port:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_pd_server_pd02_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
+      binding_pd_server_pd02_port:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - 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
+      network.outgoing.packets.rate_pd_server_pd02_port:
+        type: org.openecomp.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
+      network.outgoing.bytes_pd_server_pd02_port:
+        type: org.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_pd02_port:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_pd_server_pd02_port:
+        type: org.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_pd02_port:
+        type: org.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
+      network.incoming.packets_pd_server_pd02_port:
+        type: org.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
+      network.outpoing.packets_pd_server_pd02_port:
+        type: org.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
+      attachment_pd_server_pd02_port:
+        type: tosca.capabilities.Attachment
+        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
+      network.incoming.packets.rate_pd_server_pd02_port:
+        type: org.openecomp.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
+      network.incoming.bytes_pd_server_pd02_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/scalingInstance/in/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/scalingInstance/in/MainServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..c0fc0c4
--- /dev/null
@@ -0,0 +1,208 @@
+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
+      type: string
+      description: flavor name of PD instance
+      default: m3.xlarge
+    availabilityzone_name:
+      label: availabilityzone name
+      hidden: false
+      immutable: false
+      type: string
+      description: availabilityzone name
+      default: nova
+    packet_internal_network_name:
+      label: packet internal network name
+      hidden: false
+      immutable: false
+      type: string
+      description: name of the network
+    pd_image_name:
+      label: image name
+      hidden: false
+      immutable: false
+      type: string
+      description: PD image name
+      default: MOG_BASE_8.0
+    packet_mirror_network_name:
+      label: packet mirror network name
+      hidden: false
+      immutable: false
+      type: string
+      description: name of the network
+    pd_server_names:
+      label: PD server names
+      hidden: false
+      immutable: false
+      type: list
+      description: name of the PD instance
+      default:
+      - ZRDM1MOGX01MPD001
+      - ZRDM1MOGX01MPD002
+      entry_schema:
+        type: string
+  node_templates:
+    packet_mirror_network:
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+      properties:
+        network_name:
+          get_input: packet_mirror_network_name
+    abstract_pd_server:
+      type: org.openecomp.resource.abstract.nodes.pd_server
+      directives:
+      - substitutable
+      properties:
+        compute_pd_server_availability_zone:
+        - get_input: availabilityzone_name
+        - get_input: availabilityzone_name
+        compute_pd_server_name:
+        - get_input:
+          - pd_server_names
+          - 1
+        - get_input:
+          - pd_server_names
+          - 0
+        port_pd01_port_replacement_policy:
+        - AUTO_PORT_1
+        - AUTO_PORT_0
+        vm_flavor_name:
+          get_input: pd_flavor_name
+        port_pd01_port_mac_requirements:
+          mac_count_required:
+            is_required: false
+        vm_image_name:
+          get_input: pd_image_name
+        port_pd02_port_replacement_policy:
+        - AUTO_PORT_1
+        - AUTO_PORT_0
+        port_pd01_port_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        compute_pd_server_user_data_format:
+        - RAW_SERVER_PD_2
+        - RAW_SERVER_PD_1
+        port_pd02_port_mac_requirements:
+          mac_count_required:
+            is_required: false
+        port_pd01_port_network:
+        - packet_internal_network
+        port_pd02_port_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        service_template_filter:
+          substitute_service_template: Nested_pd_serverServiceTemplate.yaml
+          count: 2
+        index_value:
+          get_property:
+          - SELF
+          - service_template_filter
+          - index_value
+      requirements:
+      - link_pd_server_pd01_port:
+          capability: tosca.capabilities.network.Linkable
+          node: packet_internal_network
+          relationship: tosca.relationships.network.LinksTo
+    #Port not connected to network and server
+    pd04_port_0:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        replacement_policy: AUTO_PORT_0
+        ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        mac_requirements:
+          mac_count_required:
+            is_required: false
+    #Port not connected to network and server
+    pd04_port_1:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        replacement_policy: AUTO_PORT_1
+        ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        mac_requirements:
+          mac_count_required:
+            is_required: false
+    #Port connected to network but not server
+    pd03_port_1:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        replacement_policy: AUTO_PORT_1
+        ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        mac_requirements:
+          mac_count_required:
+            is_required: false
+        network: packet_mirror_network
+      requirements:
+      - link:
+          capability: tosca.capabilities.network.Linkable
+          node: packet_mirror_network
+          relationship: tosca.relationships.network.LinksTo
+    packet_internal_network:
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+      properties:
+        network_name:
+          get_input: packet_internal_network_name
+    #Port connected to network but not server
+    pd03_port_0:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        replacement_policy: AUTO_PORT_0
+        ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        mac_requirements:
+          mac_count_required:
+            is_required: false
+        network: packet_internal_network
+      requirements:
+      - link:
+          capability: tosca.capabilities.network.Linkable
+          node: packet_internal_network
+          relationship: tosca.relationships.network.LinksTo
+  groups:
+    hot-mog-0108-bs1271_group:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/hot-mog-0108-bs1271.yml
+        description: heat template that creates MOG stack
+      members:
+      - packet_mirror_network
+      - pd03_port_1
+      - packet_internal_network
+      - pd03_port_0
+      - pd04_port_0
+      - pd04_port_1
+      - abstract_pd_server
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/scalingInstance/in/Nested_pd_serverServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/scalingInstance/in/Nested_pd_serverServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..95cec1b
--- /dev/null
@@ -0,0 +1,405 @@
+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.nodes.heat.pd_server:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+  inputs:
+    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_replacement_policy:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    vm_flavor_name:
+      type: string
+      required: true
+    port_pd02_port_network_role_tag:
+      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_pd02_port_replacement_policy:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_pd01_port_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+    port_pd02_port_network_role:
+      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
+    index_value:
+      type: integer
+      description: Index value of this substitution service template runtime instance
+      required: false
+      default: 0
+      constraints:
+      - greater_or_equal: 0
+    port_pd02_port_mac_requirements:
+      type: org.openecomp.datatypes.network.MacRequirements
+      required: true
+    port_pd01_port_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+    port_pd02_port_order:
+      type: integer
+      required: true
+    port_pd02_port_subnetpoolid:
+      type: string
+      required: true
+    port_pd02_port_vlan_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.VlanRequirements
+    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_pd02_port_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+    port_pd01_port_network_role:
+      type: string
+      required: true
+    port_pd02_port_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+    port_pd01_port_network_role_tag:
+      type: string
+      required: true
+  node_templates:
+    pd_server:
+      type: org.openecomp.resource.vfc.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
+    #Port connected to network and server
+    pd_server_pd01_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        exCP_naming:
+          get_input: port_pd01_port_exCP_naming
+        replacement_policy:
+          get_input:
+          - port_pd01_port_replacement_policy
+          - index_value
+        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
+    #Port connected to server but not network
+    pd_server_pd02_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        exCP_naming:
+          get_input: port_pd02_port_exCP_naming
+        replacement_policy:
+          get_input:
+          - port_pd02_port_replacement_policy
+          - index_value
+        vlan_requirements:
+          get_input: port_pd02_port_vlan_requirements
+        ip_requirements:
+          get_input: port_pd02_port_ip_requirements
+        network_role_tag:
+          get_input: port_pd02_port_network_role_tag
+        mac_requirements:
+          get_input: port_pd02_port_mac_requirements
+        order:
+          get_input: port_pd02_port_order
+        network_role:
+          get_input: port_pd02_port_network_role
+        subnetpoolid:
+          get_input: port_pd02_port_subnetpoolid
+      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
+      binding_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - binding
+      network.outgoing.bytes_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - network.outgoing.bytes
+      network.outgoing.packets.rate_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.outgoing.packets.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.incoming.packets.rate_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - network.incoming.packets.rate
+      network.outgoing.bytes_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.outgoing.bytes
+      feature_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - feature
+      network.incoming.bytes.rate_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.incoming.bytes.rate
+      network.outgoing.bytes.rate_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.outgoing.bytes.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
+      network.incoming.packets_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.incoming.packets
+      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
+      network.outpoing.packets_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.outpoing.packets
+      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
+      attachment_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - attachment
+      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
+      network.incoming.packets.rate_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.incoming.packets.rate
+      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
+      network.incoming.bytes_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.incoming.bytes
+    requirements:
+      local_storage_pd_server:
+      - pd_server
+      - local_storage
+      link_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - link
+      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
+      dependency_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - dependency
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/scalingInstance/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/scalingInstance/out/GlobalSubstitutionTypesServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..34406ed
--- /dev/null
@@ -0,0 +1,518 @@
+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_pd01_port_0_floating_ip_count:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_0_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_0_network_role_tag:
+        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_pd01_port_0_ip_count:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      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_1_floating_ip_count:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_1_ip_count:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_1_mac_count:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_1_network_role_tag:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_0_mac_count:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_1_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      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_1:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_pd_server_pd01_port_1:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_pd_server_pd01_port_0:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_pd_server_pd01_port_0:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    capabilities:
+      binding_pd_server_pd01_port_0:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      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
+      binding_pd_server_pd01_port_1:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - 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.packets_pd_server_pd01_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.iops_pd_server:
+        type: org.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_1:
+        type: org.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_1:
+        type: org.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_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_pd_server_pd01_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_pd_server_pd01_port_1:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_pd_server_pd01_port_1:
+        type: org.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_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      vcpus_pd_server:
+        type: org.openecomp.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
+      attachment_pd_server_pd01_port_0:
+        type: tosca.capabilities.Attachment
+        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
+      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.incoming.packets_pd_server_pd01_port_1:
+        type: org.openecomp.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.outgoing.bytes.rate_pd_server_pd01_port_1:
+        type: org.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_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_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
+      network.incoming.bytes_pd_server_pd01_port_1:
+        type: org.openecomp.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
+      network.outgoing.bytes_pd_server_pd01_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_pd_server_pd01_port_1:
+        type: org.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_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.requests.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
+      network.outpoing.packets_pd_server_pd01_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_pd_server_pd01_port_1:
+        type: org.openecomp.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
+      feature_pd_server_pd01_port_1:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_pd_server_pd01_port_0:
+        type: tosca.capabilities.Node
+        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
+      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
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/scalingInstance/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/scalingInstance/out/MainServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..16223e4
--- /dev/null
@@ -0,0 +1,222 @@
+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
+- openecomp_index:
+    file: openecomp/_index.yml
+topology_template:
+  inputs:
+    pd_flavor_name:
+      label: PD flavor name
+      hidden: false
+      immutable: false
+      type: string
+      description: flavor name of PD instance
+      default: m3.xlarge
+    availabilityzone_name:
+      label: availabilityzone name
+      hidden: false
+      immutable: false
+      type: string
+      description: availabilityzone name
+      default: nova
+    packet_internal_network_name:
+      label: packet internal network name
+      hidden: false
+      immutable: false
+      type: string
+      description: name of the network
+    pd_image_name:
+      label: image name
+      hidden: false
+      immutable: false
+      type: string
+      description: PD image name
+      default: MOG_BASE_8.0
+    packet_mirror_network_name:
+      label: packet mirror network name
+      hidden: false
+      immutable: false
+      type: string
+      description: name of the network
+    pd_server_names:
+      label: PD server names
+      hidden: false
+      immutable: false
+      type: list
+      description: name of the PD instance
+      default:
+      - ZRDM1MOGX01MPD001
+      - ZRDM1MOGX01MPD002
+      entry_schema:
+        type: string
+  node_templates:
+    packet_mirror_network:
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+      properties:
+        network_name:
+          get_input: packet_mirror_network_name
+    abstract_pd_server:
+      type: org.openecomp.resource.abstract.nodes.pd_server
+      directives:
+      - substitutable
+      properties:
+        compute_pd_server_availability_zone:
+        - get_input: availabilityzone_name
+        - get_input: availabilityzone_name
+        compute_pd_server_name:
+        - get_input:
+          - pd_server_names
+          - 1
+        - get_input:
+          - pd_server_names
+          - 0
+        port_pd01_port_replacement_policy:
+        - AUTO_PORT_1
+        - AUTO_PORT_0
+        vm_flavor_name:
+          get_input: pd_flavor_name
+        port_pd01_port_mac_requirements:
+          mac_count_required:
+            is_required: false
+        vm_image_name:
+          get_input: pd_image_name
+        port_pd02_port_replacement_policy:
+        - AUTO_PORT_1
+        - AUTO_PORT_0
+        port_pd01_port_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        compute_pd_server_user_data_format:
+        - RAW_SERVER_PD_2
+        - RAW_SERVER_PD_1
+        port_pd02_port_mac_requirements:
+          mac_count_required:
+            is_required: false
+        port_pd01_port_network:
+        - packet_internal_network
+        port_pd02_port_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        service_template_filter:
+          substitute_service_template: Nested_pd_serverServiceTemplate.yaml
+          count: 2
+        index_value:
+          get_property:
+          - SELF
+          - service_template_filter
+          - index_value
+      requirements:
+      - link_pd_server_pd01_port:
+          capability: tosca.capabilities.network.Linkable
+          node: packet_internal_network
+          relationship: tosca.relationships.network.LinksTo
+    pd04_port_0:
+      type: org.openecomp.resource.cp.v2.extNeutronCP
+      properties:
+        replacement_policy: AUTO_PORT_0
+        ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        mac_requirements:
+          mac_count_required:
+            is_required: false
+      capabilities:
+      - port_mirroring:
+          properties:
+            connection_point:
+              nf_type: ''
+              nfc_type: ''
+              network_role: ''
+              pps_capacity: ''
+    pd04_port_1:
+      type: org.openecomp.resource.cp.v2.extNeutronCP
+      properties:
+        replacement_policy: AUTO_PORT_1
+        ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        mac_requirements:
+          mac_count_required:
+            is_required: false
+      capabilities:
+      - port_mirroring:
+          properties:
+            connection_point:
+              nf_type: ''
+              nfc_type: ''
+              network_role: ''
+              pps_capacity: ''
+    pd03_port_1:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        replacement_policy: AUTO_PORT_1
+        ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        mac_requirements:
+          mac_count_required:
+            is_required: false
+        network: packet_mirror_network
+      requirements:
+      - link:
+          capability: tosca.capabilities.network.Linkable
+          node: packet_mirror_network
+          relationship: tosca.relationships.network.LinksTo
+    packet_internal_network:
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+      properties:
+        network_name:
+          get_input: packet_internal_network_name
+    pd03_port_0:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        replacement_policy: AUTO_PORT_0
+        ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        mac_requirements:
+          mac_count_required:
+            is_required: false
+        network: packet_internal_network
+      requirements:
+      - link:
+          capability: tosca.capabilities.network.Linkable
+          node: packet_internal_network
+          relationship: tosca.relationships.network.LinksTo
+  groups:
+    hot-mog-0108-bs1271_group:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/hot-mog-0108-bs1271.yml
+        description: heat template that creates MOG stack
+      members:
+      - packet_mirror_network
+      - pd03_port_1
+      - packet_internal_network
+      - pd03_port_0
+      - pd04_port_0
+      - pd04_port_1
+      - abstract_pd_server
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/scalingInstance/out/Nested_pd_serverServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/scalingInstance/out/Nested_pd_serverServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..24fb171
--- /dev/null
@@ -0,0 +1,417 @@
+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
+- openecomp_index:
+    file: openecomp/_index.yml
+node_types:
+  org.openecomp.resource.vfc.nodes.heat.pd_server:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+  inputs:
+    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_replacement_policy:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    vm_flavor_name:
+      type: string
+      required: true
+    port_pd02_port_network_role_tag:
+      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_pd02_port_replacement_policy:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_pd01_port_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+    port_pd02_port_network_role:
+      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
+    index_value:
+      type: integer
+      description: Index value of this substitution service template runtime instance
+      required: false
+      default: 0
+      constraints:
+      - greater_or_equal: 0
+    port_pd02_port_mac_requirements:
+      type: org.openecomp.datatypes.network.MacRequirements
+      required: true
+    port_pd01_port_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+    port_pd02_port_order:
+      type: integer
+      required: true
+    port_pd02_port_subnetpoolid:
+      type: string
+      required: true
+    port_pd02_port_vlan_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.VlanRequirements
+    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_pd02_port_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+    port_pd01_port_network_role:
+      type: string
+      required: true
+    port_pd02_port_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+    port_pd01_port_network_role_tag:
+      type: string
+      required: true
+  node_templates:
+    pd_server:
+      type: org.openecomp.resource.vfc.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
+        replacement_policy:
+          get_input:
+          - port_pd01_port_replacement_policy
+          - index_value
+        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
+    pd_server_pd02_port:
+      type: org.openecomp.resource.cp.v2.extNeutronCP
+      properties:
+        replacement_policy:
+          get_input:
+          - port_pd02_port_replacement_policy
+          - index_value
+        ip_requirements:
+          get_input: port_pd02_port_ip_requirements
+        network_role:
+          get_input: port_pd02_port_network_role
+        subnetpoolid:
+          get_input: port_pd02_port_subnetpoolid
+        mac_requirements:
+          get_input: port_pd02_port_mac_requirements
+        exCP_naming:
+          get_input: port_pd02_port_exCP_naming
+        vlan_requirements:
+          get_input: port_pd02_port_vlan_requirements
+        network_role_tag:
+          get_input: port_pd02_port_network_role_tag
+        order:
+          get_input: port_pd02_port_order
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: pd_server
+          relationship: tosca.relationships.network.BindsTo
+      capabilities:
+      - port_mirroring:
+          properties:
+            connection_point:
+              nf_type: ''
+              nfc_type: pd_server
+              network_role:
+                get_input: port_pd02_port_network_role
+              pps_capacity: ''
+  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
+      binding_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - binding
+      network.outgoing.bytes_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - network.outgoing.bytes
+      network.outgoing.packets.rate_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.outgoing.packets.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.incoming.packets.rate_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - network.incoming.packets.rate
+      network.outgoing.bytes_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.outgoing.bytes
+      feature_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - feature
+      network.incoming.bytes.rate_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.incoming.bytes.rate
+      network.outgoing.bytes.rate_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.outgoing.bytes.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
+      network.incoming.packets_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.incoming.packets
+      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
+      network.outpoing.packets_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.outpoing.packets
+      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
+      attachment_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - attachment
+      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
+      network.incoming.packets.rate_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.incoming.packets.rate
+      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
+      network.incoming.bytes_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.incoming.bytes
+      port_mirroring_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - port_mirroring
+    requirements:
+      local_storage_pd_server:
+      - pd_server
+      - local_storage
+      link_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - link
+      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
+      dependency_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - dependency
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/singleSubstitution/diffPortType/in/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/singleSubstitution/diffPortType/in/GlobalSubstitutionTypesServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..491894b
--- /dev/null
@@ -0,0 +1,827 @@
+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_pd01_port_replacement_policy:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_template_VMInt_OAM_lb_internal_VMI_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_template_VMInt_OAM_lb_internal_VMI_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_template_VMInt_OAM_lb_internal_VMI_virtual_machine_interface_properties:
+        type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.interface.Properties
+        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_template_VMInt_OAM_lb_internal_VMI_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_pd03_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_pd01_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_pd03_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_pd03_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_template_VMInt_OAM_lb_internal_VMI_virtual_network_refs:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
+      port_pd03_port_replacement_policy:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd02_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_template_VMInt_OAM_lb_internal_VMI_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_pd01_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_template_VMInt_OAM_lb_internal_VMI_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_pd02_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_pd03_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_pd03_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_template_VMInt_OAM_lb_internal_VMI_virtual_machine_interface_mac_addresses:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
+      port_template_VMInt_OAM_lb_internal_VMI_port_tuple_refs:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
+      port_pd02_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_pd01_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_template_VMInt_OAM_lb_internal_VMI_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_template_VMInt_OAM_lb_internal_VMI_security_group_refs:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
+      compute_pd_server_contrail_service_instance_ind:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: boolean
+      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_pd02_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd03_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_template_VMInt_OAM_lb_internal_VMI_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd02_port_replacement_policy:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_pd02_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd03_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_template_VMInt_OAM_lb_internal_VMI_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd03_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      compute_pd_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_template_VMInt_OAM_lb_internal_VMI_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_pd02_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_pd02_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      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_pd02_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_pd01_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd02_port_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_template_VMInt_OAM_lb_internal_VMI_virtual_machine_interface_allowed_address_pairs:
+        type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairs
+        required: true
+        status: SUPPORTED
+    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
+    - dependency_pd_server_pd02_port:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_pd_server_pd02_port:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_pd_server_template_VMInt_OAM_lb_internal_VMI:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_pd_server_template_VMInt_OAM_lb_internal_VMI:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_pd_server_pd03_port:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_pd_server_pd03_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
+      network.incoming.bytes.rate_pd_server_pd03_port:
+        type: org.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
+      binding_pd_server_pd03_port:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      network.incoming.packets_pd_server_template_VMInt_OAM_lb_internal_VMI:
+        type: org.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
+      binding_pd_server_pd02_port:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - 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
+      network.outgoing.packets.rate_pd_server_pd02_port:
+        type: org.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_pd03_port:
+        type: org.openecomp.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
+      network.outgoing.bytes_pd_server_pd02_port:
+        type: org.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_pd02_port:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_pd_server_pd02_port:
+        type: org.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_pd02_port:
+        type: org.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
+      network.outpoing.packets_pd_server_template_VMInt_OAM_lb_internal_VMI:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.capacity_pd_server:
+        type: org.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_template_VMInt_OAM_lb_internal_VMI:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - 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
+      network.incoming.packets_pd_server_pd02_port:
+        type: org.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.outgoing.bytes_pd_server_pd03_port:
+        type: org.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
+      network.incoming.bytes.rate_pd_server_template_VMInt_OAM_lb_internal_VMI:
+        type: org.openecomp.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_pd_server:
+        type: org.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_pd02_port:
+        type: org.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_pd03_port:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_pd_server_pd03_port:
+        type: org.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
+      network.incoming.bytes_pd_server_template_VMInt_OAM_lb_internal_VMI:
+        type: org.openecomp.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
+      network.incoming.packets.rate_pd_server_pd03_port:
+        type: org.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
+      feature_pd_server_template_VMInt_OAM_lb_internal_VMI:
+        type: tosca.capabilities.Node
+        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
+      network.outgoing.bytes.rate_pd_server_pd03_port:
+        type: org.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_pd03_port:
+        type: tosca.capabilities.Node
+        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
+      network.outpoing.packets_pd_server_pd03_port:
+        type: org.openecomp.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
+      network.incoming.packets_pd_server_pd03_port:
+        type: org.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
+      attachment_pd_server_pd02_port:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_pd_server_template_VMInt_OAM_lb_internal_VMI:
+        type: org.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_template_VMInt_OAM_lb_internal_VMI:
+        type: org.openecomp.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
+      network.outgoing.bytes_pd_server_template_VMInt_OAM_lb_internal_VMI:
+        type: org.openecomp.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
+      network.incoming.packets.rate_pd_server_pd02_port:
+        type: org.openecomp.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
+      network.outgoing.packets.rate_pd_server_template_VMInt_OAM_lb_internal_VMI:
+        type: org.openecomp.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
+      network.incoming.bytes_pd_server_pd02_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/singleSubstitution/diffPortType/in/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/singleSubstitution/diffPortType/in/MainServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..f28aae9
--- /dev/null
@@ -0,0 +1,352 @@
+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
+      type: string
+      description: flavor name of PD instance
+      default: m3.xlarge
+    dummy_net_name_1:
+      label: csb ineternal cidr
+      hidden: false
+      immutable: false
+      type: string
+      description: csb internal cidr
+    availabilityzone_name:
+      label: availabilityzone name
+      hidden: false
+      immutable: false
+      type: string
+      description: availabilityzone name
+      default: nova
+    template_PortTuple_LB1:
+      hidden: false
+      immutable: false
+      type: string
+      description: dummy
+    lb_st_interface_type_oam:
+      hidden: false
+      immutable: false
+      type: string
+      description: dummy
+    oam_sec_group_name:
+      hidden: false
+      immutable: false
+      type: string
+      description: dummy
+    virtual_ip_address:
+      hidden: false
+      immutable: false
+      type: string
+      description: dummy
+    nems_traffic_name:
+      hidden: false
+      immutable: false
+      type: string
+      description: dummy
+    packet_internal_network_name:
+      label: packet internal network name
+      hidden: false
+      immutable: false
+      type: string
+      description: name of the network
+    oam_flavor_name:
+      label: OAM flavor name
+      hidden: false
+      immutable: false
+      type: string
+      description: flavor name of OAM instance
+      default: m3.xlarge
+    pd_image_name:
+      label: image name
+      hidden: false
+      immutable: false
+      type: string
+      description: PD image name
+      default: MOG_BASE_8.0
+    packet_mirror_network_name:
+      label: packet mirror network name
+      hidden: false
+      immutable: false
+      type: string
+      description: name of the network
+      default: packet-net-1
+    pd_server_names:
+      label: PD server names
+      hidden: false
+      immutable: false
+      type: list
+      description: name of the PD instance
+      default:
+      - ZRDM1MOGX01MPD001
+      - ZRDM1MOGX01MPD002
+      entry_schema:
+        type: string
+    pd01_volume_type:
+      label: volume type
+      hidden: false
+      immutable: false
+      type: string
+      description: volume type
+      default: volume_type_1
+    jsa_net_name:
+      hidden: false
+      immutable: false
+      type: string
+      description: dummy
+    pd_port_fixed_ips_address:
+      hidden: false
+      immutable: false
+      type: string
+      description: dummy
+    parent_interface:
+      hidden: false
+      immutable: false
+      type: string
+      description: dummy
+    virtual_ipv6_address:
+      hidden: false
+      immutable: false
+      type: string
+      description: dummy
+    mac_address:
+      hidden: false
+      immutable: false
+      type: string
+      description: dummy
+    pd01_cinder_volume_size:
+      label: volume size
+      hidden: false
+      immutable: false
+      type: string
+      description: volume size
+      default: 1024
+    pd_port_fixed_ips_subnet:
+      hidden: false
+      immutable: false
+      type: string
+      description: dummy
+    oam_net_name:
+      label: oam network name
+      hidden: false
+      immutable: false
+      type: string
+      description: name of the oam network
+      default: oam_protected_net_0
+    lb_st_interface_vlan_tag_oam:
+      hidden: false
+      immutable: false
+      type: string
+      description: dummy
+  node_templates:
+    packet_mirror_network:
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+      properties:
+        network_name:
+          get_input: packet_mirror_network_name
+    jsa_net4:
+      type: org.openecomp.resource.vl.nodes.heat.network.contrailV2.VirtualNetwork
+      properties:
+        network_name:
+          get_input: nems_traffic_name
+    pd01_volume:
+      type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
+      properties:
+        volume_type:
+          get_input: pd01_volume_type
+        size: '(get_input : pd01_cinder_volume_size) * 1024'
+    abstract_pd_server:
+      type: org.openecomp.resource.abstract.nodes.pd_server
+      directives:
+      - substitutable
+      properties:
+        port_pd01_port_replacement_policy:
+        - AUTO
+        vm_flavor_name:
+          get_input: pd_flavor_name
+        port_template_VMInt_OAM_lb_internal_VMI_name:
+        - template_VMInt_OAM_lb_NAME
+        port_pd01_port_mac_requirements:
+          mac_count_required:
+            is_required: false
+        vm_image_name:
+          get_input: pd_image_name
+        port_pd03_port_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        port_template_VMInt_OAM_lb_internal_VMI_virtual_network_refs:
+        - - get_attribute:
+            - jsa_net4
+            - fq_name
+        port_pd03_port_replacement_policy:
+        - AUTO
+        port_pd02_port_mac_requirements:
+          mac_count_required:
+            is_required: false
+        port_pd03_port_mac_requirements:
+          mac_count_required:
+            is_required: false
+        port_template_VMInt_OAM_lb_internal_VMI_virtual_machine_interface_mac_addresses:
+        - - get_input: mac_address
+        port_template_VMInt_OAM_lb_internal_VMI_port_tuple_refs:
+        - - get_input: template_PortTuple_LB1
+        port_pd02_port_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        port_template_VMInt_OAM_lb_internal_VMI_security_group_refs:
+        - - get_input: oam_sec_group_name
+        compute_pd_server_contrail_service_instance_ind:
+        - true
+        compute_pd_server_availability_zone:
+        - get_input: availabilityzone_name
+        compute_pd_server_name:
+        - get_input:
+          - pd_server_names
+          - 0
+        port_pd02_port_replacement_policy:
+        - AUTO
+        port_pd01_port_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        compute_pd_server_user_data_format:
+        - RAW
+        port_pd01_port_network:
+        - packet_mirror_network
+        port_pd02_port_network:
+        - packet_internal_network
+        service_template_filter:
+          substitute_service_template: Nested_pd_serverServiceTemplate.yaml
+          count: 1
+        index_value:
+          get_property:
+          - SELF
+          - service_template_filter
+          - index_value
+      requirements:
+      - dependency_pd_server:
+          capability: tosca.capabilities.Node
+          node: packet_mirror_network
+          relationship: tosca.relationships.DependsOn
+      - link_pd_server_pd01_port:
+          capability: tosca.capabilities.network.Linkable
+          node: packet_mirror_network
+          relationship: tosca.relationships.network.LinksTo
+      - link_pd_server_pd02_port:
+          capability: tosca.capabilities.network.Linkable
+          node: packet_internal_network
+          relationship: tosca.relationships.network.LinksTo
+      - link_pd_server_template_VMInt_OAM_lb_internal_VMI:
+          capability: tosca.capabilities.network.Linkable
+          node: jsa_net4
+          relationship: tosca.relationships.network.LinksTo
+      - local_storage_pd_server:
+          capability: tosca.capabilities.Attachment
+          node: pd01_volume
+          relationship: pd01_volume_attachment
+    #Port not connected to network and server -> External
+    pd04_port_0:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        replacement_policy: AUTO
+        ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        mac_requirements:
+          mac_count_required:
+            is_required: false
+    template_VMInt_OAM_lb_external_VMI:
+      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface
+      properties:
+        name: template_VMInt_OAM_lb_NAME
+        security_group_refs:
+        - get_input: oam_sec_group_name
+        virtual_machine_interface_properties:
+          service_interface_type:
+            get_input: lb_st_interface_type_oam
+        port_tuple_refs:
+        - get_input: template_PortTuple_LB1
+        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:
+        - get_input: mac_address
+    #Port connected to network but not connected to server -> Internal
+    pd05_port_0:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        replacement_policy: AUTO
+        ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        mac_requirements:
+          mac_count_required:
+            is_required: false
+        network: packet_mirror_network
+      requirements:
+      - link:
+          capability: tosca.capabilities.network.Linkable
+          node: packet_mirror_network
+          relationship: tosca.relationships.network.LinksTo
+    packet_internal_network:
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+      properties:
+        network_name:
+          get_input: packet_internal_network_name
+  relationship_templates:
+    pd01_volume_attachment:
+      type: org.openecomp.relationships.VolumeAttachesTo
+      properties:
+        volume_id: pd01_volume
+        instance_uuid: abstract_pd_server
+  groups:
+    hot-mog-0108-bs1271_group:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/hot-mog-0108-bs1271.yml
+        description: heat template that creates MOG stack
+      members:
+      - packet_mirror_network
+      - jsa_net4
+      - pd01_volume
+      - packet_internal_network
+      - pd04_port_0
+      - template_VMInt_OAM_lb_external_VMI
+      - pd05_port_0
+      - abstract_pd_server
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/singleSubstitution/diffPortType/in/Nested_pd_serverServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/singleSubstitution/diffPortType/in/Nested_pd_serverServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..df20b89
--- /dev/null
@@ -0,0 +1,669 @@
+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.nodes.heat.pd_server:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+  inputs:
+    port_pd01_port_replacement_policy:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    vm_flavor_name:
+      type: string
+      required: true
+    port_template_VMInt_OAM_lb_internal_VMI_order:
+      type: integer
+      required: true
+    port_template_VMInt_OAM_lb_internal_VMI_name:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_template_VMInt_OAM_lb_internal_VMI_virtual_machine_interface_properties:
+      type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.interface.Properties
+      required: true
+    port_pd01_port_mac_requirements:
+      type: org.openecomp.datatypes.network.MacRequirements
+      required: true
+    vm_image_name:
+      type: string
+      required: true
+    port_template_VMInt_OAM_lb_internal_VMI_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+    port_pd03_port_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+    port_pd01_port_vlan_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.VlanRequirements
+    port_pd03_port_order:
+      type: integer
+      required: true
+    port_pd03_port_network_role:
+      type: string
+      required: true
+    port_template_VMInt_OAM_lb_internal_VMI_virtual_network_refs:
+      type: list
+      required: true
+      entry_schema:
+        type: json
+    port_pd03_port_replacement_policy:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_pd02_port_mac_requirements:
+      type: org.openecomp.datatypes.network.MacRequirements
+      required: true
+    port_template_VMInt_OAM_lb_internal_VMI_vlan_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.VlanRequirements
+    port_pd01_port_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+    port_template_VMInt_OAM_lb_internal_VMI_mac_requirements:
+      type: org.openecomp.datatypes.network.MacRequirements
+      required: true
+    port_pd02_port_vlan_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.VlanRequirements
+    port_pd03_port_mac_requirements:
+      type: org.openecomp.datatypes.network.MacRequirements
+      required: true
+    port_pd03_port_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+    port_template_VMInt_OAM_lb_internal_VMI_virtual_machine_interface_mac_addresses:
+      type: list
+      required: true
+      entry_schema:
+        type: json
+    port_template_VMInt_OAM_lb_internal_VMI_port_tuple_refs:
+      type: list
+      required: true
+      entry_schema:
+        type: json
+    port_pd02_port_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+    port_pd01_port_network_role_tag:
+      type: string
+      required: true
+    port_template_VMInt_OAM_lb_internal_VMI_network_role_tag:
+      type: string
+      required: true
+    port_template_VMInt_OAM_lb_internal_VMI_security_group_refs:
+      type: list
+      required: true
+      entry_schema:
+        type: json
+    compute_pd_server_contrail_service_instance_ind:
+      type: list
+      required: true
+      entry_schema:
+        type: boolean
+    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_pd02_port_network_role_tag:
+      type: string
+      required: true
+    port_pd03_port_vlan_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.VlanRequirements
+    port_template_VMInt_OAM_lb_internal_VMI_subnetpoolid:
+      type: string
+      required: true
+    port_pd02_port_replacement_policy:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_pd01_port_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+    port_pd02_port_network_role:
+      type: string
+      required: true
+    port_pd03_port_network_role_tag:
+      type: string
+      required: true
+    port_template_VMInt_OAM_lb_internal_VMI_network_role:
+      type: string
+      required: true
+    port_pd03_port_subnetpoolid:
+      type: string
+      required: true
+    compute_pd_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_template_VMInt_OAM_lb_internal_VMI_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+    port_pd02_port_order:
+      type: integer
+      required: true
+    port_pd02_port_subnetpoolid:
+      type: string
+      required: true
+    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_pd02_port_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+    port_pd01_port_network_role:
+      type: string
+      required: true
+    port_pd02_port_network:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_template_VMInt_OAM_lb_internal_VMI_virtual_machine_interface_allowed_address_pairs:
+      type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairs
+      required: true
+  node_templates:
+    pd_server:
+      type: org.openecomp.resource.vfc.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
+        contrail_service_instance_ind:
+          get_input:
+          - compute_pd_server_contrail_service_instance_ind
+          - index_value
+        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
+        replacement_policy:
+          get_input:
+          - port_pd01_port_replacement_policy
+          - index_value
+        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
+    pd_server_pd02_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        exCP_naming:
+          get_input: port_pd02_port_exCP_naming
+        replacement_policy:
+          get_input:
+          - port_pd02_port_replacement_policy
+          - index_value
+        vlan_requirements:
+          get_input: port_pd02_port_vlan_requirements
+        ip_requirements:
+          get_input: port_pd02_port_ip_requirements
+        network_role_tag:
+          get_input: port_pd02_port_network_role_tag
+        mac_requirements:
+          get_input: port_pd02_port_mac_requirements
+        order:
+          get_input: port_pd02_port_order
+        network_role:
+          get_input: port_pd02_port_network_role
+        subnetpoolid:
+          get_input: port_pd02_port_subnetpoolid
+        network:
+          get_input:
+          - port_pd02_port_network
+          - index_value
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: pd_server
+          relationship: tosca.relationships.network.BindsTo
+    pd_server_template_VMInt_OAM_lb_internal_VMI:
+      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface
+      properties:
+        mac_requirements:
+          get_input: port_template_VMInt_OAM_lb_internal_VMI_mac_requirements
+        order:
+          get_input: port_template_VMInt_OAM_lb_internal_VMI_order
+        exCP_naming:
+          get_input: port_template_VMInt_OAM_lb_internal_VMI_exCP_naming
+        virtual_machine_interface_allowed_address_pairs:
+          get_input:
+          - port_template_VMInt_OAM_lb_internal_VMI_virtual_machine_interface_allowed_address_pairs
+          - index_value
+        vlan_requirements:
+          get_input: port_template_VMInt_OAM_lb_internal_VMI_vlan_requirements
+        virtual_machine_interface_properties:
+          get_input:
+          - port_template_VMInt_OAM_lb_internal_VMI_virtual_machine_interface_properties
+          - index_value
+        security_group_refs:
+          get_input:
+          - port_template_VMInt_OAM_lb_internal_VMI_security_group_refs
+          - index_value
+        virtual_network_refs:
+          get_input:
+          - port_template_VMInt_OAM_lb_internal_VMI_virtual_network_refs
+          - index_value
+        ip_requirements:
+          get_input: port_template_VMInt_OAM_lb_internal_VMI_ip_requirements
+        network_role_tag:
+          get_input: port_template_VMInt_OAM_lb_internal_VMI_network_role_tag
+        virtual_machine_interface_mac_addresses:
+          get_input:
+          - port_template_VMInt_OAM_lb_internal_VMI_virtual_machine_interface_mac_addresses
+          - index_value
+        port_tuple_refs:
+          get_input:
+          - port_template_VMInt_OAM_lb_internal_VMI_port_tuple_refs
+          - index_value
+        network_role:
+          get_input: port_template_VMInt_OAM_lb_internal_VMI_network_role
+        subnetpoolid:
+          get_input: port_template_VMInt_OAM_lb_internal_VMI_subnetpoolid
+        name:
+          get_input:
+          - port_template_VMInt_OAM_lb_internal_VMI_name
+          - index_value
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: pd_server
+          relationship: tosca.relationships.network.BindsTo
+    #Port connected to server but not connected to network -> External
+    pd_server_pd03_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        exCP_naming:
+          get_input: port_pd03_port_exCP_naming
+        replacement_policy:
+          get_input:
+          - port_pd03_port_replacement_policy
+          - index_value
+        vlan_requirements:
+          get_input: port_pd03_port_vlan_requirements
+        ip_requirements:
+          get_input: port_pd03_port_ip_requirements
+        network_role_tag:
+          get_input: port_pd03_port_network_role_tag
+        mac_requirements:
+          get_input: port_pd03_port_mac_requirements
+        order:
+          get_input: port_pd03_port_order
+        network_role:
+          get_input: port_pd03_port_network_role
+        subnetpoolid:
+          get_input: port_pd03_port_subnetpoolid
+      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
+      network.incoming.bytes.rate_pd_server_pd03_port:
+      - pd_server_pd03_port
+      - network.incoming.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
+      binding_pd_server_pd03_port:
+      - pd_server_pd03_port
+      - binding
+      network.incoming.packets_pd_server_template_VMInt_OAM_lb_internal_VMI:
+      - pd_server_template_VMInt_OAM_lb_internal_VMI
+      - network.incoming.packets
+      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
+      binding_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - binding
+      network.outgoing.bytes_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - network.outgoing.bytes
+      network.outgoing.packets.rate_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.outgoing.packets.rate
+      network.incoming.bytes_pd_server_pd03_port:
+      - pd_server_pd03_port
+      - network.incoming.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
+      network.outgoing.bytes_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.outgoing.bytes
+      feature_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - feature
+      network.incoming.bytes.rate_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.incoming.bytes.rate
+      network.outgoing.bytes.rate_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.outgoing.bytes.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
+      network.outpoing.packets_pd_server_template_VMInt_OAM_lb_internal_VMI:
+      - pd_server_template_VMInt_OAM_lb_internal_VMI
+      - network.outpoing.packets
+      disk.capacity_pd_server:
+      - pd_server
+      - disk.capacity
+      binding_pd_server_template_VMInt_OAM_lb_internal_VMI:
+      - pd_server_template_VMInt_OAM_lb_internal_VMI
+      - binding
+      disk.device.allocation_pd_server:
+      - pd_server
+      - disk.device.allocation
+      disk.allocation_pd_server:
+      - pd_server
+      - disk.allocation
+      network.incoming.packets_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.incoming.packets
+      binding_pd_server:
+      - pd_server
+      - binding
+      disk.read.requests_pd_server:
+      - pd_server
+      - disk.read.requests
+      network.outgoing.bytes_pd_server_pd03_port:
+      - pd_server_pd03_port
+      - network.outgoing.bytes
+      feature_pd_server:
+      - pd_server
+      - feature
+      network.incoming.bytes.rate_pd_server_template_VMInt_OAM_lb_internal_VMI:
+      - pd_server_template_VMInt_OAM_lb_internal_VMI
+      - network.incoming.bytes.rate
+      disk.usage_pd_server:
+      - pd_server
+      - disk.usage
+      network.outpoing.packets_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.outpoing.packets
+      attachment_pd_server_pd03_port:
+      - pd_server_pd03_port
+      - attachment
+      network.outgoing.packets.rate_pd_server_pd03_port:
+      - pd_server_pd03_port
+      - network.outgoing.packets.rate
+      binding_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - binding
+      network.incoming.bytes_pd_server_template_VMInt_OAM_lb_internal_VMI:
+      - pd_server_template_VMInt_OAM_lb_internal_VMI
+      - network.incoming.bytes
+      disk.write.bytes_pd_server:
+      - pd_server
+      - disk.write.bytes
+      network.incoming.packets.rate_pd_server_pd03_port:
+      - pd_server_pd03_port
+      - network.incoming.packets.rate
+      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
+      feature_pd_server_template_VMInt_OAM_lb_internal_VMI:
+      - pd_server_template_VMInt_OAM_lb_internal_VMI
+      - feature
+      disk.device.read.bytes_pd_server:
+      - pd_server
+      - disk.device.read.bytes
+      network.outgoing.bytes.rate_pd_server_pd03_port:
+      - pd_server_pd03_port
+      - network.outgoing.bytes.rate
+      feature_pd_server_pd03_port:
+      - pd_server_pd03_port
+      - feature
+      disk.device.write.bytes_pd_server:
+      - pd_server
+      - disk.device.write.bytes
+      network.outpoing.packets_pd_server_pd03_port:
+      - pd_server_pd03_port
+      - network.outpoing.packets
+      disk.device.read.requests_pd_server:
+      - pd_server
+      - disk.device.read.requests
+      network.incoming.packets_pd_server_pd03_port:
+      - pd_server_pd03_port
+      - network.incoming.packets
+      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
+      attachment_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - attachment
+      network.outgoing.bytes.rate_pd_server_template_VMInt_OAM_lb_internal_VMI:
+      - pd_server_template_VMInt_OAM_lb_internal_VMI
+      - network.outgoing.bytes.rate
+      network.incoming.packets.rate_pd_server_template_VMInt_OAM_lb_internal_VMI:
+      - pd_server_template_VMInt_OAM_lb_internal_VMI
+      - network.incoming.packets.rate
+      disk.write.requests.rate_pd_server:
+      - pd_server
+      - disk.write.requests.rate
+      disk.ephemeral.size_pd_server:
+      - pd_server
+      - disk.ephemeral.size
+      network.outgoing.bytes_pd_server_template_VMInt_OAM_lb_internal_VMI:
+      - pd_server_template_VMInt_OAM_lb_internal_VMI
+      - network.outgoing.bytes
+      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
+      network.incoming.packets.rate_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.incoming.packets.rate
+      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
+      network.outgoing.packets.rate_pd_server_template_VMInt_OAM_lb_internal_VMI:
+      - pd_server_template_VMInt_OAM_lb_internal_VMI
+      - network.outgoing.packets.rate
+      disk.device.iops_pd_server:
+      - pd_server
+      - disk.device.iops
+      network.incoming.bytes_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.incoming.bytes
+    requirements:
+      local_storage_pd_server:
+      - pd_server
+      - local_storage
+      link_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - link
+      dependency_pd_server_template_VMInt_OAM_lb_internal_VMI:
+      - pd_server_template_VMInt_OAM_lb_internal_VMI
+      - dependency
+      link_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - link
+      dependency_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - dependency
+      link_pd_server_template_VMInt_OAM_lb_internal_VMI:
+      - pd_server_template_VMInt_OAM_lb_internal_VMI
+      - link
+      dependency_pd_server:
+      - pd_server
+      - dependency
+      dependency_pd_server_pd03_port:
+      - pd_server_pd03_port
+      - dependency
+      link_pd_server_pd03_port:
+      - pd_server_pd03_port
+      - link
+      dependency_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - dependency
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/singleSubstitution/diffPortType/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/singleSubstitution/diffPortType/out/GlobalSubstitutionTypesServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..34406ed
--- /dev/null
@@ -0,0 +1,518 @@
+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_pd01_port_0_floating_ip_count:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_0_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_0_network_role_tag:
+        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_pd01_port_0_ip_count:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      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_1_floating_ip_count:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_1_ip_count:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_1_mac_count:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_1_network_role_tag:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_0_mac_count:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_1_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      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_1:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_pd_server_pd01_port_1:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_pd_server_pd01_port_0:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_pd_server_pd01_port_0:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    capabilities:
+      binding_pd_server_pd01_port_0:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      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
+      binding_pd_server_pd01_port_1:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - 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.packets_pd_server_pd01_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.iops_pd_server:
+        type: org.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_1:
+        type: org.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_1:
+        type: org.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_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_pd_server_pd01_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_pd_server_pd01_port_1:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_pd_server_pd01_port_1:
+        type: org.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_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      vcpus_pd_server:
+        type: org.openecomp.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
+      attachment_pd_server_pd01_port_0:
+        type: tosca.capabilities.Attachment
+        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
+      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.incoming.packets_pd_server_pd01_port_1:
+        type: org.openecomp.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.outgoing.bytes.rate_pd_server_pd01_port_1:
+        type: org.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_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_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
+      network.incoming.bytes_pd_server_pd01_port_1:
+        type: org.openecomp.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
+      network.outgoing.bytes_pd_server_pd01_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_pd_server_pd01_port_1:
+        type: org.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_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.requests.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
+      network.outpoing.packets_pd_server_pd01_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_pd_server_pd01_port_1:
+        type: org.openecomp.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
+      feature_pd_server_pd01_port_1:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_pd_server_pd01_port_0:
+        type: tosca.capabilities.Node
+        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
+      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
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/singleSubstitution/diffPortType/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/singleSubstitution/diffPortType/out/MainServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..4b93530
--- /dev/null
@@ -0,0 +1,341 @@
+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
+- openecomp_index:
+    file: openecomp/_index.yml
+topology_template:
+  inputs:
+    pd_flavor_name:
+      label: PD flavor name
+      hidden: false
+      immutable: false
+      type: string
+      description: flavor name of PD instance
+      default: m3.xlarge
+    dummy_net_name_1:
+      label: csb ineternal cidr
+      hidden: false
+      immutable: false
+      type: string
+      description: csb internal cidr
+    availabilityzone_name:
+      label: availabilityzone name
+      hidden: false
+      immutable: false
+      type: string
+      description: availabilityzone name
+      default: nova
+    template_PortTuple_LB1:
+      hidden: false
+      immutable: false
+      type: string
+      description: dummy
+    lb_st_interface_type_oam:
+      hidden: false
+      immutable: false
+      type: string
+      description: dummy
+    oam_sec_group_name:
+      hidden: false
+      immutable: false
+      type: string
+      description: dummy
+    virtual_ip_address:
+      hidden: false
+      immutable: false
+      type: string
+      description: dummy
+    nems_traffic_name:
+      hidden: false
+      immutable: false
+      type: string
+      description: dummy
+    packet_internal_network_name:
+      label: packet internal network name
+      hidden: false
+      immutable: false
+      type: string
+      description: name of the network
+    oam_flavor_name:
+      label: OAM flavor name
+      hidden: false
+      immutable: false
+      type: string
+      description: flavor name of OAM instance
+      default: m3.xlarge
+    pd_image_name:
+      label: image name
+      hidden: false
+      immutable: false
+      type: string
+      description: PD image name
+      default: MOG_BASE_8.0
+    packet_mirror_network_name:
+      label: packet mirror network name
+      hidden: false
+      immutable: false
+      type: string
+      description: name of the network
+      default: packet-net-1
+    pd_server_names:
+      label: PD server names
+      hidden: false
+      immutable: false
+      type: list
+      description: name of the PD instance
+      default:
+      - ZRDM1MOGX01MPD001
+      - ZRDM1MOGX01MPD002
+      entry_schema:
+        type: string
+    pd01_volume_type:
+      label: volume type
+      hidden: false
+      immutable: false
+      type: string
+      description: volume type
+      default: volume_type_1
+    jsa_net_name:
+      hidden: false
+      immutable: false
+      type: string
+      description: dummy
+    pd_port_fixed_ips_address:
+      hidden: false
+      immutable: false
+      type: string
+      description: dummy
+    parent_interface:
+      hidden: false
+      immutable: false
+      type: string
+      description: dummy
+    virtual_ipv6_address:
+      hidden: false
+      immutable: false
+      type: string
+      description: dummy
+    mac_address:
+      hidden: false
+      immutable: false
+      type: string
+      description: dummy
+    pd01_cinder_volume_size:
+      label: volume size
+      hidden: false
+      immutable: false
+      type: string
+      description: volume size
+      default: 1024
+    pd_port_fixed_ips_subnet:
+      hidden: false
+      immutable: false
+      type: string
+      description: dummy
+    oam_net_name:
+      label: oam network name
+      hidden: false
+      immutable: false
+      type: string
+      description: name of the oam network
+      default: oam_protected_net_0
+    lb_st_interface_vlan_tag_oam:
+      hidden: false
+      immutable: false
+      type: string
+      description: dummy
+  node_templates:
+    packet_mirror_network:
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+      properties:
+        network_name:
+          get_input: packet_mirror_network_name
+    jsa_net4:
+      type: org.openecomp.resource.vl.nodes.heat.network.contrailV2.VirtualNetwork
+      properties:
+        network_name:
+          get_input: nems_traffic_name
+    pd01_volume:
+      type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
+      properties:
+        volume_type:
+          get_input: pd01_volume_type
+        size: '(get_input : pd01_cinder_volume_size) * 1024'
+    abstract_pd_server:
+      type: org.openecomp.resource.abstract.nodes.pd_server
+      directives:
+      - substitutable
+      properties:
+        port_pd01_port_replacement_policy:
+        - AUTO
+        vm_flavor_name:
+          get_input: pd_flavor_name
+        port_template_VMInt_OAM_lb_internal_VMI_name:
+        - template_VMInt_OAM_lb_NAME
+        port_pd01_port_mac_requirements:
+          mac_count_required:
+            is_required: false
+        vm_image_name:
+          get_input: pd_image_name
+        port_pd03_port_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        port_template_VMInt_OAM_lb_internal_VMI_virtual_network_refs:
+        - - get_attribute:
+            - jsa_net4
+            - fq_name
+        port_pd03_port_replacement_policy:
+        - AUTO
+        port_pd02_port_mac_requirements:
+          mac_count_required:
+            is_required: false
+        port_pd03_port_mac_requirements:
+          mac_count_required:
+            is_required: false
+        port_template_VMInt_OAM_lb_internal_VMI_virtual_machine_interface_mac_addresses:
+        - - get_input: mac_address
+        port_template_VMInt_OAM_lb_internal_VMI_port_tuple_refs:
+        - - get_input: template_PortTuple_LB1
+        port_pd02_port_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        port_template_VMInt_OAM_lb_internal_VMI_security_group_refs:
+        - - get_input: oam_sec_group_name
+        compute_pd_server_contrail_service_instance_ind:
+        - true
+        compute_pd_server_availability_zone:
+        - get_input: availabilityzone_name
+        compute_pd_server_name:
+        - get_input:
+          - pd_server_names
+          - 0
+        port_pd02_port_replacement_policy:
+        - AUTO
+        port_pd01_port_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        compute_pd_server_user_data_format:
+        - RAW
+        port_pd01_port_network:
+        - packet_mirror_network
+        port_pd02_port_network:
+        - packet_internal_network
+        service_template_filter:
+          substitute_service_template: Nested_pd_serverServiceTemplate.yaml
+          count: 1
+        index_value:
+          get_property:
+          - SELF
+          - service_template_filter
+          - index_value
+      requirements:
+      - dependency_pd_server:
+          capability: tosca.capabilities.Node
+          node: packet_mirror_network
+          relationship: tosca.relationships.DependsOn
+      - link_pd_server_pd01_port:
+          capability: tosca.capabilities.network.Linkable
+          node: packet_mirror_network
+          relationship: tosca.relationships.network.LinksTo
+      - link_pd_server_pd02_port:
+          capability: tosca.capabilities.network.Linkable
+          node: packet_internal_network
+          relationship: tosca.relationships.network.LinksTo
+      - link_pd_server_template_VMInt_OAM_lb_internal_VMI:
+          capability: tosca.capabilities.network.Linkable
+          node: jsa_net4
+          relationship: tosca.relationships.network.LinksTo
+      - local_storage_pd_server:
+          capability: tosca.capabilities.Attachment
+          node: pd01_volume
+          relationship: pd01_volume_attachment
+    pd04_port_0:
+      type: org.openecomp.resource.cp.v2.extNeutronCP
+      properties:
+        replacement_policy: AUTO
+        ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        mac_requirements:
+          mac_count_required:
+            is_required: false
+      capabilities:
+      - port_mirroring:
+          properties:
+            connection_point:
+              nf_type: ''
+              nfc_type: ''
+              network_role: ''
+              pps_capacity: ''
+    template_VMInt_OAM_lb_external_VMI:
+      type: org.openecomp.resource.cp.v2.extContrailCP
+      capabilities:
+      - port_mirroring:
+          properties:
+            connection_point:
+              nf_type: ''
+              nfc_type: ''
+              network_role: ''
+              pps_capacity: ''
+    pd05_port_0:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        replacement_policy: AUTO
+        ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        mac_requirements:
+          mac_count_required:
+            is_required: false
+        network: packet_mirror_network
+      requirements:
+      - link:
+          capability: tosca.capabilities.network.Linkable
+          node: packet_mirror_network
+          relationship: tosca.relationships.network.LinksTo
+    packet_internal_network:
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+      properties:
+        network_name:
+          get_input: packet_internal_network_name
+  relationship_templates:
+    pd01_volume_attachment:
+      type: org.openecomp.relationships.VolumeAttachesTo
+      properties:
+        volume_id: pd01_volume
+        instance_uuid: abstract_pd_server
+  groups:
+    hot-mog-0108-bs1271_group:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/hot-mog-0108-bs1271.yml
+        description: heat template that creates MOG stack
+      members:
+      - packet_mirror_network
+      - jsa_net4
+      - pd01_volume
+      - packet_internal_network
+      - pd04_port_0
+      - template_VMInt_OAM_lb_external_VMI
+      - pd05_port_0
+      - abstract_pd_server
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/singleSubstitution/diffPortType/out/Nested_pd_serverServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/singleSubstitution/diffPortType/out/Nested_pd_serverServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..2a20dac
--- /dev/null
@@ -0,0 +1,682 @@
+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
+- openecomp_index:
+    file: openecomp/_index.yml
+node_types:
+  org.openecomp.resource.vfc.nodes.heat.pd_server:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+  inputs:
+    port_pd01_port_replacement_policy:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    vm_flavor_name:
+      type: string
+      required: true
+    port_template_VMInt_OAM_lb_internal_VMI_order:
+      type: integer
+      required: true
+    port_template_VMInt_OAM_lb_internal_VMI_name:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_template_VMInt_OAM_lb_internal_VMI_virtual_machine_interface_properties:
+      type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.interface.Properties
+      required: true
+    port_pd01_port_mac_requirements:
+      type: org.openecomp.datatypes.network.MacRequirements
+      required: true
+    vm_image_name:
+      type: string
+      required: true
+    port_template_VMInt_OAM_lb_internal_VMI_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+    port_pd03_port_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+    port_pd01_port_vlan_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.VlanRequirements
+    port_pd03_port_order:
+      type: integer
+      required: true
+    port_pd03_port_network_role:
+      type: string
+      required: true
+    port_template_VMInt_OAM_lb_internal_VMI_virtual_network_refs:
+      type: list
+      required: true
+      entry_schema:
+        type: json
+    port_pd03_port_replacement_policy:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_pd02_port_mac_requirements:
+      type: org.openecomp.datatypes.network.MacRequirements
+      required: true
+    port_template_VMInt_OAM_lb_internal_VMI_vlan_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.VlanRequirements
+    port_pd01_port_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+    port_template_VMInt_OAM_lb_internal_VMI_mac_requirements:
+      type: org.openecomp.datatypes.network.MacRequirements
+      required: true
+    port_pd02_port_vlan_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.VlanRequirements
+    port_pd03_port_mac_requirements:
+      type: org.openecomp.datatypes.network.MacRequirements
+      required: true
+    port_pd03_port_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+    port_template_VMInt_OAM_lb_internal_VMI_virtual_machine_interface_mac_addresses:
+      type: list
+      required: true
+      entry_schema:
+        type: json
+    port_template_VMInt_OAM_lb_internal_VMI_port_tuple_refs:
+      type: list
+      required: true
+      entry_schema:
+        type: json
+    port_pd02_port_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+    port_pd01_port_network_role_tag:
+      type: string
+      required: true
+    port_template_VMInt_OAM_lb_internal_VMI_network_role_tag:
+      type: string
+      required: true
+    port_template_VMInt_OAM_lb_internal_VMI_security_group_refs:
+      type: list
+      required: true
+      entry_schema:
+        type: json
+    compute_pd_server_contrail_service_instance_ind:
+      type: list
+      required: true
+      entry_schema:
+        type: boolean
+    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_pd02_port_network_role_tag:
+      type: string
+      required: true
+    port_pd03_port_vlan_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.VlanRequirements
+    port_template_VMInt_OAM_lb_internal_VMI_subnetpoolid:
+      type: string
+      required: true
+    port_pd02_port_replacement_policy:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_pd01_port_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+    port_pd02_port_network_role:
+      type: string
+      required: true
+    port_pd03_port_network_role_tag:
+      type: string
+      required: true
+    port_template_VMInt_OAM_lb_internal_VMI_network_role:
+      type: string
+      required: true
+    port_pd03_port_subnetpoolid:
+      type: string
+      required: true
+    compute_pd_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_template_VMInt_OAM_lb_internal_VMI_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+    port_pd02_port_order:
+      type: integer
+      required: true
+    port_pd02_port_subnetpoolid:
+      type: string
+      required: true
+    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_pd02_port_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+    port_pd01_port_network_role:
+      type: string
+      required: true
+    port_pd02_port_network:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_template_VMInt_OAM_lb_internal_VMI_virtual_machine_interface_allowed_address_pairs:
+      type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairs
+      required: true
+  node_templates:
+    pd_server:
+      type: org.openecomp.resource.vfc.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
+        contrail_service_instance_ind:
+          get_input:
+          - compute_pd_server_contrail_service_instance_ind
+          - index_value
+        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
+        replacement_policy:
+          get_input:
+          - port_pd01_port_replacement_policy
+          - index_value
+        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
+    pd_server_pd02_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        exCP_naming:
+          get_input: port_pd02_port_exCP_naming
+        replacement_policy:
+          get_input:
+          - port_pd02_port_replacement_policy
+          - index_value
+        vlan_requirements:
+          get_input: port_pd02_port_vlan_requirements
+        ip_requirements:
+          get_input: port_pd02_port_ip_requirements
+        network_role_tag:
+          get_input: port_pd02_port_network_role_tag
+        mac_requirements:
+          get_input: port_pd02_port_mac_requirements
+        order:
+          get_input: port_pd02_port_order
+        network_role:
+          get_input: port_pd02_port_network_role
+        subnetpoolid:
+          get_input: port_pd02_port_subnetpoolid
+        network:
+          get_input:
+          - port_pd02_port_network
+          - index_value
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: pd_server
+          relationship: tosca.relationships.network.BindsTo
+    pd_server_template_VMInt_OAM_lb_internal_VMI:
+      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface
+      properties:
+        mac_requirements:
+          get_input: port_template_VMInt_OAM_lb_internal_VMI_mac_requirements
+        order:
+          get_input: port_template_VMInt_OAM_lb_internal_VMI_order
+        exCP_naming:
+          get_input: port_template_VMInt_OAM_lb_internal_VMI_exCP_naming
+        virtual_machine_interface_allowed_address_pairs:
+          get_input:
+          - port_template_VMInt_OAM_lb_internal_VMI_virtual_machine_interface_allowed_address_pairs
+          - index_value
+        vlan_requirements:
+          get_input: port_template_VMInt_OAM_lb_internal_VMI_vlan_requirements
+        virtual_machine_interface_properties:
+          get_input:
+          - port_template_VMInt_OAM_lb_internal_VMI_virtual_machine_interface_properties
+          - index_value
+        security_group_refs:
+          get_input:
+          - port_template_VMInt_OAM_lb_internal_VMI_security_group_refs
+          - index_value
+        virtual_network_refs:
+          get_input:
+          - port_template_VMInt_OAM_lb_internal_VMI_virtual_network_refs
+          - index_value
+        ip_requirements:
+          get_input: port_template_VMInt_OAM_lb_internal_VMI_ip_requirements
+        network_role_tag:
+          get_input: port_template_VMInt_OAM_lb_internal_VMI_network_role_tag
+        virtual_machine_interface_mac_addresses:
+          get_input:
+          - port_template_VMInt_OAM_lb_internal_VMI_virtual_machine_interface_mac_addresses
+          - index_value
+        port_tuple_refs:
+          get_input:
+          - port_template_VMInt_OAM_lb_internal_VMI_port_tuple_refs
+          - index_value
+        network_role:
+          get_input: port_template_VMInt_OAM_lb_internal_VMI_network_role
+        subnetpoolid:
+          get_input: port_template_VMInt_OAM_lb_internal_VMI_subnetpoolid
+        name:
+          get_input:
+          - port_template_VMInt_OAM_lb_internal_VMI_name
+          - index_value
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: pd_server
+          relationship: tosca.relationships.network.BindsTo
+    pd_server_pd03_port:
+      type: org.openecomp.resource.cp.v2.extNeutronCP
+      properties:
+        replacement_policy:
+          get_input:
+          - port_pd03_port_replacement_policy
+          - index_value
+        ip_requirements:
+          get_input: port_pd03_port_ip_requirements
+        network_role:
+          get_input: port_pd03_port_network_role
+        subnetpoolid:
+          get_input: port_pd03_port_subnetpoolid
+        mac_requirements:
+          get_input: port_pd03_port_mac_requirements
+        exCP_naming:
+          get_input: port_pd03_port_exCP_naming
+        vlan_requirements:
+          get_input: port_pd03_port_vlan_requirements
+        network_role_tag:
+          get_input: port_pd03_port_network_role_tag
+        order:
+          get_input: port_pd03_port_order
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: pd_server
+          relationship: tosca.relationships.network.BindsTo
+      capabilities:
+      - port_mirroring:
+          properties:
+            connection_point:
+              nf_type: ''
+              nfc_type: pd_server
+              network_role:
+                get_input: port_pd03_port_network_role
+              pps_capacity: ''
+  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
+      network.incoming.bytes.rate_pd_server_pd03_port:
+      - pd_server_pd03_port
+      - network.incoming.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
+      binding_pd_server_pd03_port:
+      - pd_server_pd03_port
+      - binding
+      network.incoming.packets_pd_server_template_VMInt_OAM_lb_internal_VMI:
+      - pd_server_template_VMInt_OAM_lb_internal_VMI
+      - network.incoming.packets
+      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
+      binding_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - binding
+      network.outgoing.bytes_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - network.outgoing.bytes
+      network.outgoing.packets.rate_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.outgoing.packets.rate
+      network.incoming.bytes_pd_server_pd03_port:
+      - pd_server_pd03_port
+      - network.incoming.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
+      network.outgoing.bytes_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.outgoing.bytes
+      feature_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - feature
+      network.incoming.bytes.rate_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.incoming.bytes.rate
+      network.outgoing.bytes.rate_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.outgoing.bytes.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
+      network.outpoing.packets_pd_server_template_VMInt_OAM_lb_internal_VMI:
+      - pd_server_template_VMInt_OAM_lb_internal_VMI
+      - network.outpoing.packets
+      disk.capacity_pd_server:
+      - pd_server
+      - disk.capacity
+      binding_pd_server_template_VMInt_OAM_lb_internal_VMI:
+      - pd_server_template_VMInt_OAM_lb_internal_VMI
+      - binding
+      disk.device.allocation_pd_server:
+      - pd_server
+      - disk.device.allocation
+      disk.allocation_pd_server:
+      - pd_server
+      - disk.allocation
+      network.incoming.packets_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.incoming.packets
+      binding_pd_server:
+      - pd_server
+      - binding
+      disk.read.requests_pd_server:
+      - pd_server
+      - disk.read.requests
+      network.outgoing.bytes_pd_server_pd03_port:
+      - pd_server_pd03_port
+      - network.outgoing.bytes
+      feature_pd_server:
+      - pd_server
+      - feature
+      network.incoming.bytes.rate_pd_server_template_VMInt_OAM_lb_internal_VMI:
+      - pd_server_template_VMInt_OAM_lb_internal_VMI
+      - network.incoming.bytes.rate
+      disk.usage_pd_server:
+      - pd_server
+      - disk.usage
+      network.outpoing.packets_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.outpoing.packets
+      attachment_pd_server_pd03_port:
+      - pd_server_pd03_port
+      - attachment
+      network.outgoing.packets.rate_pd_server_pd03_port:
+      - pd_server_pd03_port
+      - network.outgoing.packets.rate
+      binding_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - binding
+      network.incoming.bytes_pd_server_template_VMInt_OAM_lb_internal_VMI:
+      - pd_server_template_VMInt_OAM_lb_internal_VMI
+      - network.incoming.bytes
+      disk.write.bytes_pd_server:
+      - pd_server
+      - disk.write.bytes
+      network.incoming.packets.rate_pd_server_pd03_port:
+      - pd_server_pd03_port
+      - network.incoming.packets.rate
+      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
+      feature_pd_server_template_VMInt_OAM_lb_internal_VMI:
+      - pd_server_template_VMInt_OAM_lb_internal_VMI
+      - feature
+      disk.device.read.bytes_pd_server:
+      - pd_server
+      - disk.device.read.bytes
+      network.outgoing.bytes.rate_pd_server_pd03_port:
+      - pd_server_pd03_port
+      - network.outgoing.bytes.rate
+      feature_pd_server_pd03_port:
+      - pd_server_pd03_port
+      - feature
+      disk.device.write.bytes_pd_server:
+      - pd_server
+      - disk.device.write.bytes
+      network.outpoing.packets_pd_server_pd03_port:
+      - pd_server_pd03_port
+      - network.outpoing.packets
+      disk.device.read.requests_pd_server:
+      - pd_server
+      - disk.device.read.requests
+      network.incoming.packets_pd_server_pd03_port:
+      - pd_server_pd03_port
+      - network.incoming.packets
+      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
+      attachment_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - attachment
+      network.outgoing.bytes.rate_pd_server_template_VMInt_OAM_lb_internal_VMI:
+      - pd_server_template_VMInt_OAM_lb_internal_VMI
+      - network.outgoing.bytes.rate
+      network.incoming.packets.rate_pd_server_template_VMInt_OAM_lb_internal_VMI:
+      - pd_server_template_VMInt_OAM_lb_internal_VMI
+      - network.incoming.packets.rate
+      disk.write.requests.rate_pd_server:
+      - pd_server
+      - disk.write.requests.rate
+      disk.ephemeral.size_pd_server:
+      - pd_server
+      - disk.ephemeral.size
+      network.outgoing.bytes_pd_server_template_VMInt_OAM_lb_internal_VMI:
+      - pd_server_template_VMInt_OAM_lb_internal_VMI
+      - network.outgoing.bytes
+      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
+      network.incoming.packets.rate_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.incoming.packets.rate
+      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
+      network.outgoing.packets.rate_pd_server_template_VMInt_OAM_lb_internal_VMI:
+      - pd_server_template_VMInt_OAM_lb_internal_VMI
+      - network.outgoing.packets.rate
+      disk.device.iops_pd_server:
+      - pd_server
+      - disk.device.iops
+      network.incoming.bytes_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - network.incoming.bytes
+      port_mirroring_pd_server_pd03_port:
+      - pd_server_pd03_port
+      - port_mirroring
+    requirements:
+      local_storage_pd_server:
+      - pd_server
+      - local_storage
+      link_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - link
+      dependency_pd_server_template_VMInt_OAM_lb_internal_VMI:
+      - pd_server_template_VMInt_OAM_lb_internal_VMI
+      - dependency
+      link_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - link
+      dependency_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - dependency
+      link_pd_server_template_VMInt_OAM_lb_internal_VMI:
+      - pd_server_template_VMInt_OAM_lb_internal_VMI
+      - link
+      dependency_pd_server:
+      - pd_server
+      - dependency
+      dependency_pd_server_pd03_port:
+      - pd_server_pd03_port
+      - dependency
+      link_pd_server_pd03_port:
+      - pd_server_pd03_port
+      - link
+      dependency_pd_server_pd02_port:
+      - pd_server_pd02_port
+      - dependency
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/singleSubstitution/samePortType/in/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/singleSubstitution/samePortType/in/GlobalSubstitutionTypesServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..2b76ced
--- /dev/null
@@ -0,0 +1,827 @@
+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_pd01_port_0_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_pd01_port_0_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_pd01_port_2_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_pd01_port_0_replacement_policy:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_1_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_template_VMInt_OAM_lb_internal_VMI_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_pd01_port_0_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_template_VMInt_OAM_lb_internal_VMI_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_template_VMInt_OAM_lb_internal_VMI_virtual_machine_interface_properties:
+        type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.interface.Properties
+        required: true
+        status: SUPPORTED
+      port_pd01_port_2_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_template_VMInt_OAM_lb_internal_VMI_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_pd01_port_2_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_pd01_port_0_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_1_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_0_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_template_VMInt_OAM_lb_internal_VMI_virtual_network_refs:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
+      port_template_VMInt_OAM_lb_internal_VMI_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_pd01_port_1_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_pd01_port_0_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_template_VMInt_OAM_lb_internal_VMI_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_pd01_port_2_replacement_policy:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_1_replacement_policy:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_1_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_template_VMInt_OAM_lb_internal_VMI_virtual_machine_interface_mac_addresses:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
+      port_template_VMInt_OAM_lb_internal_VMI_port_tuple_refs:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
+      port_pd01_port_2_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_template_VMInt_OAM_lb_internal_VMI_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_template_VMInt_OAM_lb_internal_VMI_security_group_refs:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
+      compute_pd_server_contrail_service_instance_ind:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: boolean
+      port_pd01_port_2_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_pd01_port_0_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_0_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      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_2_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_2_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_1_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_template_VMInt_OAM_lb_internal_VMI_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_1_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_template_VMInt_OAM_lb_internal_VMI_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      compute_pd_server_user_data_format:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_2_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_pd01_port_1_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      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_template_VMInt_OAM_lb_internal_VMI_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_pd01_port_1_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_pd01_port_1_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_pd01_port_0_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_template_VMInt_OAM_lb_internal_VMI_virtual_machine_interface_allowed_address_pairs:
+        type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairs
+        required: true
+        status: SUPPORTED
+    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_2:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_pd_server_pd01_port_2:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_pd_server_pd01_port_1:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_pd_server_pd01_port_1:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_pd_server_pd01_port_0:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_pd_server_pd01_port_0:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_pd_server_template_VMInt_OAM_lb_internal_VMI:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_pd_server_template_VMInt_OAM_lb_internal_VMI:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    capabilities:
+      binding_pd_server_pd01_port_0:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      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
+      binding_pd_server_pd01_port_1:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      binding_pd_server_pd01_port_2:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - 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.incoming.packets_pd_server_template_VMInt_OAM_lb_internal_VMI:
+        type: org.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.packets_pd_server_pd01_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets.rate_pd_server_pd01_port_2:
+        type: org.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_2:
+        type: org.openecomp.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
+      network.incoming.packets.rate_pd_server_pd01_port_1:
+        type: org.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_1:
+        type: org.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_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_pd_server_pd01_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_pd_server_pd01_port_2:
+        type: org.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_pd01_port_1:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_pd_server_pd01_port_2:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_pd_server_pd01_port_1:
+        type: org.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_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      vcpus_pd_server:
+        type: org.openecomp.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
+      attachment_pd_server_pd01_port_0:
+        type: tosca.capabilities.Attachment
+        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
+      network.outpoing.packets_pd_server_template_VMInt_OAM_lb_internal_VMI:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.capacity_pd_server:
+        type: org.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_template_VMInt_OAM_lb_internal_VMI:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      network.incoming.packets_pd_server_pd01_port_2:
+        type: org.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_1:
+        type: org.openecomp.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.outgoing.bytes.rate_pd_server_pd01_port_2:
+        type: org.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_1:
+        type: org.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_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_pd_server:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_pd_server_template_VMInt_OAM_lb_internal_VMI:
+        type: org.openecomp.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_pd_server:
+        type: org.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_1:
+        type: org.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_2:
+        type: org.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_template_VMInt_OAM_lb_internal_VMI:
+        type: org.openecomp.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
+      network.outgoing.bytes_pd_server_pd01_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_pd_server_pd01_port_1:
+        type: org.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_2:
+        type: org.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_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.requests.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
+      feature_pd_server_template_VMInt_OAM_lb_internal_VMI:
+        type: tosca.capabilities.Node
+        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
+      network.outpoing.packets_pd_server_pd01_port_2:
+        type: org.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_pd01_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_pd_server_pd01_port_1:
+        type: org.openecomp.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
+      feature_pd_server_pd01_port_1:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_pd_server_pd01_port_0:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_pd_server_template_VMInt_OAM_lb_internal_VMI:
+        type: org.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_2:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets.rate_pd_server_template_VMInt_OAM_lb_internal_VMI:
+        type: org.openecomp.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
+      network.outgoing.bytes_pd_server_template_VMInt_OAM_lb_internal_VMI:
+        type: org.openecomp.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
+      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.packets.rate_pd_server_template_VMInt_OAM_lb_internal_VMI:
+        type: org.openecomp.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
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/singleSubstitution/samePortType/in/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/singleSubstitution/samePortType/in/MainServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..6476ed1
--- /dev/null
@@ -0,0 +1,353 @@
+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
+      type: string
+      description: flavor name of PD instance
+      default: m3.xlarge
+    dummy_net_name_1:
+      label: csb ineternal cidr
+      hidden: false
+      immutable: false
+      type: string
+      description: csb internal cidr
+    availabilityzone_name:
+      label: availabilityzone name
+      hidden: false
+      immutable: false
+      type: string
+      description: availabilityzone name
+      default: nova
+    template_PortTuple_LB1:
+      hidden: false
+      immutable: false
+      type: string
+      description: dummy
+    lb_st_interface_type_oam:
+      hidden: false
+      immutable: false
+      type: string
+      description: dummy
+    oam_sec_group_name:
+      hidden: false
+      immutable: false
+      type: string
+      description: dummy
+    virtual_ip_address:
+      hidden: false
+      immutable: false
+      type: string
+      description: dummy
+    nems_traffic_name:
+      hidden: false
+      immutable: false
+      type: string
+      description: dummy
+    packet_internal_network_name:
+      label: packet internal network name
+      hidden: false
+      immutable: false
+      type: string
+      description: name of the network
+    oam_flavor_name:
+      label: OAM flavor name
+      hidden: false
+      immutable: false
+      type: string
+      description: flavor name of OAM instance
+      default: m3.xlarge
+    pd_image_name:
+      label: image name
+      hidden: false
+      immutable: false
+      type: string
+      description: PD image name
+      default: MOG_BASE_8.0
+    packet_mirror_network_name:
+      label: packet mirror network name
+      hidden: false
+      immutable: false
+      type: string
+      description: name of the network
+      default: packet-net-1
+    pd_server_names:
+      label: PD server names
+      hidden: false
+      immutable: false
+      type: list
+      description: name of the PD instance
+      default:
+      - ZRDM1MOGX01MPD001
+      - ZRDM1MOGX01MPD002
+      entry_schema:
+        type: string
+    pd01_volume_type:
+      label: volume type
+      hidden: false
+      immutable: false
+      type: string
+      description: volume type
+      default: volume_type_1
+    jsa_net_name:
+      hidden: false
+      immutable: false
+      type: string
+      description: dummy
+    pd_port_fixed_ips_address:
+      hidden: false
+      immutable: false
+      type: string
+      description: dummy
+    parent_interface:
+      hidden: false
+      immutable: false
+      type: string
+      description: dummy
+    virtual_ipv6_address:
+      hidden: false
+      immutable: false
+      type: string
+      description: dummy
+    mac_address:
+      hidden: false
+      immutable: false
+      type: string
+      description: dummy
+    pd01_cinder_volume_size:
+      label: volume size
+      hidden: false
+      immutable: false
+      type: string
+      description: volume size
+      default: 1024
+    pd_port_fixed_ips_subnet:
+      hidden: false
+      immutable: false
+      type: string
+      description: dummy
+    oam_net_name:
+      label: oam network name
+      hidden: false
+      immutable: false
+      type: string
+      description: name of the oam network
+      default: oam_protected_net_0
+    lb_st_interface_vlan_tag_oam:
+      hidden: false
+      immutable: false
+      type: string
+      description: dummy
+  node_templates:
+    packet_mirror_network:
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+      properties:
+        network_name:
+          get_input: packet_mirror_network_name
+    jsa_net4:
+      type: org.openecomp.resource.vl.nodes.heat.network.contrailV2.VirtualNetwork
+      properties:
+        network_name:
+          get_input: nems_traffic_name
+    pd01_volume:
+      type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
+      properties:
+        volume_type:
+          get_input: pd01_volume_type
+        size: '(get_input : pd01_cinder_volume_size) * 1024'
+    abstract_pd_server:
+      type: org.openecomp.resource.abstract.nodes.pd_server
+      directives:
+      - substitutable
+      properties:
+        port_pd01_port_0_mac_requirements:
+          mac_count_required:
+            is_required: false
+        port_pd01_port_0_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        port_pd01_port_0_replacement_policy:
+        - AUTO
+        vm_flavor_name:
+          get_input: pd_flavor_name
+        port_template_VMInt_OAM_lb_internal_VMI_name:
+        - template_VMInt_OAM_lb_NAME
+        vm_image_name:
+          get_input: pd_image_name
+        port_pd01_port_2_mac_requirements:
+          mac_count_required:
+            is_required: false
+        port_pd01_port_1_network:
+        - packet_internal_network
+        port_template_VMInt_OAM_lb_internal_VMI_virtual_network_refs:
+        - - get_attribute:
+            - jsa_net4
+            - fq_name
+        port_pd01_port_2_replacement_policy:
+        - AUTO
+        port_pd01_port_1_replacement_policy:
+        - AUTO
+        port_template_VMInt_OAM_lb_internal_VMI_virtual_machine_interface_mac_addresses:
+        - - get_input: mac_address
+        port_template_VMInt_OAM_lb_internal_VMI_port_tuple_refs:
+        - - get_input: template_PortTuple_LB1
+        port_template_VMInt_OAM_lb_internal_VMI_security_group_refs:
+        - - get_input: oam_sec_group_name
+        compute_pd_server_contrail_service_instance_ind:
+        - true
+        port_pd01_port_0_network:
+        - packet_mirror_network
+        compute_pd_server_availability_zone:
+        - get_input: availabilityzone_name
+        compute_pd_server_name:
+        - get_input:
+          - pd_server_names
+          - 0
+        compute_pd_server_user_data_format:
+        - RAW
+        port_pd01_port_2_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        port_pd01_port_1_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        port_pd01_port_1_mac_requirements:
+          mac_count_required:
+            is_required: false
+        service_template_filter:
+          substitute_service_template: Nested_pd_serverServiceTemplate.yaml
+          count: 1
+        index_value:
+          get_property:
+          - SELF
+          - service_template_filter
+          - index_value
+      requirements:
+      - dependency_pd_server:
+          capability: tosca.capabilities.Node
+          node: packet_mirror_network
+          relationship: tosca.relationships.DependsOn
+      - link_pd_server_pd01_port_0:
+          capability: tosca.capabilities.network.Linkable
+          node: packet_mirror_network
+          relationship: tosca.relationships.network.LinksTo
+      - link_pd_server_pd01_port_1:
+          capability: tosca.capabilities.network.Linkable
+          node: packet_internal_network
+          relationship: tosca.relationships.network.LinksTo
+      - link_pd_server_template_VMInt_OAM_lb_internal_VMI:
+          capability: tosca.capabilities.network.Linkable
+          node: jsa_net4
+          relationship: tosca.relationships.network.LinksTo
+      - local_storage_pd_server:
+          capability: tosca.capabilities.Attachment
+          node: pd01_volume
+          relationship: pd01_volume_attachment
+    #Contrail Port not connected to server and network -> External
+    template_VMInt_OAM_lb_external_VMI:
+      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface
+      properties:
+        name: template_VMInt_OAM_lb_NAME
+        security_group_refs:
+        - get_input: oam_sec_group_name
+        virtual_machine_interface_properties:
+          service_interface_type:
+            get_input: lb_st_interface_type_oam
+        port_tuple_refs:
+        - get_input: template_PortTuple_LB1
+        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:
+        - get_input: mac_address
+    #Port connected to network but not connected to server -> Internal
+    pd01_port_4:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        replacement_policy: AUTO
+        ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        mac_requirements:
+          mac_count_required:
+            is_required: false
+        network: packet_internal_network
+      requirements:
+      - link:
+          capability: tosca.capabilities.network.Linkable
+          node: packet_internal_network
+          relationship: tosca.relationships.network.LinksTo
+    #Port not connected to server and network -> External
+    pd01_port_3:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        replacement_policy: AUTO
+        ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        mac_requirements:
+          mac_count_required:
+            is_required: false
+    packet_internal_network:
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+      properties:
+        network_name:
+          get_input: packet_internal_network_name
+  relationship_templates:
+    pd01_volume_attachment:
+      type: org.openecomp.relationships.VolumeAttachesTo
+      properties:
+        volume_id: pd01_volume
+        instance_uuid: abstract_pd_server
+  groups:
+    hot-mog-0108-bs1271_group:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/hot-mog-0108-bs1271.yml
+        description: heat template that creates MOG stack
+      members:
+      - pd01_port_3
+      - packet_mirror_network
+      - jsa_net4
+      - pd01_volume
+      - packet_internal_network
+      - template_VMInt_OAM_lb_external_VMI
+      - pd01_port_4
+      - abstract_pd_server
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/singleSubstitution/samePortType/in/Nested_pd_serverServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/singleSubstitution/samePortType/in/Nested_pd_serverServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..1b82088
--- /dev/null
@@ -0,0 +1,672 @@
+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.nodes.heat.pd_server:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+  inputs:
+    port_pd01_port_0_mac_requirements:
+      type: org.openecomp.datatypes.network.MacRequirements
+      required: true
+    port_pd01_port_0_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+    port_pd01_port_2_vlan_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.VlanRequirements
+    port_pd01_port_0_replacement_policy:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    vm_flavor_name:
+      type: string
+      required: true
+    port_pd01_port_1_network_role:
+      type: string
+      required: true
+    port_template_VMInt_OAM_lb_internal_VMI_order:
+      type: integer
+      required: true
+    port_pd01_port_0_order:
+      type: integer
+      required: true
+    port_template_VMInt_OAM_lb_internal_VMI_name:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_template_VMInt_OAM_lb_internal_VMI_virtual_machine_interface_properties:
+      type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.interface.Properties
+      required: true
+    port_pd01_port_2_subnetpoolid:
+      type: string
+      required: true
+    vm_image_name:
+      type: string
+      required: true
+    port_template_VMInt_OAM_lb_internal_VMI_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+    port_pd01_port_2_mac_requirements:
+      type: org.openecomp.datatypes.network.MacRequirements
+      required: true
+    port_pd01_port_0_subnetpoolid:
+      type: string
+      required: true
+    port_pd01_port_1_network:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_pd01_port_0_network_role_tag:
+      type: string
+      required: true
+    port_template_VMInt_OAM_lb_internal_VMI_virtual_network_refs:
+      type: list
+      required: true
+      entry_schema:
+        type: json
+    port_template_VMInt_OAM_lb_internal_VMI_vlan_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.VlanRequirements
+    port_pd01_port_1_order:
+      type: integer
+      required: true
+    port_pd01_port_0_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+    port_template_VMInt_OAM_lb_internal_VMI_mac_requirements:
+      type: org.openecomp.datatypes.network.MacRequirements
+      required: true
+    port_pd01_port_2_replacement_policy:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_pd01_port_1_replacement_policy:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_pd01_port_1_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+    port_template_VMInt_OAM_lb_internal_VMI_virtual_machine_interface_mac_addresses:
+      type: list
+      required: true
+      entry_schema:
+        type: json
+    port_template_VMInt_OAM_lb_internal_VMI_port_tuple_refs:
+      type: list
+      required: true
+      entry_schema:
+        type: json
+    port_pd01_port_2_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+    port_template_VMInt_OAM_lb_internal_VMI_network_role_tag:
+      type: string
+      required: true
+    port_template_VMInt_OAM_lb_internal_VMI_security_group_refs:
+      type: list
+      required: true
+      entry_schema:
+        type: json
+    compute_pd_server_contrail_service_instance_ind:
+      type: list
+      required: true
+      entry_schema:
+        type: boolean
+    port_pd01_port_2_order:
+      type: integer
+      required: true
+    port_pd01_port_0_network:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_pd01_port_0_network_role:
+      type: string
+      required: true
+    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_2_network_role_tag:
+      type: string
+      required: true
+    port_pd01_port_2_network_role:
+      type: string
+      required: true
+    port_pd01_port_1_subnetpoolid:
+      type: string
+      required: true
+    port_template_VMInt_OAM_lb_internal_VMI_subnetpoolid:
+      type: string
+      required: true
+    port_pd01_port_1_network_role_tag:
+      type: string
+      required: true
+    port_template_VMInt_OAM_lb_internal_VMI_network_role:
+      type: string
+      required: true
+    compute_pd_server_user_data_format:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_pd01_port_2_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+    port_pd01_port_1_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+    index_value:
+      type: integer
+      description: Index value of this substitution service template runtime instance
+      required: false
+      default: 0
+      constraints:
+      - greater_or_equal: 0
+    port_template_VMInt_OAM_lb_internal_VMI_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+    port_pd01_port_1_vlan_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.VlanRequirements
+    port_pd01_port_1_mac_requirements:
+      type: org.openecomp.datatypes.network.MacRequirements
+      required: true
+    port_pd01_port_0_vlan_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.VlanRequirements
+    port_template_VMInt_OAM_lb_internal_VMI_virtual_machine_interface_allowed_address_pairs:
+      type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairs
+      required: true
+  node_templates:
+    pd_server:
+      type: org.openecomp.resource.vfc.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
+        contrail_service_instance_ind:
+          get_input:
+          - compute_pd_server_contrail_service_instance_ind
+          - index_value
+        name:
+          get_input:
+          - compute_pd_server_name
+          - index_value
+        user_data_format:
+          get_input:
+          - compute_pd_server_user_data_format
+          - index_value
+    #Port connected to server but not connected to network -> External
+    pd_server_pd01_port_2:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        exCP_naming:
+          get_input: port_pd01_port_2_exCP_naming
+        replacement_policy:
+          get_input:
+          - port_pd01_port_2_replacement_policy
+          - index_value
+        vlan_requirements:
+          get_input: port_pd01_port_2_vlan_requirements
+        ip_requirements:
+          get_input: port_pd01_port_2_ip_requirements
+        network_role_tag:
+          get_input: port_pd01_port_2_network_role_tag
+        mac_requirements:
+          get_input: port_pd01_port_2_mac_requirements
+        order:
+          get_input: port_pd01_port_2_order
+        network_role:
+          get_input: port_pd01_port_2_network_role
+        subnetpoolid:
+          get_input: port_pd01_port_2_subnetpoolid
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: pd_server
+          relationship: tosca.relationships.network.BindsTo
+    #Port connected to server and connected to network through abstract link req -> Internal
+    pd_server_pd01_port_1:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        exCP_naming:
+          get_input: port_pd01_port_1_exCP_naming
+        replacement_policy:
+          get_input:
+          - port_pd01_port_1_replacement_policy
+          - index_value
+        vlan_requirements:
+          get_input: port_pd01_port_1_vlan_requirements
+        ip_requirements:
+          get_input: port_pd01_port_1_ip_requirements
+        network_role_tag:
+          get_input: port_pd01_port_1_network_role_tag
+        mac_requirements:
+          get_input: port_pd01_port_1_mac_requirements
+        order:
+          get_input: port_pd01_port_1_order
+        network_role:
+          get_input: port_pd01_port_1_network_role
+        subnetpoolid:
+          get_input: port_pd01_port_1_subnetpoolid
+        network:
+          get_input:
+          - port_pd01_port_1_network
+          - index_value
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: pd_server
+          relationship: tosca.relationships.network.BindsTo
+    #Port connected to server and connected to network through abstract link req -> Internal
+    pd_server_pd01_port_0:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        exCP_naming:
+          get_input: port_pd01_port_0_exCP_naming
+        replacement_policy:
+          get_input:
+          - port_pd01_port_0_replacement_policy
+          - index_value
+        vlan_requirements:
+          get_input: port_pd01_port_0_vlan_requirements
+        ip_requirements:
+          get_input: port_pd01_port_0_ip_requirements
+        network_role_tag:
+          get_input: port_pd01_port_0_network_role_tag
+        mac_requirements:
+          get_input: port_pd01_port_0_mac_requirements
+        order:
+          get_input: port_pd01_port_0_order
+        network_role:
+          get_input: port_pd01_port_0_network_role
+        subnetpoolid:
+          get_input: port_pd01_port_0_subnetpoolid
+        network:
+          get_input:
+          - port_pd01_port_0_network
+          - index_value
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: pd_server
+          relationship: tosca.relationships.network.BindsTo
+    #Contrail Port connected to server and network through abstract link req -> Internal
+    pd_server_template_VMInt_OAM_lb_internal_VMI:
+      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface
+      properties:
+        mac_requirements:
+          get_input: port_template_VMInt_OAM_lb_internal_VMI_mac_requirements
+        order:
+          get_input: port_template_VMInt_OAM_lb_internal_VMI_order
+        exCP_naming:
+          get_input: port_template_VMInt_OAM_lb_internal_VMI_exCP_naming
+        virtual_machine_interface_allowed_address_pairs:
+          get_input:
+          - port_template_VMInt_OAM_lb_internal_VMI_virtual_machine_interface_allowed_address_pairs
+          - index_value
+        vlan_requirements:
+          get_input: port_template_VMInt_OAM_lb_internal_VMI_vlan_requirements
+        virtual_machine_interface_properties:
+          get_input:
+          - port_template_VMInt_OAM_lb_internal_VMI_virtual_machine_interface_properties
+          - index_value
+        security_group_refs:
+          get_input:
+          - port_template_VMInt_OAM_lb_internal_VMI_security_group_refs
+          - index_value
+        virtual_network_refs:
+          get_input:
+          - port_template_VMInt_OAM_lb_internal_VMI_virtual_network_refs
+          - index_value
+        ip_requirements:
+          get_input: port_template_VMInt_OAM_lb_internal_VMI_ip_requirements
+        network_role_tag:
+          get_input: port_template_VMInt_OAM_lb_internal_VMI_network_role_tag
+        virtual_machine_interface_mac_addresses:
+          get_input:
+          - port_template_VMInt_OAM_lb_internal_VMI_virtual_machine_interface_mac_addresses
+          - index_value
+        port_tuple_refs:
+          get_input:
+          - port_template_VMInt_OAM_lb_internal_VMI_port_tuple_refs
+          - index_value
+        network_role:
+          get_input: port_template_VMInt_OAM_lb_internal_VMI_network_role
+        subnetpoolid:
+          get_input: port_template_VMInt_OAM_lb_internal_VMI_subnetpoolid
+        name:
+          get_input:
+          - port_template_VMInt_OAM_lb_internal_VMI_name
+          - 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:
+      binding_pd_server_pd01_port_0:
+      - pd_server_pd01_port_0
+      - binding
+      scalable_pd_server:
+      - pd_server
+      - scalable
+      disk.read.bytes.rate_pd_server:
+      - pd_server
+      - disk.read.bytes.rate
+      binding_pd_server_pd01_port_1:
+      - pd_server_pd01_port_1
+      - binding
+      binding_pd_server_pd01_port_2:
+      - pd_server_pd01_port_2
+      - binding
+      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.incoming.packets_pd_server_template_VMInt_OAM_lb_internal_VMI:
+      - pd_server_template_VMInt_OAM_lb_internal_VMI
+      - network.incoming.packets
+      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.packets_pd_server_pd01_port_0:
+      - pd_server_pd01_port_0
+      - network.incoming.packets
+      network.incoming.packets.rate_pd_server_pd01_port_2:
+      - pd_server_pd01_port_2
+      - network.incoming.packets.rate
+      network.incoming.bytes.rate_pd_server_pd01_port_2:
+      - pd_server_pd01_port_2
+      - network.incoming.bytes.rate
+      disk.iops_pd_server:
+      - pd_server
+      - disk.iops
+      network.incoming.packets.rate_pd_server_pd01_port_1:
+      - pd_server_pd01_port_1
+      - network.incoming.packets.rate
+      network.incoming.bytes.rate_pd_server_pd01_port_1:
+      - pd_server_pd01_port_1
+      - network.incoming.bytes.rate
+      memory.resident_pd_server:
+      - pd_server
+      - memory.resident
+      cpu.delta_pd_server:
+      - pd_server
+      - cpu.delta
+      network.incoming.packets.rate_pd_server_pd01_port_0:
+      - pd_server_pd01_port_0
+      - network.incoming.packets.rate
+      network.incoming.bytes.rate_pd_server_pd01_port_0:
+      - pd_server_pd01_port_0
+      - network.incoming.bytes.rate
+      network.outgoing.packets.rate_pd_server_pd01_port_2:
+      - pd_server_pd01_port_2
+      - network.outgoing.packets.rate
+      attachment_pd_server_pd01_port_1:
+      - pd_server_pd01_port_1
+      - attachment
+      attachment_pd_server_pd01_port_2:
+      - pd_server_pd01_port_2
+      - attachment
+      network.outgoing.packets.rate_pd_server_pd01_port_1:
+      - pd_server_pd01_port_1
+      - network.outgoing.packets.rate
+      network.outgoing.packets.rate_pd_server_pd01_port_0:
+      - pd_server_pd01_port_0
+      - network.outgoing.packets.rate
+      vcpus_pd_server:
+      - pd_server
+      - vcpus
+      disk.device.write.bytes.rate_pd_server:
+      - pd_server
+      - disk.device.write.bytes.rate
+      attachment_pd_server_pd01_port_0:
+      - pd_server_pd01_port_0
+      - attachment
+      disk.device.write.requests_pd_server:
+      - pd_server
+      - disk.device.write.requests
+      endpoint_pd_server:
+      - pd_server
+      - endpoint
+      network.outpoing.packets_pd_server_template_VMInt_OAM_lb_internal_VMI:
+      - pd_server_template_VMInt_OAM_lb_internal_VMI
+      - network.outpoing.packets
+      disk.capacity_pd_server:
+      - pd_server
+      - disk.capacity
+      binding_pd_server_template_VMInt_OAM_lb_internal_VMI:
+      - pd_server_template_VMInt_OAM_lb_internal_VMI
+      - binding
+      network.incoming.packets_pd_server_pd01_port_2:
+      - pd_server_pd01_port_2
+      - network.incoming.packets
+      network.incoming.packets_pd_server_pd01_port_1:
+      - pd_server_pd01_port_1
+      - network.incoming.packets
+      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.outgoing.bytes.rate_pd_server_pd01_port_2:
+      - pd_server_pd01_port_2
+      - network.outgoing.bytes.rate
+      network.outgoing.bytes.rate_pd_server_pd01_port_1:
+      - pd_server_pd01_port_1
+      - network.outgoing.bytes.rate
+      network.outgoing.bytes.rate_pd_server_pd01_port_0:
+      - pd_server_pd01_port_0
+      - network.outgoing.bytes.rate
+      feature_pd_server:
+      - pd_server
+      - feature
+      network.incoming.bytes.rate_pd_server_template_VMInt_OAM_lb_internal_VMI:
+      - pd_server_template_VMInt_OAM_lb_internal_VMI
+      - network.incoming.bytes.rate
+      disk.usage_pd_server:
+      - pd_server
+      - disk.usage
+      network.incoming.bytes_pd_server_pd01_port_1:
+      - pd_server_pd01_port_1
+      - network.incoming.bytes
+      network.incoming.bytes_pd_server_pd01_port_2:
+      - pd_server_pd01_port_2
+      - network.incoming.bytes
+      network.incoming.bytes_pd_server_template_VMInt_OAM_lb_internal_VMI:
+      - pd_server_template_VMInt_OAM_lb_internal_VMI
+      - network.incoming.bytes
+      disk.write.bytes_pd_server:
+      - pd_server
+      - disk.write.bytes
+      network.outgoing.bytes_pd_server_pd01_port_0:
+      - pd_server_pd01_port_0
+      - network.outgoing.bytes
+      network.outgoing.bytes_pd_server_pd01_port_1:
+      - pd_server_pd01_port_1
+      - network.outgoing.bytes
+      network.outgoing.bytes_pd_server_pd01_port_2:
+      - pd_server_pd01_port_2
+      - network.outgoing.bytes
+      network.incoming.bytes_pd_server_pd01_port_0:
+      - pd_server_pd01_port_0
+      - network.incoming.bytes
+      disk.device.read.requests.rate_pd_server:
+      - pd_server
+      - disk.device.read.requests.rate
+      disk.root.size_pd_server:
+      - pd_server
+      - disk.root.size
+      feature_pd_server_template_VMInt_OAM_lb_internal_VMI:
+      - pd_server_template_VMInt_OAM_lb_internal_VMI
+      - feature
+      disk.device.read.bytes_pd_server:
+      - pd_server
+      - disk.device.read.bytes
+      disk.device.write.bytes_pd_server:
+      - pd_server
+      - disk.device.write.bytes
+      network.outpoing.packets_pd_server_pd01_port_2:
+      - pd_server_pd01_port_2
+      - network.outpoing.packets
+      network.outpoing.packets_pd_server_pd01_port_0:
+      - pd_server_pd01_port_0
+      - network.outpoing.packets
+      network.outpoing.packets_pd_server_pd01_port_1:
+      - pd_server_pd01_port_1
+      - network.outpoing.packets
+      disk.device.read.requests_pd_server:
+      - pd_server
+      - disk.device.read.requests
+      instance_pd_server:
+      - pd_server
+      - instance
+      host_pd_server:
+      - pd_server
+      - host
+      feature_pd_server_pd01_port_1:
+      - pd_server_pd01_port_1
+      - feature
+      feature_pd_server_pd01_port_0:
+      - pd_server_pd01_port_0
+      - feature
+      network.outgoing.bytes.rate_pd_server_template_VMInt_OAM_lb_internal_VMI:
+      - pd_server_template_VMInt_OAM_lb_internal_VMI
+      - network.outgoing.bytes.rate
+      feature_pd_server_pd01_port_2:
+      - pd_server_pd01_port_2
+      - feature
+      network.incoming.packets.rate_pd_server_template_VMInt_OAM_lb_internal_VMI:
+      - pd_server_template_VMInt_OAM_lb_internal_VMI
+      - network.incoming.packets.rate
+      disk.write.requests.rate_pd_server:
+      - pd_server
+      - disk.write.requests.rate
+      disk.ephemeral.size_pd_server:
+      - pd_server
+      - disk.ephemeral.size
+      network.outgoing.bytes_pd_server_template_VMInt_OAM_lb_internal_VMI:
+      - pd_server_template_VMInt_OAM_lb_internal_VMI
+      - network.outgoing.bytes
+      disk.write.requests_pd_server:
+      - pd_server
+      - disk.write.requests
+      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.packets.rate_pd_server_template_VMInt_OAM_lb_internal_VMI:
+      - pd_server_template_VMInt_OAM_lb_internal_VMI
+      - network.outgoing.packets.rate
+      disk.device.iops_pd_server:
+      - pd_server
+      - disk.device.iops
+    requirements:
+      local_storage_pd_server:
+      - pd_server
+      - local_storage
+      dependency_pd_server_template_VMInt_OAM_lb_internal_VMI:
+      - pd_server_template_VMInt_OAM_lb_internal_VMI
+      - dependency
+      link_pd_server_pd01_port_2:
+      - pd_server_pd01_port_2
+      - link
+      dependency_pd_server_pd01_port_1:
+      - pd_server_pd01_port_1
+      - dependency
+      dependency_pd_server_pd01_port_2:
+      - pd_server_pd01_port_2
+      - dependency
+      link_pd_server_template_VMInt_OAM_lb_internal_VMI:
+      - pd_server_template_VMInt_OAM_lb_internal_VMI
+      - link
+      dependency_pd_server:
+      - pd_server
+      - dependency
+      dependency_pd_server_pd01_port_0:
+      - pd_server_pd01_port_0
+      - dependency
+      link_pd_server_pd01_port_0:
+      - pd_server_pd01_port_0
+      - link
+      link_pd_server_pd01_port_1:
+      - pd_server_pd01_port_1
+      - link
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/singleSubstitution/samePortType/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/singleSubstitution/samePortType/out/GlobalSubstitutionTypesServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..34406ed
--- /dev/null
@@ -0,0 +1,518 @@
+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_pd01_port_0_floating_ip_count:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_0_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_0_network_role_tag:
+        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_pd01_port_0_ip_count:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      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_1_floating_ip_count:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_1_ip_count:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_1_mac_count:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_1_network_role_tag:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_0_mac_count:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_1_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      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_1:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_pd_server_pd01_port_1:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_pd_server_pd01_port_0:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_pd_server_pd01_port_0:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    capabilities:
+      binding_pd_server_pd01_port_0:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      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
+      binding_pd_server_pd01_port_1:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - 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.packets_pd_server_pd01_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.iops_pd_server:
+        type: org.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_1:
+        type: org.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_1:
+        type: org.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_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_pd_server_pd01_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_pd_server_pd01_port_1:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_pd_server_pd01_port_1:
+        type: org.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_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      vcpus_pd_server:
+        type: org.openecomp.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
+      attachment_pd_server_pd01_port_0:
+        type: tosca.capabilities.Attachment
+        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
+      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.incoming.packets_pd_server_pd01_port_1:
+        type: org.openecomp.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.outgoing.bytes.rate_pd_server_pd01_port_1:
+        type: org.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_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_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
+      network.incoming.bytes_pd_server_pd01_port_1:
+        type: org.openecomp.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
+      network.outgoing.bytes_pd_server_pd01_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_pd_server_pd01_port_1:
+        type: org.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_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.requests.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
+      network.outpoing.packets_pd_server_pd01_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_pd_server_pd01_port_1:
+        type: org.openecomp.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
+      feature_pd_server_pd01_port_1:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_pd_server_pd01_port_0:
+        type: tosca.capabilities.Node
+        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
+      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
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/singleSubstitution/samePortType/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/singleSubstitution/samePortType/out/MainServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..2a4b89c
--- /dev/null
@@ -0,0 +1,341 @@
+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
+- openecomp_index:
+    file: openecomp/_index.yml
+topology_template:
+  inputs:
+    pd_flavor_name:
+      label: PD flavor name
+      hidden: false
+      immutable: false
+      type: string
+      description: flavor name of PD instance
+      default: m3.xlarge
+    dummy_net_name_1:
+      label: csb ineternal cidr
+      hidden: false
+      immutable: false
+      type: string
+      description: csb internal cidr
+    availabilityzone_name:
+      label: availabilityzone name
+      hidden: false
+      immutable: false
+      type: string
+      description: availabilityzone name
+      default: nova
+    template_PortTuple_LB1:
+      hidden: false
+      immutable: false
+      type: string
+      description: dummy
+    lb_st_interface_type_oam:
+      hidden: false
+      immutable: false
+      type: string
+      description: dummy
+    oam_sec_group_name:
+      hidden: false
+      immutable: false
+      type: string
+      description: dummy
+    virtual_ip_address:
+      hidden: false
+      immutable: false
+      type: string
+      description: dummy
+    nems_traffic_name:
+      hidden: false
+      immutable: false
+      type: string
+      description: dummy
+    packet_internal_network_name:
+      label: packet internal network name
+      hidden: false
+      immutable: false
+      type: string
+      description: name of the network
+    oam_flavor_name:
+      label: OAM flavor name
+      hidden: false
+      immutable: false
+      type: string
+      description: flavor name of OAM instance
+      default: m3.xlarge
+    pd_image_name:
+      label: image name
+      hidden: false
+      immutable: false
+      type: string
+      description: PD image name
+      default: MOG_BASE_8.0
+    packet_mirror_network_name:
+      label: packet mirror network name
+      hidden: false
+      immutable: false
+      type: string
+      description: name of the network
+      default: packet-net-1
+    pd_server_names:
+      label: PD server names
+      hidden: false
+      immutable: false
+      type: list
+      description: name of the PD instance
+      default:
+      - ZRDM1MOGX01MPD001
+      - ZRDM1MOGX01MPD002
+      entry_schema:
+        type: string
+    pd01_volume_type:
+      label: volume type
+      hidden: false
+      immutable: false
+      type: string
+      description: volume type
+      default: volume_type_1
+    jsa_net_name:
+      hidden: false
+      immutable: false
+      type: string
+      description: dummy
+    pd_port_fixed_ips_address:
+      hidden: false
+      immutable: false
+      type: string
+      description: dummy
+    parent_interface:
+      hidden: false
+      immutable: false
+      type: string
+      description: dummy
+    virtual_ipv6_address:
+      hidden: false
+      immutable: false
+      type: string
+      description: dummy
+    mac_address:
+      hidden: false
+      immutable: false
+      type: string
+      description: dummy
+    pd01_cinder_volume_size:
+      label: volume size
+      hidden: false
+      immutable: false
+      type: string
+      description: volume size
+      default: 1024
+    pd_port_fixed_ips_subnet:
+      hidden: false
+      immutable: false
+      type: string
+      description: dummy
+    oam_net_name:
+      label: oam network name
+      hidden: false
+      immutable: false
+      type: string
+      description: name of the oam network
+      default: oam_protected_net_0
+    lb_st_interface_vlan_tag_oam:
+      hidden: false
+      immutable: false
+      type: string
+      description: dummy
+  node_templates:
+    packet_mirror_network:
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+      properties:
+        network_name:
+          get_input: packet_mirror_network_name
+    jsa_net4:
+      type: org.openecomp.resource.vl.nodes.heat.network.contrailV2.VirtualNetwork
+      properties:
+        network_name:
+          get_input: nems_traffic_name
+    pd01_volume:
+      type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
+      properties:
+        volume_type:
+          get_input: pd01_volume_type
+        size: '(get_input : pd01_cinder_volume_size) * 1024'
+    abstract_pd_server:
+      type: org.openecomp.resource.abstract.nodes.pd_server
+      directives:
+      - substitutable
+      properties:
+        port_pd01_port_0_mac_requirements:
+          mac_count_required:
+            is_required: false
+        port_pd01_port_0_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        port_pd01_port_0_replacement_policy:
+        - AUTO
+        vm_flavor_name:
+          get_input: pd_flavor_name
+        port_template_VMInt_OAM_lb_internal_VMI_name:
+        - template_VMInt_OAM_lb_NAME
+        vm_image_name:
+          get_input: pd_image_name
+        port_pd01_port_2_mac_requirements:
+          mac_count_required:
+            is_required: false
+        port_pd01_port_1_network:
+        - packet_internal_network
+        port_template_VMInt_OAM_lb_internal_VMI_virtual_network_refs:
+        - - get_attribute:
+            - jsa_net4
+            - fq_name
+        port_pd01_port_2_replacement_policy:
+        - AUTO
+        port_pd01_port_1_replacement_policy:
+        - AUTO
+        port_template_VMInt_OAM_lb_internal_VMI_virtual_machine_interface_mac_addresses:
+        - - get_input: mac_address
+        port_template_VMInt_OAM_lb_internal_VMI_port_tuple_refs:
+        - - get_input: template_PortTuple_LB1
+        port_template_VMInt_OAM_lb_internal_VMI_security_group_refs:
+        - - get_input: oam_sec_group_name
+        compute_pd_server_contrail_service_instance_ind:
+        - true
+        port_pd01_port_0_network:
+        - packet_mirror_network
+        compute_pd_server_availability_zone:
+        - get_input: availabilityzone_name
+        compute_pd_server_name:
+        - get_input:
+          - pd_server_names
+          - 0
+        compute_pd_server_user_data_format:
+        - RAW
+        port_pd01_port_2_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        port_pd01_port_1_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        port_pd01_port_1_mac_requirements:
+          mac_count_required:
+            is_required: false
+        service_template_filter:
+          substitute_service_template: Nested_pd_serverServiceTemplate.yaml
+          count: 1
+        index_value:
+          get_property:
+          - SELF
+          - service_template_filter
+          - index_value
+      requirements:
+      - dependency_pd_server:
+          capability: tosca.capabilities.Node
+          node: packet_mirror_network
+          relationship: tosca.relationships.DependsOn
+      - link_pd_server_pd01_port_0:
+          capability: tosca.capabilities.network.Linkable
+          node: packet_mirror_network
+          relationship: tosca.relationships.network.LinksTo
+      - link_pd_server_pd01_port_1:
+          capability: tosca.capabilities.network.Linkable
+          node: packet_internal_network
+          relationship: tosca.relationships.network.LinksTo
+      - link_pd_server_template_VMInt_OAM_lb_internal_VMI:
+          capability: tosca.capabilities.network.Linkable
+          node: jsa_net4
+          relationship: tosca.relationships.network.LinksTo
+      - local_storage_pd_server:
+          capability: tosca.capabilities.Attachment
+          node: pd01_volume
+          relationship: pd01_volume_attachment
+    template_VMInt_OAM_lb_external_VMI:
+      type: org.openecomp.resource.cp.v2.extContrailCP
+      capabilities:
+      - port_mirroring:
+          properties:
+            connection_point:
+              nf_type: ''
+              nfc_type: ''
+              network_role: ''
+              pps_capacity: ''
+    pd01_port_4:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        replacement_policy: AUTO
+        ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        mac_requirements:
+          mac_count_required:
+            is_required: false
+        network: packet_internal_network
+      requirements:
+      - link:
+          capability: tosca.capabilities.network.Linkable
+          node: packet_internal_network
+          relationship: tosca.relationships.network.LinksTo
+    pd01_port_3:
+      type: org.openecomp.resource.cp.v2.extNeutronCP
+      properties:
+        replacement_policy: AUTO
+        ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        mac_requirements:
+          mac_count_required:
+            is_required: false
+      capabilities:
+      - port_mirroring:
+          properties:
+            connection_point:
+              nf_type: ''
+              nfc_type: ''
+              network_role: ''
+              pps_capacity: ''
+    packet_internal_network:
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+      properties:
+        network_name:
+          get_input: packet_internal_network_name
+  relationship_templates:
+    pd01_volume_attachment:
+      type: org.openecomp.relationships.VolumeAttachesTo
+      properties:
+        volume_id: pd01_volume
+        instance_uuid: abstract_pd_server
+  groups:
+    hot-mog-0108-bs1271_group:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/hot-mog-0108-bs1271.yml
+        description: heat template that creates MOG stack
+      members:
+      - pd01_port_3
+      - packet_mirror_network
+      - jsa_net4
+      - pd01_volume
+      - packet_internal_network
+      - template_VMInt_OAM_lb_external_VMI
+      - pd01_port_4
+      - abstract_pd_server
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/singleSubstitution/samePortType/out/Nested_pd_serverServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/singleSubstitution/samePortType/out/Nested_pd_serverServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..c7202c3
--- /dev/null
@@ -0,0 +1,682 @@
+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
+- openecomp_index:
+    file: openecomp/_index.yml
+node_types:
+  org.openecomp.resource.vfc.nodes.heat.pd_server:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+  inputs:
+    port_pd01_port_0_mac_requirements:
+      type: org.openecomp.datatypes.network.MacRequirements
+      required: true
+    port_pd01_port_0_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+    port_pd01_port_2_vlan_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.VlanRequirements
+    port_pd01_port_0_replacement_policy:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    vm_flavor_name:
+      type: string
+      required: true
+    port_pd01_port_1_network_role:
+      type: string
+      required: true
+    port_template_VMInt_OAM_lb_internal_VMI_order:
+      type: integer
+      required: true
+    port_pd01_port_0_order:
+      type: integer
+      required: true
+    port_template_VMInt_OAM_lb_internal_VMI_name:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_template_VMInt_OAM_lb_internal_VMI_virtual_machine_interface_properties:
+      type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.interface.Properties
+      required: true
+    port_pd01_port_2_subnetpoolid:
+      type: string
+      required: true
+    vm_image_name:
+      type: string
+      required: true
+    port_template_VMInt_OAM_lb_internal_VMI_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+    port_pd01_port_2_mac_requirements:
+      type: org.openecomp.datatypes.network.MacRequirements
+      required: true
+    port_pd01_port_0_subnetpoolid:
+      type: string
+      required: true
+    port_pd01_port_1_network:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_pd01_port_0_network_role_tag:
+      type: string
+      required: true
+    port_template_VMInt_OAM_lb_internal_VMI_virtual_network_refs:
+      type: list
+      required: true
+      entry_schema:
+        type: json
+    port_template_VMInt_OAM_lb_internal_VMI_vlan_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.VlanRequirements
+    port_pd01_port_1_order:
+      type: integer
+      required: true
+    port_pd01_port_0_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+    port_template_VMInt_OAM_lb_internal_VMI_mac_requirements:
+      type: org.openecomp.datatypes.network.MacRequirements
+      required: true
+    port_pd01_port_2_replacement_policy:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_pd01_port_1_replacement_policy:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_pd01_port_1_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+    port_template_VMInt_OAM_lb_internal_VMI_virtual_machine_interface_mac_addresses:
+      type: list
+      required: true
+      entry_schema:
+        type: json
+    port_template_VMInt_OAM_lb_internal_VMI_port_tuple_refs:
+      type: list
+      required: true
+      entry_schema:
+        type: json
+    port_pd01_port_2_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+    port_template_VMInt_OAM_lb_internal_VMI_network_role_tag:
+      type: string
+      required: true
+    port_template_VMInt_OAM_lb_internal_VMI_security_group_refs:
+      type: list
+      required: true
+      entry_schema:
+        type: json
+    compute_pd_server_contrail_service_instance_ind:
+      type: list
+      required: true
+      entry_schema:
+        type: boolean
+    port_pd01_port_2_order:
+      type: integer
+      required: true
+    port_pd01_port_0_network:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_pd01_port_0_network_role:
+      type: string
+      required: true
+    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_2_network_role_tag:
+      type: string
+      required: true
+    port_pd01_port_2_network_role:
+      type: string
+      required: true
+    port_pd01_port_1_subnetpoolid:
+      type: string
+      required: true
+    port_template_VMInt_OAM_lb_internal_VMI_subnetpoolid:
+      type: string
+      required: true
+    port_pd01_port_1_network_role_tag:
+      type: string
+      required: true
+    port_template_VMInt_OAM_lb_internal_VMI_network_role:
+      type: string
+      required: true
+    compute_pd_server_user_data_format:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_pd01_port_2_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+    port_pd01_port_1_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+    index_value:
+      type: integer
+      description: Index value of this substitution service template runtime instance
+      required: false
+      default: 0
+      constraints:
+      - greater_or_equal: 0
+    port_template_VMInt_OAM_lb_internal_VMI_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+    port_pd01_port_1_vlan_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.VlanRequirements
+    port_pd01_port_1_mac_requirements:
+      type: org.openecomp.datatypes.network.MacRequirements
+      required: true
+    port_pd01_port_0_vlan_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.VlanRequirements
+    port_template_VMInt_OAM_lb_internal_VMI_virtual_machine_interface_allowed_address_pairs:
+      type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairs
+      required: true
+  node_templates:
+    pd_server:
+      type: org.openecomp.resource.vfc.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
+        contrail_service_instance_ind:
+          get_input:
+          - compute_pd_server_contrail_service_instance_ind
+          - index_value
+        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_2:
+      type: org.openecomp.resource.cp.v2.extNeutronCP
+      properties:
+        replacement_policy:
+          get_input:
+          - port_pd01_port_2_replacement_policy
+          - index_value
+        ip_requirements:
+          get_input: port_pd01_port_2_ip_requirements
+        network_role:
+          get_input: port_pd01_port_2_network_role
+        subnetpoolid:
+          get_input: port_pd01_port_2_subnetpoolid
+        mac_requirements:
+          get_input: port_pd01_port_2_mac_requirements
+        exCP_naming:
+          get_input: port_pd01_port_2_exCP_naming
+        vlan_requirements:
+          get_input: port_pd01_port_2_vlan_requirements
+        network_role_tag:
+          get_input: port_pd01_port_2_network_role_tag
+        order:
+          get_input: port_pd01_port_2_order
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: pd_server
+          relationship: tosca.relationships.network.BindsTo
+      capabilities:
+      - port_mirroring:
+          properties:
+            connection_point:
+              nf_type: ''
+              nfc_type: pd_server
+              network_role:
+                get_input: port_pd01_port_2_network_role
+              pps_capacity: ''
+    pd_server_pd01_port_1:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        exCP_naming:
+          get_input: port_pd01_port_1_exCP_naming
+        replacement_policy:
+          get_input:
+          - port_pd01_port_1_replacement_policy
+          - index_value
+        vlan_requirements:
+          get_input: port_pd01_port_1_vlan_requirements
+        ip_requirements:
+          get_input: port_pd01_port_1_ip_requirements
+        network_role_tag:
+          get_input: port_pd01_port_1_network_role_tag
+        mac_requirements:
+          get_input: port_pd01_port_1_mac_requirements
+        order:
+          get_input: port_pd01_port_1_order
+        network_role:
+          get_input: port_pd01_port_1_network_role
+        subnetpoolid:
+          get_input: port_pd01_port_1_subnetpoolid
+        network:
+          get_input:
+          - port_pd01_port_1_network
+          - index_value
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: pd_server
+          relationship: tosca.relationships.network.BindsTo
+    pd_server_pd01_port_0:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        exCP_naming:
+          get_input: port_pd01_port_0_exCP_naming
+        replacement_policy:
+          get_input:
+          - port_pd01_port_0_replacement_policy
+          - index_value
+        vlan_requirements:
+          get_input: port_pd01_port_0_vlan_requirements
+        ip_requirements:
+          get_input: port_pd01_port_0_ip_requirements
+        network_role_tag:
+          get_input: port_pd01_port_0_network_role_tag
+        mac_requirements:
+          get_input: port_pd01_port_0_mac_requirements
+        order:
+          get_input: port_pd01_port_0_order
+        network_role:
+          get_input: port_pd01_port_0_network_role
+        subnetpoolid:
+          get_input: port_pd01_port_0_subnetpoolid
+        network:
+          get_input:
+          - port_pd01_port_0_network
+          - index_value
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: pd_server
+          relationship: tosca.relationships.network.BindsTo
+    pd_server_template_VMInt_OAM_lb_internal_VMI:
+      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface
+      properties:
+        mac_requirements:
+          get_input: port_template_VMInt_OAM_lb_internal_VMI_mac_requirements
+        order:
+          get_input: port_template_VMInt_OAM_lb_internal_VMI_order
+        exCP_naming:
+          get_input: port_template_VMInt_OAM_lb_internal_VMI_exCP_naming
+        virtual_machine_interface_allowed_address_pairs:
+          get_input:
+          - port_template_VMInt_OAM_lb_internal_VMI_virtual_machine_interface_allowed_address_pairs
+          - index_value
+        vlan_requirements:
+          get_input: port_template_VMInt_OAM_lb_internal_VMI_vlan_requirements
+        virtual_machine_interface_properties:
+          get_input:
+          - port_template_VMInt_OAM_lb_internal_VMI_virtual_machine_interface_properties
+          - index_value
+        security_group_refs:
+          get_input:
+          - port_template_VMInt_OAM_lb_internal_VMI_security_group_refs
+          - index_value
+        virtual_network_refs:
+          get_input:
+          - port_template_VMInt_OAM_lb_internal_VMI_virtual_network_refs
+          - index_value
+        ip_requirements:
+          get_input: port_template_VMInt_OAM_lb_internal_VMI_ip_requirements
+        network_role_tag:
+          get_input: port_template_VMInt_OAM_lb_internal_VMI_network_role_tag
+        virtual_machine_interface_mac_addresses:
+          get_input:
+          - port_template_VMInt_OAM_lb_internal_VMI_virtual_machine_interface_mac_addresses
+          - index_value
+        port_tuple_refs:
+          get_input:
+          - port_template_VMInt_OAM_lb_internal_VMI_port_tuple_refs
+          - index_value
+        network_role:
+          get_input: port_template_VMInt_OAM_lb_internal_VMI_network_role
+        subnetpoolid:
+          get_input: port_template_VMInt_OAM_lb_internal_VMI_subnetpoolid
+        name:
+          get_input:
+          - port_template_VMInt_OAM_lb_internal_VMI_name
+          - 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:
+      binding_pd_server_pd01_port_0:
+      - pd_server_pd01_port_0
+      - binding
+      scalable_pd_server:
+      - pd_server
+      - scalable
+      disk.read.bytes.rate_pd_server:
+      - pd_server
+      - disk.read.bytes.rate
+      binding_pd_server_pd01_port_1:
+      - pd_server_pd01_port_1
+      - binding
+      binding_pd_server_pd01_port_2:
+      - pd_server_pd01_port_2
+      - binding
+      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.incoming.packets_pd_server_template_VMInt_OAM_lb_internal_VMI:
+      - pd_server_template_VMInt_OAM_lb_internal_VMI
+      - network.incoming.packets
+      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.packets_pd_server_pd01_port_0:
+      - pd_server_pd01_port_0
+      - network.incoming.packets
+      network.incoming.packets.rate_pd_server_pd01_port_2:
+      - pd_server_pd01_port_2
+      - network.incoming.packets.rate
+      network.incoming.bytes.rate_pd_server_pd01_port_2:
+      - pd_server_pd01_port_2
+      - network.incoming.bytes.rate
+      disk.iops_pd_server:
+      - pd_server
+      - disk.iops
+      network.incoming.packets.rate_pd_server_pd01_port_1:
+      - pd_server_pd01_port_1
+      - network.incoming.packets.rate
+      network.incoming.bytes.rate_pd_server_pd01_port_1:
+      - pd_server_pd01_port_1
+      - network.incoming.bytes.rate
+      memory.resident_pd_server:
+      - pd_server
+      - memory.resident
+      cpu.delta_pd_server:
+      - pd_server
+      - cpu.delta
+      network.incoming.packets.rate_pd_server_pd01_port_0:
+      - pd_server_pd01_port_0
+      - network.incoming.packets.rate
+      network.incoming.bytes.rate_pd_server_pd01_port_0:
+      - pd_server_pd01_port_0
+      - network.incoming.bytes.rate
+      network.outgoing.packets.rate_pd_server_pd01_port_2:
+      - pd_server_pd01_port_2
+      - network.outgoing.packets.rate
+      attachment_pd_server_pd01_port_1:
+      - pd_server_pd01_port_1
+      - attachment
+      attachment_pd_server_pd01_port_2:
+      - pd_server_pd01_port_2
+      - attachment
+      network.outgoing.packets.rate_pd_server_pd01_port_1:
+      - pd_server_pd01_port_1
+      - network.outgoing.packets.rate
+      network.outgoing.packets.rate_pd_server_pd01_port_0:
+      - pd_server_pd01_port_0
+      - network.outgoing.packets.rate
+      vcpus_pd_server:
+      - pd_server
+      - vcpus
+      disk.device.write.bytes.rate_pd_server:
+      - pd_server
+      - disk.device.write.bytes.rate
+      attachment_pd_server_pd01_port_0:
+      - pd_server_pd01_port_0
+      - attachment
+      disk.device.write.requests_pd_server:
+      - pd_server
+      - disk.device.write.requests
+      endpoint_pd_server:
+      - pd_server
+      - endpoint
+      network.outpoing.packets_pd_server_template_VMInt_OAM_lb_internal_VMI:
+      - pd_server_template_VMInt_OAM_lb_internal_VMI
+      - network.outpoing.packets
+      disk.capacity_pd_server:
+      - pd_server
+      - disk.capacity
+      binding_pd_server_template_VMInt_OAM_lb_internal_VMI:
+      - pd_server_template_VMInt_OAM_lb_internal_VMI
+      - binding
+      network.incoming.packets_pd_server_pd01_port_2:
+      - pd_server_pd01_port_2
+      - network.incoming.packets
+      network.incoming.packets_pd_server_pd01_port_1:
+      - pd_server_pd01_port_1
+      - network.incoming.packets
+      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.outgoing.bytes.rate_pd_server_pd01_port_2:
+      - pd_server_pd01_port_2
+      - network.outgoing.bytes.rate
+      network.outgoing.bytes.rate_pd_server_pd01_port_1:
+      - pd_server_pd01_port_1
+      - network.outgoing.bytes.rate
+      network.outgoing.bytes.rate_pd_server_pd01_port_0:
+      - pd_server_pd01_port_0
+      - network.outgoing.bytes.rate
+      feature_pd_server:
+      - pd_server
+      - feature
+      network.incoming.bytes.rate_pd_server_template_VMInt_OAM_lb_internal_VMI:
+      - pd_server_template_VMInt_OAM_lb_internal_VMI
+      - network.incoming.bytes.rate
+      disk.usage_pd_server:
+      - pd_server
+      - disk.usage
+      network.incoming.bytes_pd_server_pd01_port_1:
+      - pd_server_pd01_port_1
+      - network.incoming.bytes
+      network.incoming.bytes_pd_server_pd01_port_2:
+      - pd_server_pd01_port_2
+      - network.incoming.bytes
+      network.incoming.bytes_pd_server_template_VMInt_OAM_lb_internal_VMI:
+      - pd_server_template_VMInt_OAM_lb_internal_VMI
+      - network.incoming.bytes
+      disk.write.bytes_pd_server:
+      - pd_server
+      - disk.write.bytes
+      network.outgoing.bytes_pd_server_pd01_port_0:
+      - pd_server_pd01_port_0
+      - network.outgoing.bytes
+      network.outgoing.bytes_pd_server_pd01_port_1:
+      - pd_server_pd01_port_1
+      - network.outgoing.bytes
+      network.outgoing.bytes_pd_server_pd01_port_2:
+      - pd_server_pd01_port_2
+      - network.outgoing.bytes
+      network.incoming.bytes_pd_server_pd01_port_0:
+      - pd_server_pd01_port_0
+      - network.incoming.bytes
+      disk.device.read.requests.rate_pd_server:
+      - pd_server
+      - disk.device.read.requests.rate
+      disk.root.size_pd_server:
+      - pd_server
+      - disk.root.size
+      feature_pd_server_template_VMInt_OAM_lb_internal_VMI:
+      - pd_server_template_VMInt_OAM_lb_internal_VMI
+      - feature
+      disk.device.read.bytes_pd_server:
+      - pd_server
+      - disk.device.read.bytes
+      disk.device.write.bytes_pd_server:
+      - pd_server
+      - disk.device.write.bytes
+      network.outpoing.packets_pd_server_pd01_port_2:
+      - pd_server_pd01_port_2
+      - network.outpoing.packets
+      network.outpoing.packets_pd_server_pd01_port_0:
+      - pd_server_pd01_port_0
+      - network.outpoing.packets
+      network.outpoing.packets_pd_server_pd01_port_1:
+      - pd_server_pd01_port_1
+      - network.outpoing.packets
+      disk.device.read.requests_pd_server:
+      - pd_server
+      - disk.device.read.requests
+      instance_pd_server:
+      - pd_server
+      - instance
+      host_pd_server:
+      - pd_server
+      - host
+      feature_pd_server_pd01_port_1:
+      - pd_server_pd01_port_1
+      - feature
+      feature_pd_server_pd01_port_0:
+      - pd_server_pd01_port_0
+      - feature
+      network.outgoing.bytes.rate_pd_server_template_VMInt_OAM_lb_internal_VMI:
+      - pd_server_template_VMInt_OAM_lb_internal_VMI
+      - network.outgoing.bytes.rate
+      feature_pd_server_pd01_port_2:
+      - pd_server_pd01_port_2
+      - feature
+      network.incoming.packets.rate_pd_server_template_VMInt_OAM_lb_internal_VMI:
+      - pd_server_template_VMInt_OAM_lb_internal_VMI
+      - network.incoming.packets.rate
+      disk.write.requests.rate_pd_server:
+      - pd_server
+      - disk.write.requests.rate
+      disk.ephemeral.size_pd_server:
+      - pd_server
+      - disk.ephemeral.size
+      network.outgoing.bytes_pd_server_template_VMInt_OAM_lb_internal_VMI:
+      - pd_server_template_VMInt_OAM_lb_internal_VMI
+      - network.outgoing.bytes
+      disk.write.requests_pd_server:
+      - pd_server
+      - disk.write.requests
+      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.packets.rate_pd_server_template_VMInt_OAM_lb_internal_VMI:
+      - pd_server_template_VMInt_OAM_lb_internal_VMI
+      - network.outgoing.packets.rate
+      disk.device.iops_pd_server:
+      - pd_server
+      - disk.device.iops
+      port_mirroring_pd_server_pd01_port_2:
+      - pd_server_pd01_port_2
+      - port_mirroring
+    requirements:
+      local_storage_pd_server:
+      - pd_server
+      - local_storage
+      dependency_pd_server_template_VMInt_OAM_lb_internal_VMI:
+      - pd_server_template_VMInt_OAM_lb_internal_VMI
+      - dependency
+      link_pd_server_pd01_port_2:
+      - pd_server_pd01_port_2
+      - link
+      dependency_pd_server_pd01_port_1:
+      - pd_server_pd01_port_1
+      - dependency
+      dependency_pd_server_pd01_port_2:
+      - pd_server_pd01_port_2
+      - dependency
+      link_pd_server_template_VMInt_OAM_lb_internal_VMI:
+      - pd_server_template_VMInt_OAM_lb_internal_VMI
+      - link
+      dependency_pd_server:
+      - pd_server
+      - dependency
+      dependency_pd_server_pd01_port_0:
+      - pd_server_pd01_port_0
+      - dependency
+      link_pd_server_pd01_port_0:
+      - pd_server_pd01_port_0
+      - link
+      link_pd_server_pd01_port_1:
+      - pd_server_pd01_port_1
+      - link
\ No newline at end of file