SRIOV for SDNF 79/59679/8
authorShnaider, Marina (ms7589) <ms7589@intl.att.com>
Wed, 8 Aug 2018 14:47:32 +0000 (17:47 +0300)
committerAvi Gaffa <avi.gaffa@amdocs.com>
Sun, 12 Aug 2018 07:19:36 +0000 (07:19 +0000)
Adding Fabric Configuration capability to the VFC/ compute

Change-Id: Ia518c56b75ec5355af94c28ac0b6bcfe11bc0d1e
Issue-ID: SDC-1601
Signed-off-by: Shnaider, Marina (ms7589) <ms7589@intl.att.com>
24 files changed:
openecomp-be/lib/openecomp-heat-lib/src/main/java/org/openecomp/sdc/heat/services/HeatConstants.java
openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-core/src/main/java/org/openecomp/sdc/generator/core/utils/GeneratorUtils.java
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/pom.xml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/HeatToToscaUtil.java
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationNovaServerImpl.java
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/BaseResourceTranslationTest.java
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationNovaServerImplTest.java [moved from openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/resources/OSNovaServerTest.java with 54% similarity]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/novaservertranslation/fabricConfiguration/2ports/input/MANIFEST.json [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/novaservertranslation/fabricConfiguration/2ports/input/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/novaservertranslation/fabricConfiguration/2ports/output/MainServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/novaservertranslation/fabricConfiguration/all_false/input/MANIFEST.json [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/novaservertranslation/fabricConfiguration/all_false/input/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/novaservertranslation/fabricConfiguration/all_false/output/MainServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/novaservertranslation/fabricConfiguration/one_port_true/input/MANIFEST.json [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/novaservertranslation/fabricConfiguration/one_port_true/input/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/novaservertranslation/fabricConfiguration/one_port_true/output/MainServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/novaservertranslation/fabricConfiguration/property_null/input/MANIFEST.json [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/novaservertranslation/fabricConfiguration/property_null/input/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/novaservertranslation/fabricConfiguration/property_null/output/MainServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/novaservertranslation/fabricConfiguration/without_property/input/MANIFEST.json [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/novaservertranslation/fabricConfiguration/without_property/input/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/novaservertranslation/fabricConfiguration/without_property/output/MainServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/datatypes/ToscaCapabilityType.java
openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/DataModelUtil.java

index 618418a..1fedcfb 100644 (file)
@@ -61,6 +61,8 @@ public class HeatConstants {
     public static final String NETWORK_PROPERTY_NAME = "network";
     public static final String SUBNETS_PROPERTY_NAME = "subnets";
     public static final String ENABLE_DHCP_PROPERTY_NAME = "enable_dhcp";
+    public static final String VALUE_SPECS_PROPERTY_NAME = "value_specs";
+    public static final String ATT_FABRIC_CONFIGURATION_REQUIRED = "ATT_FABRIC_CONFIGURATION_REQUIRED";
 
     private HeatConstants() {
         //Hide the implicit constructor
index 7fd6ab0..44ec36e 100644 (file)
@@ -133,7 +133,7 @@ public class GeneratorUtils {
                 }
             }
 
-            DataModelUtil.addNodeTypeCapabilitiesDef(substitutionNodeType, exposedCapabilitiesDefinition);
+            DataModelUtil.setNodeTypeCapabilitiesDef(substitutionNodeType, exposedCapabilitiesDefinition);
         } catch (Exception ex) {
             return null;
         }
index cb870df..5905602 100644 (file)
                     <skip>${skipTestRun}</skip>
                 </configuration>
             </plugin>
-        </plugins>
+        </plugins>           
     </build>
 
     <properties>
index 2d283d3..4054537 100644 (file)
@@ -603,6 +603,19 @@ public class HeatToToscaUtil {
                        && MapUtils.isNotEmpty(resource.getProperties()) && resource.getProperties().containsKey(
                 HeatConstants.VMI_REFS_PROPERTY_NAME);
     }
+    
+    public static boolean isValueSpecsPropertyExists(Resource resource) {
+        return  MapUtils.isNotEmpty(resource.getProperties()) && resource.getProperties().containsKey(
+                HeatConstants.VALUE_SPECS_PROPERTY_NAME);
+    }
+    
+    public static Optional<Object> getResourceProperty(Resource resource, String propertyName){
+        Map<String, Object> properties = resource.getProperties();
+        if(MapUtils.isNotEmpty(properties) && properties.containsKey(propertyName)){
+            return Optional.ofNullable(resource.getProperties().get(propertyName));
+        }
+        return Optional.empty();  
+    }
 
     public static String getSubInterfaceResourceType(Resource resource) {
         if (!HeatToToscaUtil.isYamlFile(resource.getType())) {
@@ -1224,7 +1237,7 @@ public class HeatToToscaUtil {
         exposedCapabilitiesDefinition = toscaAnalyzerService
                                                 .calculateExposedCapabilities(nodeTypeCapabilitiesDefinition,
                                                         fullFilledRequirementsDefinition);
-        DataModelUtil.addNodeTypeCapabilitiesDef(substitutionNodeType, exposedCapabilitiesDefinition);
+        DataModelUtil.setNodeTypeCapabilitiesDef(substitutionNodeType, exposedCapabilitiesDefinition);
         return substitutionMapping;
     }
 
index e70ca5f..3f5e417 100644 (file)
@@ -36,6 +36,8 @@ import org.onap.sdc.tosca.datatypes.model.NodeType;
 import org.onap.sdc.tosca.datatypes.model.RelationshipTemplate;
 import org.onap.sdc.tosca.datatypes.model.RequirementAssignment;
 import org.onap.sdc.tosca.datatypes.model.ServiceTemplate;
+import org.onap.sdc.tosca.datatypes.model.CapabilityDefinition;
+import org.openecomp.sdc.heat.datatypes.HeatBoolean;
 import org.openecomp.sdc.heat.datatypes.model.HeatOrchestrationTemplate;
 import org.openecomp.sdc.heat.datatypes.model.HeatResourcesTypes;
 import org.openecomp.sdc.heat.datatypes.model.PropertiesMapKeyTypes;
@@ -67,6 +69,8 @@ public class ResourceTranslationNovaServerImpl extends ResourceTranslationBase {
     private static final Logger logger = LoggerFactory.getLogger(ResourceTranslationNovaServerImpl.class);
     private static final String BLOCK_DEVICE_MAPPING_DEVICE_NAME = "device_name";
     private static final String VOL_ATTACH_DEVICE_PROPERTY_NAME = "device";
+    private static final String FABRIC_CONFIGURATION_KEY = "fabric_configuration_monitoring";
+   
 
     @Override
     protected void translate(TranslateTo translateTo) {
@@ -350,14 +354,43 @@ public class ResourceTranslationNovaServerImpl extends ResourceTranslationBase {
         }
 
         List<Map<String, Object>> heatNetworkList = (List<Map<String, Object>>) networks;
-
+        
+       
         for (Map<String, Object> heatNetwork : heatNetworkList) {
-            getOrTranslatePortTemplate(translateTo, heatNetwork.get(
-                    Constants.PORT_PROPERTY_NAME), translatedId, novaNodeTemplate);
+           
+            Optional<Resource> portResourceOp = getOrTranslatePortTemplate(translateTo, heatNetwork.get(
+                    Constants.PORT_PROPERTY_NAME), translatedId, novaNodeTemplate);            
+            portResourceOp.ifPresent(portResource -> handleFabricConfiguration(translateTo, novaNodeTemplate.getType(), portResource));                  
+            
         }
+        
+    }  
+    
+    private void handleFabricConfiguration(TranslateTo translateTo, String resourceType, Resource portResource ){ 
+       
+       Optional<Object> valueSpacesProperty = HeatToToscaUtil.getResourceProperty(portResource, HeatConstants.VALUE_SPECS_PROPERTY_NAME);
+       
+       valueSpacesProperty.filter(props -> props instanceof Map && MapUtils.isNotEmpty((Map)props)).ifPresent(valueSpecs ->{          
+           Object value = ((Map)(valueSpecs)).get(HeatConstants.ATT_FABRIC_CONFIGURATION_REQUIRED);
+           if(value!= null && HeatBoolean.eval(value )){
+               addFabricConfigurationCapability(translateTo, resourceType);
+           }
+           
+       });
+      
+    }
+    
+    private void addFabricConfigurationCapability(TranslateTo translateTo, String localType){
+        
+        ServiceTemplate serviceTemplate = translateTo.getServiceTemplate();
+        Map<String, CapabilityDefinition> mapCapabilities = new HashMap<>();
+        CapabilityDefinition fabricConfigurationCap = new CapabilityDefinition();        
+        fabricConfigurationCap.setType(ToscaCapabilityType.FABRIC_CONFIGURATION);
+        mapCapabilities.put(FABRIC_CONFIGURATION_KEY, fabricConfigurationCap);
+        DataModelUtil.addNodeTypeCapabilitiesDef (DataModelUtil.getNodeType(serviceTemplate, localType), mapCapabilities);            
     }
 
-    private void getOrTranslatePortTemplate(TranslateTo translateTo,
+    private Optional<Resource> getOrTranslatePortTemplate(TranslateTo translateTo,
                                                    Object port,
                                                    String novaServerResourceId,
                                                    NodeTemplate novaNodeTemplate) {
@@ -367,7 +400,7 @@ public class ResourceTranslationNovaServerImpl extends ResourceTranslationBase {
         Optional<AttachedResourceId> attachedPortId = HeatToToscaUtil
                 .extractAttachedResourceId(heatFileName, heatOrchestrationTemplate, context, port);
         if (!attachedPortId.isPresent() || !attachedPortId.get().isGetResource()) {
-            return;
+            return Optional.empty();
         }
         String resourceId = (String) attachedPortId.get().getEntityId();
         Resource portResource = HeatToToscaUtil.getResource(heatOrchestrationTemplate, resourceId, heatFileName);
@@ -377,7 +410,7 @@ public class ResourceTranslationNovaServerImpl extends ResourceTranslationBase {
                     + "Supported types are: {}, {}", resourceId, portResource.getType(),
                     HeatResourcesTypes.NEUTRON_PORT_RESOURCE_TYPE.getHeatResource(),
                     HeatResourcesTypes.CONTRAIL_V2_VIRTUAL_MACHINE_INTERFACE_RESOURCE_TYPE.getHeatResource());
-            return;
+            return Optional.empty();
         } else if (HeatResourcesTypes.CONTRAIL_V2_VIRTUAL_MACHINE_INTERFACE_RESOURCE_TYPE
                            .getHeatResource().equals(portResource.getType())) {
             Map<String, Object> properties = portResource.getProperties();
@@ -400,7 +433,9 @@ public class ResourceTranslationNovaServerImpl extends ResourceTranslationBase {
             logger.warn("NovaServer connect to port resource with id : {} and type : {}. This resource type"
                     + " is not supported, therefore the connection to the port is ignored.", resourceId,
                     portResource.getType());
+            return Optional.empty();
         }
+        return Optional.ofNullable(portResource);
     }
 
     private boolean isSupportedPortResource(Resource portResource) {
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdc.translator.impl.heattotosca.resources;
+package org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation;
 
 import org.junit.Before;
 import org.junit.Test;
 import org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.ConsolidationDataValidationType;
-import org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation.BaseResourceTranslationTest;
 
 import java.io.IOException;
 
 import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.TestConstants.TEST_PORT_POSITIVE;
 import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.TestConstants.TEST_VOLUME_POSITIVE;
 
-public class OSNovaServerTest extends BaseResourceTranslationTest {
+public class ResourceTranslationNovaServerImplTest extends BaseResourceTranslationTest {
 
   @Override
   @Before
@@ -59,4 +58,56 @@ public class OSNovaServerTest extends BaseResourceTranslationTest {
     validateComputeTemplateConsolidationData(ConsolidationDataValidationType.VALIDATE_PORT,
         TEST_PORT_POSITIVE);
   }
+  
+  @Test
+  public void testFabricConfigurationOnlyOnePortTrue() throws IOException {
+    inputFilesPath =
+        "/mock/services/heattotosca/novaservertranslation/fabricConfiguration/one_port_true/input";
+    outputFilesPath =
+        "/mock/services/heattotosca/novaservertranslation/fabricConfiguration/one_port_true/output";
+    initTranslatorAndTranslate();
+    testTranslation();
+  }
+  
+  @Test
+  public void testFabricConfigurationAllFalse() throws IOException {
+    inputFilesPath =
+        "/mock/services/heattotosca/novaservertranslation/fabricConfiguration/all_false/input";
+    outputFilesPath =
+        "/mock/services/heattotosca/novaservertranslation/fabricConfiguration/all_false/output";
+    initTranslatorAndTranslate();
+    testTranslation();
+  }
+  
+  @Test
+  public void testFabricConfigurationPropertyNull() throws IOException {
+    inputFilesPath =
+        "/mock/services/heattotosca/novaservertranslation/fabricConfiguration/property_null/input";
+    outputFilesPath =
+        "/mock/services/heattotosca/novaservertranslation/fabricConfiguration/property_null/output";
+    initTranslatorAndTranslate();
+    testTranslation();
+  }
+  
+  @Test
+  public void testFabricConfigurationWithoutProperty() throws IOException {
+    inputFilesPath =
+        "/mock/services/heattotosca/novaservertranslation/fabricConfiguration/without_property/input";
+    outputFilesPath =
+        "/mock/services/heattotosca/novaservertranslation/fabricConfiguration/without_property/output";
+    initTranslatorAndTranslate();
+    testTranslation();
+  }
+  
+  @Test
+  public void testFabricConfiguration2Ports() throws IOException {
+    inputFilesPath =
+        "/mock/services/heattotosca/novaservertranslation/fabricConfiguration/2ports/input";
+    outputFilesPath =
+        "/mock/services/heattotosca/novaservertranslation/fabricConfiguration/2ports/output";
+    initTranslatorAndTranslate();
+    testTranslation();
+  }
+  
+  
 }
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/novaservertranslation/fabricConfiguration/2ports/input/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/novaservertranslation/fabricConfiguration/2ports/input/MANIFEST.json
new file mode 100644 (file)
index 0000000..8948c05
--- /dev/null
@@ -0,0 +1,17 @@
+{
+  "name": "lastTestFabric",
+  "description": "lastTestFabric",
+  "version": "0.0",
+  "data": [
+    {
+      "isBase": true,
+      "file": "base_vCE.yaml",
+      "type": "HEAT"
+      
+    },
+    {
+      "file": "vCE_Cloudinit.txt",
+      "type": "OTHER"
+    }
+  ]
+}
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/novaservertranslation/fabricConfiguration/2ports/input/base_vCE.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/novaservertranslation/fabricConfiguration/2ports/input/base_vCE.yaml
new file mode 100644 (file)
index 0000000..fe36d95
--- /dev/null
@@ -0,0 +1,280 @@
+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: false
+
+  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:
+          template: { get_file: vCE_Cloudinit.txt }
+          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/novaservertranslation/fabricConfiguration/2ports/output/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/novaservertranslation/fabricConfiguration/2ports/output/MainServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..2898093
--- /dev/null
@@ -0,0 +1,887 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: Main
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+node_types:
+  org.openecomp.resource.vfc.nodes.heat.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:
+    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:
+    vce_SRIOV2_0_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        mac_requirements:
+          mac_count_required:
+            is_required: false
+        admin_state_up: true
+        name:
+          get_input: vce_SRIOV2_0_port_name
+        binding:vnic_type: direct
+        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: false
+          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
+        network_role_tag: vce_SRIOV2_0
+        network:
+          get_input: vce_SRIOV2_0_net_id
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: vce_0
+          relationship: tosca.relationships.network.BindsTo
+    vce_oam0_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: true
+          floating_ip_count_required:
+            is_required: false
+        fixed_ips:
+        - ip_address:
+            get_input: vce_oam0_ip_0
+        mac_requirements:
+          mac_count_required:
+            is_required: false
+        admin_state_up: true
+        name:
+          get_input: vce_oam0_port_name
+        network_role_tag: oam0
+        network:
+          get_input: oam0_net_id
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: vce_0
+          relationship: tosca.relationships.network.BindsTo
+    vce_0:
+      type: org.openecomp.resource.vfc.nodes.heat.vce
+      properties:
+        flavor:
+          get_input: vce_flavor_name
+        availability_zone:
+          get_input: availability_zone_0
+        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
+        user_data_format: RAW
+        name:
+          get_input: vce_name_0
+    vce_SRIOV1_0_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        mac_requirements:
+          mac_count_required:
+            is_required: false
+        admin_state_up: true
+        name:
+          get_input: vce_SRIOV1_0_port_name
+        binding:vnic_type: direct
+        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
+        network_role_tag: vce_SRIOV1_0
+        network:
+          get_input: vce_SRIOV1_0_net_id
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: vce_0
+          relationship: tosca.relationships.network.BindsTo
+  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:
+      - vce_SRIOV2_0_port
+      - vce_oam0_port
+      - vce_0
+      - vce_SRIOV1_0_port
\ 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/novaservertranslation/fabricConfiguration/all_false/input/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/novaservertranslation/fabricConfiguration/all_false/input/MANIFEST.json
new file mode 100644 (file)
index 0000000..8948c05
--- /dev/null
@@ -0,0 +1,17 @@
+{
+  "name": "lastTestFabric",
+  "description": "lastTestFabric",
+  "version": "0.0",
+  "data": [
+    {
+      "isBase": true,
+      "file": "base_vCE.yaml",
+      "type": "HEAT"
+      
+    },
+    {
+      "file": "vCE_Cloudinit.txt",
+      "type": "OTHER"
+    }
+  ]
+}
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/novaservertranslation/fabricConfiguration/all_false/input/base_vCE.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/novaservertranslation/fabricConfiguration/all_false/input/base_vCE.yaml
new file mode 100644 (file)
index 0000000..5577d04
--- /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: false
+
+  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 }
+
+  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:
+          template: { get_file: vCE_Cloudinit.txt }
+          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/novaservertranslation/fabricConfiguration/all_false/output/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/novaservertranslation/fabricConfiguration/all_false/output/MainServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..cf246b0
--- /dev/null
@@ -0,0 +1,880 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: Main
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+node_types:
+  org.openecomp.resource.vfc.nodes.heat.vce:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+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:
+    vce_SRIOV2_0_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        mac_requirements:
+          mac_count_required:
+            is_required: false
+        admin_state_up: true
+        name:
+          get_input: vce_SRIOV2_0_port_name
+        binding:vnic_type: direct
+        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_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
+        network_role_tag: vce_SRIOV2_0
+        network:
+          get_input: vce_SRIOV2_0_net_id
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: vce_0
+          relationship: tosca.relationships.network.BindsTo
+    vce_oam0_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: true
+          floating_ip_count_required:
+            is_required: false
+        fixed_ips:
+        - ip_address:
+            get_input: vce_oam0_ip_0
+        mac_requirements:
+          mac_count_required:
+            is_required: false
+        admin_state_up: true
+        name:
+          get_input: vce_oam0_port_name
+        network_role_tag: oam0
+        network:
+          get_input: oam0_net_id
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: vce_0
+          relationship: tosca.relationships.network.BindsTo
+    vce_0:
+      type: org.openecomp.resource.vfc.nodes.heat.vce
+      properties:
+        flavor:
+          get_input: vce_flavor_name
+        availability_zone:
+          get_input: availability_zone_0
+        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
+        user_data_format: RAW
+        name:
+          get_input: vce_name_0
+    vce_SRIOV1_0_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        mac_requirements:
+          mac_count_required:
+            is_required: false
+        admin_state_up: true
+        name:
+          get_input: vce_SRIOV1_0_port_name
+        binding:vnic_type: direct
+        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: false
+          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
+        network_role_tag: vce_SRIOV1_0
+        network:
+          get_input: vce_SRIOV1_0_net_id
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: vce_0
+          relationship: tosca.relationships.network.BindsTo
+  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:
+      - vce_SRIOV2_0_port
+      - vce_oam0_port
+      - vce_0
+      - vce_SRIOV1_0_port
\ 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/novaservertranslation/fabricConfiguration/one_port_true/input/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/novaservertranslation/fabricConfiguration/one_port_true/input/MANIFEST.json
new file mode 100644 (file)
index 0000000..8948c05
--- /dev/null
@@ -0,0 +1,17 @@
+{
+  "name": "lastTestFabric",
+  "description": "lastTestFabric",
+  "version": "0.0",
+  "data": [
+    {
+      "isBase": true,
+      "file": "base_vCE.yaml",
+      "type": "HEAT"
+      
+    },
+    {
+      "file": "vCE_Cloudinit.txt",
+      "type": "OTHER"
+    }
+  ]
+}
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/novaservertranslation/fabricConfiguration/one_port_true/input/base_vCE.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/novaservertranslation/fabricConfiguration/one_port_true/input/base_vCE.yaml
new file mode 100644 (file)
index 0000000..cbc7882
--- /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 }
+
+  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:
+          template: { get_file: vCE_Cloudinit.txt }
+          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/novaservertranslation/fabricConfiguration/one_port_true/output/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/novaservertranslation/fabricConfiguration/one_port_true/output/MainServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..bdcec7e
--- /dev/null
@@ -0,0 +1,886 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: Main
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+node_types:
+  org.openecomp.resource.vfc.nodes.heat.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:
+    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:
+    vce_SRIOV2_0_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        mac_requirements:
+          mac_count_required:
+            is_required: false
+        admin_state_up: true
+        name:
+          get_input: vce_SRIOV2_0_port_name
+        binding:vnic_type: direct
+        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_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
+        network_role_tag: vce_SRIOV2_0
+        network:
+          get_input: vce_SRIOV2_0_net_id
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: vce_0
+          relationship: tosca.relationships.network.BindsTo
+    vce_oam0_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: true
+          floating_ip_count_required:
+            is_required: false
+        fixed_ips:
+        - ip_address:
+            get_input: vce_oam0_ip_0
+        mac_requirements:
+          mac_count_required:
+            is_required: false
+        admin_state_up: true
+        name:
+          get_input: vce_oam0_port_name
+        network_role_tag: oam0
+        network:
+          get_input: oam0_net_id
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: vce_0
+          relationship: tosca.relationships.network.BindsTo
+    vce_0:
+      type: org.openecomp.resource.vfc.nodes.heat.vce
+      properties:
+        flavor:
+          get_input: vce_flavor_name
+        availability_zone:
+          get_input: availability_zone_0
+        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
+        user_data_format: RAW
+        name:
+          get_input: vce_name_0
+    vce_SRIOV1_0_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        mac_requirements:
+          mac_count_required:
+            is_required: false
+        admin_state_up: true
+        name:
+          get_input: vce_SRIOV1_0_port_name
+        binding:vnic_type: direct
+        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
+        network_role_tag: vce_SRIOV1_0
+        network:
+          get_input: vce_SRIOV1_0_net_id
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: vce_0
+          relationship: tosca.relationships.network.BindsTo
+  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:
+      - vce_SRIOV2_0_port
+      - vce_oam0_port
+      - vce_0
+      - vce_SRIOV1_0_port
\ 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/novaservertranslation/fabricConfiguration/property_null/input/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/novaservertranslation/fabricConfiguration/property_null/input/MANIFEST.json
new file mode 100644 (file)
index 0000000..8948c05
--- /dev/null
@@ -0,0 +1,17 @@
+{
+  "name": "lastTestFabric",
+  "description": "lastTestFabric",
+  "version": "0.0",
+  "data": [
+    {
+      "isBase": true,
+      "file": "base_vCE.yaml",
+      "type": "HEAT"
+      
+    },
+    {
+      "file": "vCE_Cloudinit.txt",
+      "type": "OTHER"
+    }
+  ]
+}
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/novaservertranslation/fabricConfiguration/property_null/input/base_vCE.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/novaservertranslation/fabricConfiguration/property_null/input/base_vCE.yaml
new file mode 100644 (file)
index 0000000..27511a4
--- /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:
+
+  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 }
+
+  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:
+          template: { get_file: vCE_Cloudinit.txt }
+          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/novaservertranslation/fabricConfiguration/property_null/output/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/novaservertranslation/fabricConfiguration/property_null/output/MainServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..8dc2645
--- /dev/null
@@ -0,0 +1,880 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: Main
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+node_types:
+  org.openecomp.resource.vfc.nodes.heat.vce:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+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:
+    vce_SRIOV2_0_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        mac_requirements:
+          mac_count_required:
+            is_required: false
+        admin_state_up: true
+        name:
+          get_input: vce_SRIOV2_0_port_name
+        binding:vnic_type: direct
+        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_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
+        network_role_tag: vce_SRIOV2_0
+        network:
+          get_input: vce_SRIOV2_0_net_id
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: vce_0
+          relationship: tosca.relationships.network.BindsTo
+    vce_oam0_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: true
+          floating_ip_count_required:
+            is_required: false
+        fixed_ips:
+        - ip_address:
+            get_input: vce_oam0_ip_0
+        mac_requirements:
+          mac_count_required:
+            is_required: false
+        admin_state_up: true
+        name:
+          get_input: vce_oam0_port_name
+        network_role_tag: oam0
+        network:
+          get_input: oam0_net_id
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: vce_0
+          relationship: tosca.relationships.network.BindsTo
+    vce_0:
+      type: org.openecomp.resource.vfc.nodes.heat.vce
+      properties:
+        flavor:
+          get_input: vce_flavor_name
+        availability_zone:
+          get_input: availability_zone_0
+        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
+        user_data_format: RAW
+        name:
+          get_input: vce_name_0
+    vce_SRIOV1_0_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        mac_requirements:
+          mac_count_required:
+            is_required: false
+        admin_state_up: true
+        name:
+          get_input: vce_SRIOV1_0_port_name
+        binding:vnic_type: direct
+        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: null
+          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
+        network_role_tag: vce_SRIOV1_0
+        network:
+          get_input: vce_SRIOV1_0_net_id
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: vce_0
+          relationship: tosca.relationships.network.BindsTo
+  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:
+      - vce_SRIOV2_0_port
+      - vce_oam0_port
+      - vce_0
+      - vce_SRIOV1_0_port
\ 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/novaservertranslation/fabricConfiguration/without_property/input/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/novaservertranslation/fabricConfiguration/without_property/input/MANIFEST.json
new file mode 100644 (file)
index 0000000..8948c05
--- /dev/null
@@ -0,0 +1,17 @@
+{
+  "name": "lastTestFabric",
+  "description": "lastTestFabric",
+  "version": "0.0",
+  "data": [
+    {
+      "isBase": true,
+      "file": "base_vCE.yaml",
+      "type": "HEAT"
+      
+    },
+    {
+      "file": "vCE_Cloudinit.txt",
+      "type": "OTHER"
+    }
+  ]
+}
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/novaservertranslation/fabricConfiguration/without_property/input/base_vCE.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/novaservertranslation/fabricConfiguration/without_property/input/base_vCE.yaml
new file mode 100644 (file)
index 0000000..043c124
--- /dev/null
@@ -0,0 +1,277 @@
+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 }
+  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 }
+
+  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:
+          template: { get_file: vCE_Cloudinit.txt }
+          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/novaservertranslation/fabricConfiguration/without_property/output/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/novaservertranslation/fabricConfiguration/without_property/output/MainServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..d690f08
--- /dev/null
@@ -0,0 +1,879 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: Main
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+node_types:
+  org.openecomp.resource.vfc.nodes.heat.vce:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+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:
+    vce_SRIOV2_0_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        mac_requirements:
+          mac_count_required:
+            is_required: false
+        admin_state_up: true
+        name:
+          get_input: vce_SRIOV2_0_port_name
+        binding:vnic_type: direct
+        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_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
+        network_role_tag: vce_SRIOV2_0
+        network:
+          get_input: vce_SRIOV2_0_net_id
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: vce_0
+          relationship: tosca.relationships.network.BindsTo
+    vce_oam0_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: true
+          floating_ip_count_required:
+            is_required: false
+        fixed_ips:
+        - ip_address:
+            get_input: vce_oam0_ip_0
+        mac_requirements:
+          mac_count_required:
+            is_required: false
+        admin_state_up: true
+        name:
+          get_input: vce_oam0_port_name
+        network_role_tag: oam0
+        network:
+          get_input: oam0_net_id
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: vce_0
+          relationship: tosca.relationships.network.BindsTo
+    vce_0:
+      type: org.openecomp.resource.vfc.nodes.heat.vce
+      properties:
+        flavor:
+          get_input: vce_flavor_name
+        availability_zone:
+          get_input: availability_zone_0
+        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
+        user_data_format: RAW
+        name:
+          get_input: vce_name_0
+    vce_SRIOV1_0_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        mac_requirements:
+          mac_count_required:
+            is_required: false
+        admin_state_up: true
+        name:
+          get_input: vce_SRIOV1_0_port_name
+        binding:vnic_type: direct
+        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_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
+        network_role_tag: vce_SRIOV1_0
+        network:
+          get_input: vce_SRIOV1_0_net_id
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: vce_0
+          relationship: tosca.relationships.network.BindsTo
+  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:
+      - vce_SRIOV2_0_port
+      - vce_oam0_port
+      - vce_0
+      - vce_SRIOV1_0_port
\ No newline at end of file
index 9ef0a8d..9037270 100644 (file)
@@ -50,7 +50,6 @@ public class ToscaCapabilityType {
   public static final String METRIC_CEILOMETER = CAPABILITY_PREFIX + "metric.Ceilometer";
   public static final String METRIC_SNMP_TRAP = CAPABILITY_PREFIX + "metric.SnmpTrap";
   public static final String METRIC_SNMP_POLLING = CAPABILITY_PREFIX + "metric.SnmpPolling";
-
   public static final String FABRIC_CONFIGURATION = CAPABILITY_PREFIX + "FabricConfiguration";
 
 }
index ac2f5da..64b0006 100644 (file)
@@ -212,6 +212,31 @@ public class DataModelUtil {
                                             .build());
         }
 
+        if (MapUtils.isEmpty(nodeType.getCapabilities())) {
+            nodeType.setCapabilities(new HashMap<>());
+        }
+       
+        for (Map.Entry<String, CapabilityDefinition> entry : capabilities.entrySet()) {
+            nodeType.getCapabilities().put(entry.getKey(), entry.getValue());
+        }
+    }
+    
+    /**
+     * Set capabilities def to node type.
+     *
+     * @param nodeType     the node type
+     * @param capabilities the capability definitions
+     */
+    public static void setNodeTypeCapabilitiesDef(NodeType nodeType, Map<String, CapabilityDefinition> capabilities) {
+        if (MapUtils.isEmpty(capabilities) || capabilities.entrySet().isEmpty()) {
+            return;
+        }
+
+        if (nodeType == null) {
+            throw new CoreException(new InvalidAddActionNullEntityErrorBuilder("Capability Definition", NODE_TYPE)
+                                            .build());
+        }
+
         if (MapUtils.isEmpty(nodeType.getCapabilities())) {
             nodeType.setCapabilities(new HashMap<>());
         }