UTest for SRIOV 13/60213/6
authorShnaider, Marina (ms7589) <ms7589@intl.att.com>
Sun, 12 Aug 2018 07:55:05 +0000 (10:55 +0300)
committerAvi Gaffa <avi.gaffa@amdocs.com>
Mon, 13 Aug 2018 12:59:41 +0000 (12:59 +0000)
Adding full UTest for Fabric Configuration feature

Change-Id: I7e3d93ecede9755bbc8f04dc892aaba196b3e1dc
Issue-ID: SDC-1636
Signed-off-by: Shnaider, Marina (ms7589) <ms7589@intl.att.com>
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/fulltest/UnifiedCompositionLocalNodeTest.java [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationNovaServerImplTest.java
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/localNode/novaServerWithFabricConfigurationCapability/in/MANIFEST.json [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/localNode/novaServerWithFabricConfigurationCapability/in/base_vCE.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/localNode/novaServerWithFabricConfigurationCapability/out/GlobalSubstitutionTypesServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/localNode/novaServerWithFabricConfigurationCapability/out/MainServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/localNode/novaServerWithFabricConfigurationCapability/out/Nested_vceServiceTemplate.yaml [new file with mode: 0644]

diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/fulltest/UnifiedCompositionLocalNodeTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/fulltest/UnifiedCompositionLocalNodeTest.java
new file mode 100644 (file)
index 0000000..4216f45
--- /dev/null
@@ -0,0 +1,20 @@
+package org.openecomp.sdc.translator.services.heattotosca.impl.fulltest;
+
+
+import org.junit.Test;
+import org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation.BaseFullTranslationTest;
+
+import java.io.IOException;
+
+public class UnifiedCompositionLocalNodeTest extends BaseFullTranslationTest {
+
+  private static final String BASE_DIRECTORY = "/mock/services/heattotosca/fulltest/localNode/";
+
+  @Test
+  public void testLocalNodeWithFabricConfigurationCapability() throws IOException {
+    testTranslationWithInit(BASE_DIRECTORY + "novaServerWithFabricConfigurationCapability");
+  }
+
+}
+
index ae493bb..44a0e20 100644 (file)
@@ -42,7 +42,7 @@ public class ResourceTranslationNovaServerImplTest extends BaseResourceTranslati
   }
   
   @BeforeClass
-  public static void enablefabricConfigurationTagging() {
+  public static void enableFabricConfigurationTagging() {
       manager.enable(ToggleableFeature.FABRIC_CONFIGURATION);
       TestFeatureManagerProvider.setFeatureManager(manager);
   }
@@ -122,7 +122,7 @@ public class ResourceTranslationNovaServerImplTest extends BaseResourceTranslati
   
   
   @AfterClass
-  public static void disableVLANTagging() {
+  public static void disableFabricConfiguration() {
       manager.disable(ToggleableFeature.FABRIC_CONFIGURATION);
       manager = null;
       TestFeatureManagerProvider.setFeatureManager(null);
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/localNode/novaServerWithFabricConfigurationCapability/in/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/localNode/novaServerWithFabricConfigurationCapability/in/MANIFEST.json
new file mode 100644 (file)
index 0000000..544c2f9
--- /dev/null
@@ -0,0 +1,13 @@
+{
+  "name": "lastTestFabric",
+  "description": "lastTestFabric",
+  "version": "0.0",
+  "data": [
+    {
+      "isBase": true,
+      "file": "base_vCE.yaml",
+      "type": "HEAT"
+      
+    }
+  ]
+}
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/localNode/novaServerWithFabricConfigurationCapability/in/base_vCE.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/localNode/novaServerWithFabricConfigurationCapability/in/base_vCE.yaml
new file mode 100644 (file)
index 0000000..571bc2c
--- /dev/null
@@ -0,0 +1,279 @@
+heat_template_version: 2015-04-30
+
+description: ATT Vyatta vRouter template with 3 ports total - 1 Mgmt - 2 SR-IOV. 
+
+#Create two AIC network ports via SR-IOV provider networks -- assumes one-time site-prep template has been run already
+
+parameters:
+#VM Parameters
+  vce_name_0:
+    type: string
+    description: Name of the VM
+  vce_flavor_name:
+    type: string
+    description: VM instance sizing
+  availability_zone_0:
+    type: string
+    description: The Availability Zone to launch the instance.
+  vnf_name:
+    type: string
+    description: Unique name for this VF instance
+  vnf_id:
+    type: string
+    description: Unique ID for this VF instance; Unique ID for VNF for AAI metadata
+  vf_module_name:
+    type: string
+    description: Unique name for this VF Module instance -- Not used for this VNF 
+  sdnc_model_name: 
+    type: string
+    description: SDNC Blue Print Name
+  sdnc_model_version:
+    type: string
+    description: SDNC Model Version 
+  sdnc_artifact_name:
+    type: string
+    description:  SDNC Artifact Name
+  vf_module_id:
+    type: string
+    description: Unique ID for this VF Module instance -- Not used for this VNF
+  vce_volume_id_0:
+    type: string
+    description: ID of the boot disk volume
+  dcae_0:
+    type: string
+    description: IP Address of DCAE CTS Server
+  ntp_ip_0:
+    type: string
+    description: IP Address of primary NTP Server
+  ntp_ip_1: 
+    type: string
+    description: IP Address of secondary NTP Server
+  syslog_ip_0: 
+    type: string
+    description: IP Address of first syslog Server
+  syslog_ip_1: 
+    type: string
+    description: IP Address of second syslog Server
+  syslog_ip_2: 
+    type: string
+    description: IP Address of third syslog Server
+  syslog_ip_3: 
+    type: string
+    description: IP Address of fourth syslog Server
+  snmp_community_0: 
+    type: string
+    description: SNMP Community value
+  snmp_ip_0: 
+    type: string
+    description: IP Address of first SNMP Server
+  snmp_ip_1: 
+    type: string
+    description: IP Address of second SNMP Server
+  snmp_ip_2: 
+    type: string
+    description: IP Address of third SNMP Server
+  snmp_ip_3: 
+    type: string
+    description: IP Address of fourth SNMP Server
+  tacplus_key_0: 
+    type: string
+    description: TACPLUS key
+  tacplus_ip_0: 
+    type: string
+    description: IP Address of first TACPLUS Server
+  tacplus_ip_1: 
+    type: string
+    description: IP Address of first TACPLUS Server
+  tacplus_ip_2: 
+    type: string
+    description: IP Address of first TACPLUS Server
+  tacplus_ip_3: 
+    type: string
+    description: IP Address of first TACPLUS Server
+  tacplus_port_0: 
+    type: string
+    description: TACPLUS Domain Port
+#Networking Parameters
+#SRIOV Port 0
+  vce_SRIOV1_0_net_id:
+    type: string
+    description: SRIOV Provider 0 network id 
+  vce_SRIOV1_0_port_name:
+    type: string
+    description: name for sriov Port 0
+  ATT_VF_VLAN_FILTER_vCE_SRIOV1_0: 
+    type: json
+    description: VF VLAN Filters specified in JSON list object
+  ATT_VF_VLAN_STRIP_vCE_SRIOV1_0:
+    type: boolean
+    description: boolean to specify VLAN Strip option
+  ATT_VF_VLAN_ANTI_SPOOF_CHECK_vCE_SRIOV1_0: 
+    type: boolean
+    description: boolean to specify vlan anti spoof check option
+  ATT_VF_MAC_ANTI_SPOOF_CHECK_vCE_SRIOV1_0:
+    type: boolean
+    description: boolean to specify mac anti spoof check option
+  ATT_VF_BROADCAST_ALLOW_vCE_SRIOV1_0:
+    type: boolean
+    description: boolean to specify allowance of broadcast traffic
+  ATT_VF_UNKNOWN_MULTICAST_ALLOW_vCE_SRIOV1_0:
+    type: boolean
+    description: boolean to specify allowance of unknown multicast
+  ATT_VF_UNKNOWN_UNICAST_ALLOW_vCE_SRIOV1_0:
+    type: boolean
+    description: boolean to specify allowance of unknown unicast
+  ATT_VF_INSERT_STAG_vCE_SRIOV1_0:
+    type: boolean
+    description: boolean to specify insertion of outer tag for traffic coming out of VM
+  ATT_VF_LINK_STATUS_vCE_SRIOV1_0:
+    type: string
+    description: specify link status of SRIOV VF
+#SRIOV Port 1
+  vce_SRIOV2_0_net_id:
+    type: string
+    description: SRIOV Provider 1 network id 
+  vce_SRIOV2_0_port_name:
+    type: string
+    description: name for sriov Port 1
+  ATT_VF_VLAN_FILTER_vCE_SRIOV2_0: 
+    type: json
+    description: VF VLAN Filters specified in JSON list object
+  ATT_VF_VLAN_STRIP_vCE_SRIOV2_0:
+    type: boolean
+    description: boolean to specify VLAN Strip option
+  ATT_VF_VLAN_ANTI_SPOOF_CHECK_vCE_SRIOV2_0: 
+    type: boolean
+    description: boolean to specify vlan anti spoof check option
+  ATT_VF_MAC_ANTI_SPOOF_CHECK_vCE_SRIOV2_0:
+    type: boolean
+    description: boolean to specify mac anti spoof check option
+  ATT_VF_BROADCAST_ALLOW_vCE_SRIOV2_0:
+    type: boolean
+    description: boolean to specify allowance of broadcast traffic
+  ATT_VF_UNKNOWN_MULTICAST_ALLOW_vCE_SRIOV2_0:
+    type: boolean
+    description: boolean to specify allowance of unknown multicast
+  ATT_VF_UNKNOWN_UNICAST_ALLOW_vCE_SRIOV2_0:
+    type: boolean
+    description: boolean to specify allowance of unknown unicast
+  ATT_VF_INSERT_STAG_vCE_SRIOV2_0:
+    type: boolean
+    description: boolean to specify insertion of outer tag for traffic coming out of VM
+  ATT_VF_LINK_STATUS_vCE_SRIOV2_0:
+    type: string
+    description: specify link status of SRIOV VF
+#OAM Port 0
+  oam0_net_id:
+    type: string
+    description: OAM network - 1st vNIC
+  vce_oam0_port_name:
+    type: string
+    description: Neutron name for the OAM Port
+  vce_oam0_ip_0:
+    type: string
+    description: IP Address of OAM port
+  oam0_subnet_0_default_gateway:
+    type: string
+    description: Default Gateway for OAM network
+
+
+
+# NOTE: Normally when creating an OS SR-IOV Neutron port, you have to specify the binding:vnic_type=direct;
+
+resources:
+  vce_oam0_port:
+    type: OS::Neutron::Port
+    properties:
+      admin_state_up: true
+      name: { get_param: vce_oam0_port_name}
+      network: { get_param: oam0_net_id }
+      fixed_ips: [ { "ip_address": {get_param: vce_oam0_ip_0}}]
+
+  vce_SRIOV1_0_port:
+    type: OS::Neutron::Port
+    properties:
+      admin_state_up: true
+      name: { get_param: vce_SRIOV1_0_port_name}
+      network: { get_param: vce_SRIOV1_0_net_id }
+      binding:vnic_type: direct
+      value_specs:  
+           ATT_VF_VLAN_FILTER: { get_param: ATT_VF_VLAN_FILTER_vCE_SRIOV1_0 }
+           ATT_VF_VLAN_STRIP: { get_param: ATT_VF_VLAN_STRIP_vCE_SRIOV1_0 }
+           ATT_VF_VLAN_ANTI_SPOOF_CHECK: { get_param: ATT_VF_VLAN_ANTI_SPOOF_CHECK_vCE_SRIOV1_0 }
+           ATT_VF_MAC_ANTI_SPOOF_CHECK: { get_param: ATT_VF_MAC_ANTI_SPOOF_CHECK_vCE_SRIOV1_0 }
+           ATT_VF_BROADCAST_ALLOW: { get_param: ATT_VF_BROADCAST_ALLOW_vCE_SRIOV1_0 }
+           ATT_VF_UNKNOWN_MULTICAST_ALLOW: { get_param: ATT_VF_UNKNOWN_MULTICAST_ALLOW_vCE_SRIOV1_0 }
+           ATT_VF_UNKNOWN_UNICAST_ALLOW: { get_param: ATT_VF_UNKNOWN_UNICAST_ALLOW_vCE_SRIOV1_0 }
+           ATT_VF_INSERT_STAG: { get_param: ATT_VF_INSERT_STAG_vCE_SRIOV1_0 }
+           ATT_VF_LINK_STATUS: { get_param: ATT_VF_LINK_STATUS_vCE_SRIOV1_0 }
+           ATT_FABRIC_CONFIGURATION_REQUIRED: true
+
+  vce_SRIOV2_0_port:
+    type: OS::Neutron::Port
+    properties:
+      admin_state_up: true
+      name: { get_param: vce_SRIOV2_0_port_name}
+      network: { get_param: vce_SRIOV2_0_net_id }
+      binding:vnic_type: direct
+      value_specs:  
+           ATT_VF_VLAN_FILTER: { get_param: ATT_VF_VLAN_FILTER_vCE_SRIOV2_0 }
+           ATT_VF_VLAN_STRIP: { get_param: ATT_VF_VLAN_STRIP_vCE_SRIOV2_0 }
+           ATT_VF_VLAN_ANTI_SPOOF_CHECK: { get_param: ATT_VF_VLAN_ANTI_SPOOF_CHECK_vCE_SRIOV2_0 }
+           ATT_VF_MAC_ANTI_SPOOF_CHECK: { get_param: ATT_VF_MAC_ANTI_SPOOF_CHECK_vCE_SRIOV2_0 }
+           ATT_VF_BROADCAST_ALLOW: { get_param: ATT_VF_BROADCAST_ALLOW_vCE_SRIOV2_0 }
+           ATT_VF_UNKNOWN_MULTICAST_ALLOW: { get_param: ATT_VF_UNKNOWN_MULTICAST_ALLOW_vCE_SRIOV2_0 }
+           ATT_VF_UNKNOWN_UNICAST_ALLOW: { get_param: ATT_VF_UNKNOWN_UNICAST_ALLOW_vCE_SRIOV2_0 }
+           ATT_VF_INSERT_STAG: { get_param: ATT_VF_INSERT_STAG_vCE_SRIOV2_0 }
+           ATT_VF_LINK_STATUS: { get_param: ATT_VF_LINK_STATUS_vCE_SRIOV2_0 }
+           ATT_FABRIC_CONFIGURATION_REQUIRED: true
+
+  vce_0:
+    type: OS::Nova::Server
+    properties:
+      name: { get_param: vce_name_0 }
+      block_device_mapping: 
+      - device_name: vda
+        volume_id: { get_param: vce_volume_id_0 }
+        delete_on_termination: false
+      flavor: { get_param: vce_flavor_name }
+      availability_zone: { get_param: availability_zone_0 }
+      networks:
+      - port: { get_resource: vce_oam0_port }
+      - port: { get_resource: vce_SRIOV1_0_port }
+      - port: { get_resource: vce_SRIOV2_0_port }
+      metadata:
+        vnf_name: { get_param: vnf_name }
+        vnf_id: { get_param: vnf_id }
+        vf_module_name: { get_param: vf_module_name }
+        vf_module_id: { get_param: vf_module_id }
+        hostname: { get_param: vnf_name }
+        gateway: { get_param: oam0_subnet_0_default_gateway }
+        sdnc_model_name:  { get_param: sdnc_model_name }
+        sdnc_model_version: { get_param: sdnc_model_version }
+        sdnc_artifact_name:  { get_param: sdnc_artifact_name }
+      user_data_format: RAW
+      user_data: 
+        str_replace:
+          params: 
+            $OAM0_IP_0: { get_param: vce_oam0_ip_0 }
+            $OAM0_GATEWAY: { get_param: oam0_subnet_0_default_gateway }
+            $DCAE_CTS: { get_param: dcae_0 }
+            $HOSTNAME: { get param: vnf_name }
+            $NTP_SERVER_IPV4_1: { get_param: ntp_ip_0 }
+            $NTP_SERVER_IPV4_2: { get_param: ntp_ip_1 }
+            $SYSLOG_SERVER_IPV4_1: { get_param: syslog_ip_0 }
+            $SYSLOG_SERVER_IPV4_2: { get_param: syslog_ip_1 }
+            $SYSLOG_SERVER_IPV4_3: { get_param: syslog_ip_2 }
+            $SYSLOG_SERVER_IPV4_4: { get_param: syslog_ip_3 }
+            $SNMP_COMMUNITY: { get_param: snmp_community_0 }
+            $SNMP_TRAP_SERVER_IPV4_1: { get_param: snmp_ip_0 }
+            $SNMP_TRAP_SERVER_IPV4_2: { get_param: snmp_ip_1 }
+            $SNMP_TRAP_SERVER_IPV4_3: { get_param: snmp_ip_2 }
+            $SNMP_TRAP_SERVER_IPV4_4: { get_param: snmp_ip_3 }
+            $TACPLUS_KEY: { get_param: tacplus_key_0 }
+            $TACPLUS_SERVER_IPV4_1: { get_param: tacplus_ip_0 }
+            $TACPLUS_SERVER_IPV4_2: { get_param: tacplus_ip_1 }
+            $TACPLUS_SERVER_IPV4_3: { get_param: tacplus_ip_2 }
+            $TACPLUS_SERVER_IPV4_4: { get_param: tacplus_ip_3 }
+            $TACPLUS_DOMAIN_PORT: { get_param: tacplus_port_0 }
+
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/localNode/novaServerWithFabricConfigurationCapability/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/localNode/novaServerWithFabricConfigurationCapability/out/GlobalSubstitutionTypesServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..75b3040
--- /dev/null
@@ -0,0 +1,753 @@
+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.vce:
+    derived_from: org.openecomp.resource.abstract.nodes.VFC
+    properties:
+      port_vce_SRIOV2_0_port_binding:vnic_type:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_vce_SRIOV1_0_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_vce_SRIOV2_0_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_vce_SRIOV1_0_port_value_specs:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
+      compute_vce_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      compute_vce_metadata:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
+      port_vce_oam0_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_vce_SRIOV1_0_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_vce_SRIOV1_0_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_vce_SRIOV2_0_port_value_specs:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
+      port_vce_oam0_port_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_vce_SRIOV2_0_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_vce_oam0_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_vce_SRIOV1_0_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_vce_oam0_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_vce_oam0_port_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_vce_oam0_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_vce_SRIOV1_0_port_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_vce_SRIOV2_0_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      compute_vce_availability_zone:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_vce_oam0_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_vce_SRIOV1_0_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_vce_SRIOV2_0_port_admin_state_up:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: boolean
+      port_vce_SRIOV2_0_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_vce_SRIOV1_0_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        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_vce_SRIOV1_0_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_vce_SRIOV1_0_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_vce_SRIOV2_0_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_vce_SRIOV2_0_port_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_vce_SRIOV2_0_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_vce_SRIOV1_0_port_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_vce_SRIOV2_0_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_vce_oam0_port_fixed_ips:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+      port_vce_oam0_port_admin_state_up:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: boolean
+      port_vce_SRIOV2_0_port_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_vce_oam0_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_vce_SRIOV2_0_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_vce_SRIOV1_0_port_admin_state_up:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: boolean
+      compute_vce_user_data_format:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_vce_oam0_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_vce_oam0_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_vce_SRIOV1_0_port_binding:vnic_type:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+    requirements:
+    - dependency_vce:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - local_storage_vce:
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_vce_vce_SRIOV2_0_port:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_vce_vce_SRIOV2_0_port:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_vce_vce_oam0_port:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_vce_vce_oam0_port:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_vce_vce_SRIOV1_0_port:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_vce_vce_SRIOV1_0_port:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    capabilities:
+      memory.resident_vce:
+        type: org.openecomp.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_vce_vce_SRIOV2_0_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_vce:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_vce_vce_oam0_port:
+        type: org.openecomp.capabilities.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_vce_vce_SRIOV1_0_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      scalable_vce:
+        type: tosca.capabilities.Scalable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu_vce:
+        type: org.openecomp.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_vce_vce_oam0_port:
+        type: org.openecomp.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_vce_vce_SRIOV1_0_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.usage_vce:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      forwarder_vce_vce_oam0_port:
+        type: org.openecomp.capabilities.Forwarder
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.bytes_vce:
+        type: org.openecomp.capabilities.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_vce_vce_oam0_port:
+        type: org.openecomp.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_vce_vce_SRIOV2_0_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_vce_vce_SRIOV1_0_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      os_vce:
+        type: tosca.capabilities.OperatingSystem
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.allocation_vce:
+        type: org.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_vce:
+        type: tosca.capabilities.network.Bindable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets.rate_vce_vce_SRIOV2_0_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_vce_vce_SRIOV2_0_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_vce_vce_SRIOV1_0_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      forwarder_vce_vce_SRIOV1_0_port:
+        type: org.openecomp.capabilities.Forwarder
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_vce_vce_SRIOV2_0_port:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      instance_vce:
+        type: org.openecomp.capabilities.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_vce:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      fabric_configuration_monitoring_vce:
+        type: org.openecomp.capabilities.FabricConfiguration
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.allocation_vce:
+        type: org.openecomp.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_vce_vce_SRIOV1_0_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.bytes.rate_vce:
+        type: org.openecomp.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_vce:
+        type: org.openecomp.capabilities.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_vce:
+        type: org.openecomp.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_vce:
+        type: org.openecomp.capabilities.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_vce_vce_SRIOV2_0_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.capacity_vce:
+        type: org.openecomp.capabilities.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_vce:
+        type: org.openecomp.capabilities.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_vce_vce_oam0_port:
+        type: org.openecomp.capabilities.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_vce:
+        type: org.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_vce_vce_oam0_port:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_vce_vce_SRIOV1_0_port:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_vce_vce_SRIOV2_0_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_vce_vce_SRIOV1_0_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_vce_vce_SRIOV2_0_port:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_vce_vce_SRIOV1_0_port:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.requests_vce:
+        type: org.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_vce:
+        type: org.openecomp.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_vce_vce_oam0_port:
+        type: org.openecomp.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_vce:
+        type: org.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_vce:
+        type: org.openecomp.capabilities.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_vce:
+        type: org.openecomp.capabilities.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_vce:
+        type: org.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_vce_vce_SRIOV2_0_port:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets.rate_vce_vce_oam0_port:
+        type: org.openecomp.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_vce_vce_oam0_port:
+        type: org.openecomp.capabilities.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_vce:
+        type: org.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_vce:
+        type: tosca.capabilities.Container
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.latency_vce:
+        type: org.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_vce:
+        type: org.openecomp.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_vce:
+        type: org.openecomp.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_vce_vce_SRIOV2_0_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_vce_vce_SRIOV1_0_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.iops_vce:
+        type: org.openecomp.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_vce:
+        type: org.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_vce_vce_SRIOV1_0_port:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      forwarder_vce_vce_SRIOV2_0_port:
+        type: org.openecomp.capabilities.Forwarder
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.iops_vce:
+        type: org.openecomp.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_vce:
+        type: org.openecomp.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_vce_vce_SRIOV2_0_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_vce_vce_oam0_port:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      network.incoming.bytes_vce_vce_SRIOV1_0_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes_vce_vce_oam0_port:
+        type: org.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_vce:
+        type: org.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_vce_vce_oam0_port:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.bytes_vce:
+        type: org.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_vce:
+        type: org.openecomp.capabilities.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_vce:
+        type: org.openecomp.capabilities.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_vce:
+        type: org.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_vce:
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.requests_vce:
+        type: org.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-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/localNode/novaServerWithFabricConfigurationCapability/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/localNode/novaServerWithFabricConfigurationCapability/out/MainServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..8222ef9
--- /dev/null
@@ -0,0 +1,869 @@
+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:
+    ATT_VF_UNKNOWN_UNICAST_ALLOW_vCE_SRIOV2_0:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_vCE
+            source_type: HEAT
+            param_name: ATT_VF_UNKNOWN_UNICAST_ALLOW_vCE_SRIOV2_0
+      type: boolean
+      description: boolean to specify allowance of unknown unicast
+    oam0_net_id:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_vCE
+            source_type: HEAT
+            param_name: oam0_net_id
+      type: string
+      description: OAM network - 1st vNIC
+    vce_flavor_name:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_vCE
+            source_type: HEAT
+            param_name: vce_flavor_name
+      type: string
+      description: VM instance sizing
+    ATT_VF_VLAN_STRIP_vCE_SRIOV2_0:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_vCE
+            source_type: HEAT
+            param_name: ATT_VF_VLAN_STRIP_vCE_SRIOV2_0
+      type: boolean
+      description: boolean to specify VLAN Strip option
+    dcae_0:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_vCE
+            source_type: HEAT
+            param_name: dcae_0
+      type: string
+      description: IP Address of DCAE CTS Server
+    ATT_VF_VLAN_FILTER_vCE_SRIOV2_0:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_vCE
+            source_type: HEAT
+            param_name: ATT_VF_VLAN_FILTER_vCE_SRIOV2_0
+      type: json
+      description: VF VLAN Filters specified in JSON list object
+    ATT_VF_INSERT_STAG_vCE_SRIOV1_0:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_vCE
+            source_type: HEAT
+            param_name: ATT_VF_INSERT_STAG_vCE_SRIOV1_0
+      type: boolean
+      description: boolean to specify insertion of outer tag for traffic coming out of VM
+    vce_name_0:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_vCE
+            source_type: HEAT
+            param_name: vce_name_0
+      type: string
+      description: Name of the VM
+    tacplus_ip_3:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_vCE
+            source_type: HEAT
+            param_name: tacplus_ip_3
+      type: string
+      description: IP Address of first TACPLUS Server
+    tacplus_ip_2:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_vCE
+            source_type: HEAT
+            param_name: tacplus_ip_2
+      type: string
+      description: IP Address of first TACPLUS Server
+    tacplus_ip_1:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_vCE
+            source_type: HEAT
+            param_name: tacplus_ip_1
+      type: string
+      description: IP Address of first TACPLUS Server
+    tacplus_ip_0:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_vCE
+            source_type: HEAT
+            param_name: tacplus_ip_0
+      type: string
+      description: IP Address of first TACPLUS Server
+    ATT_VF_BROADCAST_ALLOW_vCE_SRIOV1_0:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_vCE
+            source_type: HEAT
+            param_name: ATT_VF_BROADCAST_ALLOW_vCE_SRIOV1_0
+      type: boolean
+      description: boolean to specify allowance of broadcast traffic
+    oam0_subnet_0_default_gateway:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_vCE
+            source_type: HEAT
+            param_name: oam0_subnet_0_default_gateway
+      type: string
+      description: Default Gateway for OAM network
+    vce_SRIOV1_0_net_id:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_vCE
+            source_type: HEAT
+            param_name: vce_SRIOV1_0_net_id
+      type: string
+      description: SRIOV Provider 0 network id
+    sdnc_artifact_name:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_vCE
+            source_type: HEAT
+            param_name: sdnc_artifact_name
+      type: string
+      description: SDNC Artifact Name
+    tacplus_key_0:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_vCE
+            source_type: HEAT
+            param_name: tacplus_key_0
+      type: string
+      description: TACPLUS key
+    ATT_VF_LINK_STATUS_vCE_SRIOV1_0:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_vCE
+            source_type: HEAT
+            param_name: ATT_VF_LINK_STATUS_vCE_SRIOV1_0
+      type: string
+      description: specify link status of SRIOV VF
+    ATT_VF_UNKNOWN_MULTICAST_ALLOW_vCE_SRIOV2_0:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_vCE
+            source_type: HEAT
+            param_name: ATT_VF_UNKNOWN_MULTICAST_ALLOW_vCE_SRIOV2_0
+      type: boolean
+      description: boolean to specify allowance of unknown multicast
+    syslog_ip_2:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_vCE
+            source_type: HEAT
+            param_name: syslog_ip_2
+      type: string
+      description: IP Address of third syslog Server
+    syslog_ip_3:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_vCE
+            source_type: HEAT
+            param_name: syslog_ip_3
+      type: string
+      description: IP Address of fourth syslog Server
+    vce_oam0_port_name:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_vCE
+            source_type: HEAT
+            param_name: vce_oam0_port_name
+      type: string
+      description: Neutron name for the OAM Port
+    syslog_ip_0:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_vCE
+            source_type: HEAT
+            param_name: syslog_ip_0
+      type: string
+      description: IP Address of first syslog Server
+    syslog_ip_1:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_vCE
+            source_type: HEAT
+            param_name: syslog_ip_1
+      type: string
+      description: IP Address of second syslog Server
+    ATT_VF_MAC_ANTI_SPOOF_CHECK_vCE_SRIOV2_0:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_vCE
+            source_type: HEAT
+            param_name: ATT_VF_MAC_ANTI_SPOOF_CHECK_vCE_SRIOV2_0
+      type: boolean
+      description: boolean to specify mac anti spoof check option
+    sdnc_model_version:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_vCE
+            source_type: HEAT
+            param_name: sdnc_model_version
+      type: string
+      description: SDNC Model Version
+    ATT_VF_VLAN_ANTI_SPOOF_CHECK_vCE_SRIOV2_0:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_vCE
+            source_type: HEAT
+            param_name: ATT_VF_VLAN_ANTI_SPOOF_CHECK_vCE_SRIOV2_0
+      type: boolean
+      description: boolean to specify vlan anti spoof check option
+    vf_module_id:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_vCE
+            source_type: HEAT
+            param_name: vf_module_id
+      type: string
+      description: Unique ID for this VF Module instance -- Not used for this VNF
+    ATT_VF_UNKNOWN_UNICAST_ALLOW_vCE_SRIOV1_0:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_vCE
+            source_type: HEAT
+            param_name: ATT_VF_UNKNOWN_UNICAST_ALLOW_vCE_SRIOV1_0
+      type: boolean
+      description: boolean to specify allowance of unknown unicast
+    vnf_name:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_vCE
+            source_type: HEAT
+            param_name: vnf_name
+      type: string
+      description: Unique name for this VF instance
+    vce_SRIOV2_0_net_id:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_vCE
+            source_type: HEAT
+            param_name: vce_SRIOV2_0_net_id
+      type: string
+      description: SRIOV Provider 1 network id
+    vf_module_name:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_vCE
+            source_type: HEAT
+            param_name: vf_module_name
+      type: string
+      description: Unique name for this VF Module instance -- Not used for this VNF
+    ATT_VF_VLAN_STRIP_vCE_SRIOV1_0:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_vCE
+            source_type: HEAT
+            param_name: ATT_VF_VLAN_STRIP_vCE_SRIOV1_0
+      type: boolean
+      description: boolean to specify VLAN Strip option
+    ntp_ip_1:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_vCE
+            source_type: HEAT
+            param_name: ntp_ip_1
+      type: string
+      description: IP Address of secondary NTP Server
+    tacplus_port_0:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_vCE
+            source_type: HEAT
+            param_name: tacplus_port_0
+      type: string
+      description: TACPLUS Domain Port
+    ntp_ip_0:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_vCE
+            source_type: HEAT
+            param_name: ntp_ip_0
+      type: string
+      description: IP Address of primary NTP Server
+    ATT_VF_VLAN_FILTER_vCE_SRIOV1_0:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_vCE
+            source_type: HEAT
+            param_name: ATT_VF_VLAN_FILTER_vCE_SRIOV1_0
+      type: json
+      description: VF VLAN Filters specified in JSON list object
+    ATT_VF_INSERT_STAG_vCE_SRIOV2_0:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_vCE
+            source_type: HEAT
+            param_name: ATT_VF_INSERT_STAG_vCE_SRIOV2_0
+      type: boolean
+      description: boolean to specify insertion of outer tag for traffic coming out of VM
+    vnf_id:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_vCE
+            source_type: HEAT
+            param_name: vnf_id
+      type: string
+      description: Unique ID for this VF instance; Unique ID for VNF for AAI metadata
+    vce_oam0_ip_0:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_vCE
+            source_type: HEAT
+            param_name: vce_oam0_ip_0
+      type: string
+      description: IP Address of OAM port
+    availability_zone_0:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_vCE
+            source_type: HEAT
+            param_name: availability_zone_0
+      type: string
+      description: The Availability Zone to launch the instance.
+    ATT_VF_BROADCAST_ALLOW_vCE_SRIOV2_0:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_vCE
+            source_type: HEAT
+            param_name: ATT_VF_BROADCAST_ALLOW_vCE_SRIOV2_0
+      type: boolean
+      description: boolean to specify allowance of broadcast traffic
+    vce_SRIOV2_0_port_name:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_vCE
+            source_type: HEAT
+            param_name: vce_SRIOV2_0_port_name
+      type: string
+      description: name for sriov Port 1
+    vce_SRIOV1_0_port_name:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_vCE
+            source_type: HEAT
+            param_name: vce_SRIOV1_0_port_name
+      type: string
+      description: name for sriov Port 0
+    ATT_VF_LINK_STATUS_vCE_SRIOV2_0:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_vCE
+            source_type: HEAT
+            param_name: ATT_VF_LINK_STATUS_vCE_SRIOV2_0
+      type: string
+      description: specify link status of SRIOV VF
+    snmp_ip_0:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_vCE
+            source_type: HEAT
+            param_name: snmp_ip_0
+      type: string
+      description: IP Address of first SNMP Server
+    ATT_VF_UNKNOWN_MULTICAST_ALLOW_vCE_SRIOV1_0:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_vCE
+            source_type: HEAT
+            param_name: ATT_VF_UNKNOWN_MULTICAST_ALLOW_vCE_SRIOV1_0
+      type: boolean
+      description: boolean to specify allowance of unknown multicast
+    snmp_ip_2:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_vCE
+            source_type: HEAT
+            param_name: snmp_ip_2
+      type: string
+      description: IP Address of third SNMP Server
+    snmp_ip_1:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_vCE
+            source_type: HEAT
+            param_name: snmp_ip_1
+      type: string
+      description: IP Address of second SNMP Server
+    snmp_community_0:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_vCE
+            source_type: HEAT
+            param_name: snmp_community_0
+      type: string
+      description: SNMP Community value
+    snmp_ip_3:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_vCE
+            source_type: HEAT
+            param_name: snmp_ip_3
+      type: string
+      description: IP Address of fourth SNMP Server
+    ATT_VF_VLAN_ANTI_SPOOF_CHECK_vCE_SRIOV1_0:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_vCE
+            source_type: HEAT
+            param_name: ATT_VF_VLAN_ANTI_SPOOF_CHECK_vCE_SRIOV1_0
+      type: boolean
+      description: boolean to specify vlan anti spoof check option
+    vce_volume_id_0:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_vCE
+            source_type: HEAT
+            param_name: vce_volume_id_0
+      type: string
+      description: ID of the boot disk volume
+    ATT_VF_MAC_ANTI_SPOOF_CHECK_vCE_SRIOV1_0:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_vCE
+            source_type: HEAT
+            param_name: ATT_VF_MAC_ANTI_SPOOF_CHECK_vCE_SRIOV1_0
+      type: boolean
+      description: boolean to specify mac anti spoof check option
+    sdnc_model_name:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_vCE
+            source_type: HEAT
+            param_name: sdnc_model_name
+      type: string
+      description: SDNC Blue Print Name
+  node_templates:
+    abstract_vce:
+      type: org.openecomp.resource.abstract.nodes.vce
+      directives:
+      - substitutable
+      properties:
+        port_vce_SRIOV2_0_port_binding:vnic_type:
+        - direct
+        port_vce_SRIOV1_0_port_network_role_tag: vce_SRIOV1_0
+        port_vce_SRIOV1_0_port_value_specs:
+        - ATT_VF_BROADCAST_ALLOW:
+            get_input: ATT_VF_BROADCAST_ALLOW_vCE_SRIOV1_0
+          ATT_VF_VLAN_ANTI_SPOOF_CHECK:
+            get_input: ATT_VF_VLAN_ANTI_SPOOF_CHECK_vCE_SRIOV1_0
+          ATT_VF_UNKNOWN_MULTICAST_ALLOW:
+            get_input: ATT_VF_UNKNOWN_MULTICAST_ALLOW_vCE_SRIOV1_0
+          ATT_FABRIC_CONFIGURATION_REQUIRED: true
+          ATT_VF_MAC_ANTI_SPOOF_CHECK:
+            get_input: ATT_VF_MAC_ANTI_SPOOF_CHECK_vCE_SRIOV1_0
+          ATT_VF_VLAN_FILTER:
+            get_input: ATT_VF_VLAN_FILTER_vCE_SRIOV1_0
+          ATT_VF_VLAN_STRIP:
+            get_input: ATT_VF_VLAN_STRIP_vCE_SRIOV1_0
+          ATT_VF_LINK_STATUS:
+            get_input: ATT_VF_LINK_STATUS_vCE_SRIOV1_0
+          ATT_VF_UNKNOWN_UNICAST_ALLOW:
+            get_input: ATT_VF_UNKNOWN_UNICAST_ALLOW_vCE_SRIOV1_0
+          ATT_VF_INSERT_STAG:
+            get_input: ATT_VF_INSERT_STAG_vCE_SRIOV1_0
+        compute_vce_name:
+        - get_input: vce_name_0
+        compute_vce_metadata:
+        - vf_module_id:
+            get_input: vf_module_id
+          hostname:
+            get_input: vnf_name
+          vnf_id:
+            get_input: vnf_id
+          sdnc_model_version:
+            get_input: sdnc_model_version
+          sdnc_artifact_name:
+            get_input: sdnc_artifact_name
+          vnf_name:
+            get_input: vnf_name
+          sdnc_model_name:
+            get_input: sdnc_model_name
+          vf_module_name:
+            get_input: vf_module_name
+          gateway:
+            get_input: oam0_subnet_0_default_gateway
+        port_vce_SRIOV1_0_port_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        vm_flavor_name:
+          get_input: vce_flavor_name
+        port_vce_SRIOV2_0_port_value_specs:
+        - ATT_VF_BROADCAST_ALLOW:
+            get_input: ATT_VF_BROADCAST_ALLOW_vCE_SRIOV2_0
+          ATT_VF_VLAN_ANTI_SPOOF_CHECK:
+            get_input: ATT_VF_VLAN_ANTI_SPOOF_CHECK_vCE_SRIOV2_0
+          ATT_VF_UNKNOWN_MULTICAST_ALLOW:
+            get_input: ATT_VF_UNKNOWN_MULTICAST_ALLOW_vCE_SRIOV2_0
+          ATT_FABRIC_CONFIGURATION_REQUIRED: true
+          ATT_VF_MAC_ANTI_SPOOF_CHECK:
+            get_input: ATT_VF_MAC_ANTI_SPOOF_CHECK_vCE_SRIOV2_0
+          ATT_VF_VLAN_FILTER:
+            get_input: ATT_VF_VLAN_FILTER_vCE_SRIOV2_0
+          ATT_VF_VLAN_STRIP:
+            get_input: ATT_VF_VLAN_STRIP_vCE_SRIOV2_0
+          ATT_VF_LINK_STATUS:
+            get_input: ATT_VF_LINK_STATUS_vCE_SRIOV2_0
+          ATT_VF_UNKNOWN_UNICAST_ALLOW:
+            get_input: ATT_VF_UNKNOWN_UNICAST_ALLOW_vCE_SRIOV2_0
+          ATT_VF_INSERT_STAG:
+            get_input: ATT_VF_INSERT_STAG_vCE_SRIOV2_0
+        port_vce_oam0_port_network:
+        - get_input: oam0_net_id
+        port_vce_SRIOV2_0_port_network_role_tag: vce_SRIOV2_0
+        port_vce_oam0_port_network_role_tag: oam0
+        port_vce_oam0_port_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: true
+          floating_ip_count_required:
+            is_required: false
+        port_vce_oam0_port_name:
+        - get_input: vce_oam0_port_name
+        port_vce_SRIOV1_0_port_network:
+        - get_input: vce_SRIOV1_0_net_id
+        compute_vce_availability_zone:
+        - get_input: availability_zone_0
+        port_vce_SRIOV2_0_port_admin_state_up:
+        - true
+        port_vce_SRIOV1_0_port_mac_requirements:
+          mac_count_required:
+            is_required: false
+        port_vce_SRIOV2_0_port_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        port_vce_SRIOV2_0_port_network:
+        - get_input: vce_SRIOV2_0_net_id
+        port_vce_SRIOV1_0_port_name:
+        - get_input: vce_SRIOV1_0_port_name
+        port_vce_oam0_port_fixed_ips:
+        - ip_address:
+            get_input: vce_oam0_ip_0
+        port_vce_oam0_port_admin_state_up:
+        - true
+        port_vce_SRIOV2_0_port_name:
+        - get_input: vce_SRIOV2_0_port_name
+        port_vce_SRIOV2_0_port_mac_requirements:
+          mac_count_required:
+            is_required: false
+        port_vce_SRIOV1_0_port_admin_state_up:
+        - true
+        compute_vce_user_data_format:
+        - RAW
+        port_vce_oam0_port_mac_requirements:
+          mac_count_required:
+            is_required: false
+        port_vce_SRIOV1_0_port_binding:vnic_type:
+        - direct
+        service_template_filter:
+          substitute_service_template: Nested_vceServiceTemplate.yaml
+          count: 1
+        index_value:
+          get_property:
+          - SELF
+          - service_template_filter
+          - index_value
+  groups:
+    base_vCE_group:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/base_vCE.yaml
+        description: ATT Vyatta vRouter template with 3 ports total - 1 Mgmt - 2 SR-IOV.
+      members:
+      - abstract_vce
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/localNode/novaServerWithFabricConfigurationCapability/out/Nested_vceServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/localNode/novaServerWithFabricConfigurationCapability/out/Nested_vceServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..e757ac4
--- /dev/null
@@ -0,0 +1,618 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: Nested_vce
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+  org.openecomp.resource.vfc.compute.nodes.heat.vce:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    capabilities:
+      fabric_configuration_monitoring:
+        type: org.openecomp.capabilities.FabricConfiguration
+        occurrences:
+        - 1
+        - UNBOUNDED
+topology_template:
+  inputs:
+    port_vce_SRIOV2_0_port_binding:vnic_type:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_vce_SRIOV1_0_port_network_role_tag:
+      type: string
+      required: true
+    port_vce_SRIOV2_0_port_subnetpoolid:
+      type: string
+      required: true
+    port_vce_SRIOV1_0_port_value_specs:
+      type: list
+      required: true
+      entry_schema:
+        type: json
+    compute_vce_name:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    compute_vce_metadata:
+      type: list
+      required: true
+      entry_schema:
+        type: json
+    port_vce_oam0_port_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+    port_vce_SRIOV1_0_port_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+    port_vce_SRIOV1_0_port_network_role:
+      type: string
+      required: true
+    vm_flavor_name:
+      type: string
+      required: true
+    port_vce_SRIOV2_0_port_value_specs:
+      type: list
+      required: true
+      entry_schema:
+        type: json
+    port_vce_oam0_port_network:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_vce_SRIOV2_0_port_network_role_tag:
+      type: string
+      required: true
+    port_vce_oam0_port_network_role_tag:
+      type: string
+      required: true
+    port_vce_SRIOV1_0_port_order:
+      type: integer
+      required: true
+    port_vce_oam0_port_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+    port_vce_oam0_port_name:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_vce_oam0_port_order:
+      type: integer
+      required: true
+    port_vce_SRIOV1_0_port_network:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_vce_SRIOV2_0_port_order:
+      type: integer
+      required: true
+    compute_vce_availability_zone:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_vce_oam0_port_vlan_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.VlanRequirements
+    port_vce_SRIOV1_0_port_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+    port_vce_SRIOV2_0_port_admin_state_up:
+      type: list
+      required: true
+      entry_schema:
+        type: boolean
+    port_vce_SRIOV2_0_port_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+    port_vce_SRIOV1_0_port_mac_requirements:
+      type: org.openecomp.datatypes.network.MacRequirements
+      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_vce_SRIOV1_0_port_subnetpoolid:
+      type: string
+      required: true
+    port_vce_SRIOV1_0_port_vlan_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.VlanRequirements
+    port_vce_SRIOV2_0_port_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+    port_vce_SRIOV2_0_port_network:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_vce_SRIOV2_0_port_vlan_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.VlanRequirements
+    port_vce_SRIOV1_0_port_name:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_vce_SRIOV2_0_port_network_role:
+      type: string
+      required: true
+    port_vce_oam0_port_fixed_ips:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+    port_vce_oam0_port_admin_state_up:
+      type: list
+      required: true
+      entry_schema:
+        type: boolean
+    port_vce_SRIOV2_0_port_name:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_vce_oam0_port_subnetpoolid:
+      type: string
+      required: true
+    port_vce_SRIOV2_0_port_mac_requirements:
+      type: org.openecomp.datatypes.network.MacRequirements
+      required: true
+    port_vce_SRIOV1_0_port_admin_state_up:
+      type: list
+      required: true
+      entry_schema:
+        type: boolean
+    compute_vce_user_data_format:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_vce_oam0_port_mac_requirements:
+      type: org.openecomp.datatypes.network.MacRequirements
+      required: true
+    port_vce_oam0_port_network_role:
+      type: string
+      required: true
+    port_vce_SRIOV1_0_port_binding:vnic_type:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+  node_templates:
+    vce:
+      type: org.openecomp.resource.vfc.compute.nodes.heat.vce
+      properties:
+        availability_zone:
+          get_input:
+          - compute_vce_availability_zone
+          - index_value
+        flavor:
+          get_input: vm_flavor_name
+        metadata:
+          get_input:
+          - compute_vce_metadata
+          - index_value
+        name:
+          get_input:
+          - compute_vce_name
+          - index_value
+        user_data_format:
+          get_input:
+          - compute_vce_user_data_format
+          - index_value
+    vce_vce_SRIOV2_0_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        mac_requirements:
+          get_input: port_vce_SRIOV2_0_port_mac_requirements
+        order:
+          get_input: port_vce_SRIOV2_0_port_order
+        binding:vnic_type:
+          get_input:
+          - port_vce_SRIOV2_0_port_binding:vnic_type
+          - index_value
+        value_specs:
+          get_input:
+          - port_vce_SRIOV2_0_port_value_specs
+          - index_value
+        exCP_naming:
+          get_input: port_vce_SRIOV2_0_port_exCP_naming
+        vlan_requirements:
+          get_input: port_vce_SRIOV2_0_port_vlan_requirements
+        subinterface_indicator: false
+        ip_requirements:
+          get_input: port_vce_SRIOV2_0_port_ip_requirements
+        network_role_tag:
+          get_input: port_vce_SRIOV2_0_port_network_role_tag
+        admin_state_up:
+          get_input:
+          - port_vce_SRIOV2_0_port_admin_state_up
+          - index_value
+        network_role:
+          get_input: port_vce_SRIOV2_0_port_network_role
+        subnetpoolid:
+          get_input: port_vce_SRIOV2_0_port_subnetpoolid
+        name:
+          get_input:
+          - port_vce_SRIOV2_0_port_name
+          - index_value
+        network:
+          get_input:
+          - port_vce_SRIOV2_0_port_network
+          - index_value
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: vce
+          relationship: tosca.relationships.network.BindsTo
+    vce_vce_oam0_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        mac_requirements:
+          get_input: port_vce_oam0_port_mac_requirements
+        order:
+          get_input: port_vce_oam0_port_order
+        exCP_naming:
+          get_input: port_vce_oam0_port_exCP_naming
+        vlan_requirements:
+          get_input: port_vce_oam0_port_vlan_requirements
+        subinterface_indicator: false
+        ip_requirements:
+          get_input: port_vce_oam0_port_ip_requirements
+        network_role_tag:
+          get_input: port_vce_oam0_port_network_role_tag
+        admin_state_up:
+          get_input:
+          - port_vce_oam0_port_admin_state_up
+          - index_value
+        network_role:
+          get_input: port_vce_oam0_port_network_role
+        fixed_ips:
+          get_input:
+          - port_vce_oam0_port_fixed_ips
+          - index_value
+        subnetpoolid:
+          get_input: port_vce_oam0_port_subnetpoolid
+        name:
+          get_input:
+          - port_vce_oam0_port_name
+          - index_value
+        network:
+          get_input:
+          - port_vce_oam0_port_network
+          - index_value
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: vce
+          relationship: tosca.relationships.network.BindsTo
+    vce_vce_SRIOV1_0_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        mac_requirements:
+          get_input: port_vce_SRIOV1_0_port_mac_requirements
+        order:
+          get_input: port_vce_SRIOV1_0_port_order
+        binding:vnic_type:
+          get_input:
+          - port_vce_SRIOV1_0_port_binding:vnic_type
+          - index_value
+        value_specs:
+          get_input:
+          - port_vce_SRIOV1_0_port_value_specs
+          - index_value
+        exCP_naming:
+          get_input: port_vce_SRIOV1_0_port_exCP_naming
+        vlan_requirements:
+          get_input: port_vce_SRIOV1_0_port_vlan_requirements
+        subinterface_indicator: false
+        ip_requirements:
+          get_input: port_vce_SRIOV1_0_port_ip_requirements
+        network_role_tag:
+          get_input: port_vce_SRIOV1_0_port_network_role_tag
+        admin_state_up:
+          get_input:
+          - port_vce_SRIOV1_0_port_admin_state_up
+          - index_value
+        network_role:
+          get_input: port_vce_SRIOV1_0_port_network_role
+        subnetpoolid:
+          get_input: port_vce_SRIOV1_0_port_subnetpoolid
+        name:
+          get_input:
+          - port_vce_SRIOV1_0_port_name
+          - index_value
+        network:
+          get_input:
+          - port_vce_SRIOV1_0_port_network
+          - index_value
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: vce
+          relationship: tosca.relationships.network.BindsTo
+  substitution_mappings:
+    node_type: org.openecomp.resource.abstract.nodes.vce
+    capabilities:
+      memory.resident_vce:
+      - vce
+      - memory.resident
+      network.outpoing.packets_vce_vce_SRIOV2_0_port:
+      - vce_vce_SRIOV2_0_port
+      - network.outpoing.packets
+      feature_vce:
+      - vce
+      - feature
+      network.outgoing.packets.rate_vce_vce_oam0_port:
+      - vce_vce_oam0_port
+      - network.outgoing.packets.rate
+      network.incoming.packets.rate_vce_vce_SRIOV1_0_port:
+      - vce_vce_SRIOV1_0_port
+      - network.incoming.packets.rate
+      scalable_vce:
+      - vce
+      - scalable
+      cpu_vce:
+      - vce
+      - cpu
+      network.outgoing.bytes_vce_vce_oam0_port:
+      - vce_vce_oam0_port
+      - network.outgoing.bytes
+      network.outpoing.packets_vce_vce_SRIOV1_0_port:
+      - vce_vce_SRIOV1_0_port
+      - network.outpoing.packets
+      disk.usage_vce:
+      - vce
+      - disk.usage
+      forwarder_vce_vce_oam0_port:
+      - vce_vce_oam0_port
+      - forwarder
+      disk.device.write.bytes_vce:
+      - vce
+      - disk.device.write.bytes
+      network.incoming.bytes.rate_vce_vce_oam0_port:
+      - vce_vce_oam0_port
+      - network.incoming.bytes.rate
+      network.outgoing.packets.rate_vce_vce_SRIOV2_0_port:
+      - vce_vce_SRIOV2_0_port
+      - network.outgoing.packets.rate
+      network.outgoing.packets.rate_vce_vce_SRIOV1_0_port:
+      - vce_vce_SRIOV1_0_port
+      - network.outgoing.packets.rate
+      os_vce:
+      - vce
+      - os
+      disk.allocation_vce:
+      - vce
+      - disk.allocation
+      binding_vce:
+      - vce
+      - binding
+      network.incoming.packets.rate_vce_vce_SRIOV2_0_port:
+      - vce_vce_SRIOV2_0_port
+      - network.incoming.packets.rate
+      network.incoming.bytes.rate_vce_vce_SRIOV2_0_port:
+      - vce_vce_SRIOV2_0_port
+      - network.incoming.bytes.rate
+      network.incoming.bytes.rate_vce_vce_SRIOV1_0_port:
+      - vce_vce_SRIOV1_0_port
+      - network.incoming.bytes.rate
+      forwarder_vce_vce_SRIOV1_0_port:
+      - vce_vce_SRIOV1_0_port
+      - forwarder
+      binding_vce_vce_SRIOV2_0_port:
+      - vce_vce_SRIOV2_0_port
+      - binding
+      instance_vce:
+      - vce
+      - instance
+      disk.device.usage_vce:
+      - vce
+      - disk.device.usage
+      fabric_configuration_monitoring_vce:
+      - vce
+      - fabric_configuration_monitoring
+      disk.device.allocation_vce:
+      - vce
+      - disk.device.allocation
+      network.outgoing.bytes.rate_vce_vce_SRIOV1_0_port:
+      - vce_vce_SRIOV1_0_port
+      - network.outgoing.bytes.rate
+      disk.write.bytes.rate_vce:
+      - vce
+      - disk.write.bytes.rate
+      disk.ephemeral.size_vce:
+      - vce
+      - disk.ephemeral.size
+      disk.device.write.bytes.rate_vce:
+      - vce
+      - disk.device.write.bytes.rate
+      disk.read.bytes_vce:
+      - vce
+      - disk.read.bytes
+      network.incoming.bytes_vce_vce_SRIOV2_0_port:
+      - vce_vce_SRIOV2_0_port
+      - network.incoming.bytes
+      disk.capacity_vce:
+      - vce
+      - disk.capacity
+      disk.device.read.bytes.rate_vce:
+      - vce
+      - disk.device.read.bytes.rate
+      network.incoming.packets_vce_vce_oam0_port:
+      - vce_vce_oam0_port
+      - network.incoming.packets
+      disk.device.write.requests.rate_vce:
+      - vce
+      - disk.device.write.requests.rate
+      attachment_vce_vce_oam0_port:
+      - vce_vce_oam0_port
+      - attachment
+      feature_vce_vce_SRIOV1_0_port:
+      - vce_vce_SRIOV1_0_port
+      - feature
+      network.incoming.packets_vce_vce_SRIOV2_0_port:
+      - vce_vce_SRIOV2_0_port
+      - network.incoming.packets
+      network.incoming.packets_vce_vce_SRIOV1_0_port:
+      - vce_vce_SRIOV1_0_port
+      - network.incoming.packets
+      feature_vce_vce_SRIOV2_0_port:
+      - vce_vce_SRIOV2_0_port
+      - feature
+      attachment_vce_vce_SRIOV1_0_port:
+      - vce_vce_SRIOV1_0_port
+      - attachment
+      disk.write.requests_vce:
+      - vce
+      - disk.write.requests
+      memory_vce:
+      - vce
+      - memory
+      network.outpoing.packets_vce_vce_oam0_port:
+      - vce_vce_oam0_port
+      - network.outpoing.packets
+      disk.root.size_vce:
+      - vce
+      - disk.root.size
+      cpu.delta_vce:
+      - vce
+      - cpu.delta
+      disk.device.write.requests_vce:
+      - vce
+      - disk.device.write.requests
+      disk.device.read.requests.rate_vce:
+      - vce
+      - disk.device.read.requests.rate
+      attachment_vce_vce_SRIOV2_0_port:
+      - vce_vce_SRIOV2_0_port
+      - attachment
+      network.incoming.packets.rate_vce_vce_oam0_port:
+      - vce_vce_oam0_port
+      - network.incoming.packets.rate
+      network.outgoing.bytes.rate_vce_vce_oam0_port:
+      - vce_vce_oam0_port
+      - network.outgoing.bytes.rate
+      disk.device.read.bytes_vce:
+      - vce
+      - disk.device.read.bytes
+      host_vce:
+      - vce
+      - host
+      disk.device.latency_vce:
+      - vce
+      - disk.device.latency
+      vcpus_vce:
+      - vce
+      - vcpus
+      disk.write.requests.rate_vce:
+      - vce
+      - disk.write.requests.rate
+      network.outgoing.bytes_vce_vce_SRIOV2_0_port:
+      - vce_vce_SRIOV2_0_port
+      - network.outgoing.bytes
+      network.outgoing.bytes_vce_vce_SRIOV1_0_port:
+      - vce_vce_SRIOV1_0_port
+      - network.outgoing.bytes
+      disk.device.iops_vce:
+      - vce
+      - disk.device.iops
+      disk.latency_vce:
+      - vce
+      - disk.latency
+      binding_vce_vce_SRIOV1_0_port:
+      - vce_vce_SRIOV1_0_port
+      - binding
+      forwarder_vce_vce_SRIOV2_0_port:
+      - vce_vce_SRIOV2_0_port
+      - forwarder
+      disk.iops_vce:
+      - vce
+      - disk.iops
+      disk.read.bytes.rate_vce:
+      - vce
+      - disk.read.bytes.rate
+      network.outgoing.bytes.rate_vce_vce_SRIOV2_0_port:
+      - vce_vce_SRIOV2_0_port
+      - network.outgoing.bytes.rate
+      binding_vce_vce_oam0_port:
+      - vce_vce_oam0_port
+      - binding
+      network.incoming.bytes_vce_vce_SRIOV1_0_port:
+      - vce_vce_SRIOV1_0_port
+      - network.incoming.bytes
+      network.incoming.bytes_vce_vce_oam0_port:
+      - vce_vce_oam0_port
+      - network.incoming.bytes
+      cpu_util_vce:
+      - vce
+      - cpu_util
+      feature_vce_vce_oam0_port:
+      - vce_vce_oam0_port
+      - feature
+      disk.write.bytes_vce:
+      - vce
+      - disk.write.bytes
+      memory.usage_vce:
+      - vce
+      - memory.usage
+      disk.device.capacity_vce:
+      - vce
+      - disk.device.capacity
+      disk.device.read.requests_vce:
+      - vce
+      - disk.device.read.requests
+      endpoint_vce:
+      - vce
+      - endpoint
+      disk.read.requests_vce:
+      - vce
+      - disk.read.requests
+    requirements:
+      local_storage_vce:
+      - vce
+      - local_storage
+      link_vce_vce_SRIOV1_0_port:
+      - vce_vce_SRIOV1_0_port
+      - link
+      dependency_vce_vce_SRIOV1_0_port:
+      - vce_vce_SRIOV1_0_port
+      - dependency
+      link_vce_vce_SRIOV2_0_port:
+      - vce_vce_SRIOV2_0_port
+      - link
+      link_vce_vce_oam0_port:
+      - vce_vce_oam0_port
+      - link
+      dependency_vce_vce_oam0_port:
+      - vce_vce_oam0_port
+      - dependency
+      dependency_vce_vce_SRIOV2_0_port:
+      - vce_vce_SRIOV2_0_port
+      - dependency
+      dependency_vce:
+      - vce
+      - dependency
\ No newline at end of file