Renamed classes to include skipped tests 13/47413/5
authorojasdubey <ojas.dubey@amdocs.com>
Mon, 14 May 2018 14:01:21 +0000 (19:31 +0530)
committerOren Kleks <orenkle@amdocs.com>
Wed, 16 May 2018 10:28:19 +0000 (10:28 +0000)
1. Renamed test classes to align with junit test
   naming convention to include them in the build
2. Fixed static analysis issues in test classes
2. Refactored methods for code smells

Change-Id: Idacf6646ed8650cc7a96d5f539e7276e684bfb66
Issue-ID: SDC-1331
Signed-off-by: ojasdubey <ojas.dubey@amdocs.com>
23 files changed:
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/tosca/PortMirroringEnricher.java
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/TestUtils.java
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/nested/multi/TranslateHeatNestedMultiTest.java [moved from openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/nested/multi/Translate_Heat_Nested_Multi.java with 94% similarity]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/nested/nestedvolumelocal/NestedVolumeLocalTest.java [moved from openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/nested/nestedvolumelocal/NestedVolumelocal.java with 67% similarity]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/nested/nestedvolumeseperatefile/NestedVolumeSeperateFileTest.java [moved from openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/nested/nestedvolumeseperatefile/NestedVolumeSeperateFile.java with 67% similarity]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/nested/reusenestedfrommultibase/TranslateHeatNestedFromMultiBaseTest.java [moved from openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/nested/reusenestedfrommultibase/Translate_Heat_Nested_From_Multi_Base.java with 70% similarity]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/nested/single/TranslateHeatNestedSingleTest.java [moved from openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/nested/single/TranslateHeatNestedSingle.java with 96% similarity]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/buildconsolidationdata/TestConstants.java
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/BaseFullTranslationTest.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/ResourceTranslationContrailV2VmInterfaceImplTest.java
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationNeutronPortImplTest.java
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/multi/expectedoutputfiles/GlobalSubstitutionTypesServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nestedwithoutNodeTemplates/expectedoutputfiles/GlobalSubstitutionTypesServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nestedwithoutNodeTemplates/expectedoutputfiles/module_1_perimeta_swmu_a_childServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nestedwithoutNodeTemplates/expectedoutputfiles/module_1_perimeta_swmu_b_childServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nestedwithoutNodeTemplates/expectedoutputfiles/module_2_perimeta_sw_a_childServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nestedwithoutNodeTemplates/expectedoutputfiles/module_2_perimeta_sw_b_childServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nestedwithoutNodeTemplates/expectedoutputfiles/vlan_subinterface_dualServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/reusenestedfrommultibase/expectedoutputfiles/GlobalSubstitutionTypesServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/reusenestedfrommultibase/expectedoutputfiles/MainServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/single/expectedoutputfiles/GlobalSubstitutionTypesServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/single/expectedoutputfiles/MainServiceTemplate.yaml

index 6598d1a..c95274d 100644 (file)
@@ -20,11 +20,11 @@ import static org.openecomp.sdc.tosca.services.DataModelUtil.getClonedObject;
 import static org.openecomp.sdc.tosca.services.ToscaConstants.PORT_MIRRORING_CAPABILITY_CP_PROPERTY_NAME;
 import static org.openecomp.sdc.tosca.services.ToscaConstants.PORT_MIRRORING_CAPABILITY_ID;
 
+import com.google.common.collect.ImmutableMap;
+import com.google.common.collect.ImmutableSet;
+
 import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
 import java.util.HashMap;
-import java.util.HashSet;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
@@ -51,273 +51,267 @@ import org.openecomp.sdc.translator.services.heattotosca.HeatToToscaUtil;
 import org.openecomp.sdc.translator.services.heattotosca.globaltypes.GlobalTypesGenerator;
 
 public class PortMirroringEnricher {
-  //Map of service template file name and map of all port node template ids, node template
-  private final Map<String, Map<String, NodeTemplate>> portNodeTemplates = new HashMap<>();
-  //Map of service template file name and map of external port node template ids, node template
-  private final Map<String, Map<String, NodeTemplate>> externalPortNodeTemplates = new HashMap<>();
-  //Map of substitution service template name and the list of ports with link requirement from the abstract
-  private final Map<String, List<String>> portNodeTemplateIdsFromAbstract = new HashMap<>();
-  private final Map<String, ServiceTemplate> globalTypesServiceTemplate =
-      GlobalTypesGenerator.getGlobalTypesServiceTemplate(OnboardingTypesEnum.ZIP);
-
-  private static final String ABSTRACT_LINK_REQUIREMENT_ID_PREFIX = ToscaConstants.LINK_REQUIREMENT_ID + "_";
-  private static final int ABSTRACT_LINK_REQUIREMENT_ID_PREFIX_LENGTH = ABSTRACT_LINK_REQUIREMENT_ID_PREFIX.length();
-
-  private static final Map<String, String> nodeTypeExternalNodeType =
-      Collections.unmodifiableMap(initializeNodeTypeExternalNodeType());
+    private static final String ABSTRACT_LINK_REQUIREMENT_ID_PREFIX = ToscaConstants.LINK_REQUIREMENT_ID + "_";
+    private static final int ABSTRACT_LINK_REQUIREMENT_ID_PREFIX_LENGTH = ABSTRACT_LINK_REQUIREMENT_ID_PREFIX.length();
+    private static final Map<String, String> nodeTypeExternalNodeType =  initializeNodeTypeExternalNodeType();
+    //Map of service template file name and map of all port node template ids, node template
+    private final Map<String, Map<String, NodeTemplate>> portNodeTemplates = new HashMap<>();
+    //Map of service template file name and map of external port node template ids, node template
+    private final Map<String, Map<String, NodeTemplate>> externalPortNodeTemplates = new HashMap<>();
+    //Map of substitution service template name and the list of ports with link requirement from the abstract
+    private final Map<String, List<String>> portNodeTemplateIdsFromAbstract = new HashMap<>();
+    private final Map<String, ServiceTemplate> globalTypesServiceTemplate =
+            GlobalTypesGenerator.getGlobalTypesServiceTemplate(OnboardingTypesEnum.ZIP);
 
-  /**
-   * Enrich tosca for port mirroring.
-   *
-   * @param toscaServiceModel the tosca service model
-   * @return the map          Error descriptor map
-   */
-  public Map<String, List<ErrorMessage>> enrich(ToscaServiceModel toscaServiceModel) {
-    Map<String, List<ErrorMessage>> errors = new HashMap<>();
-    Map<String, ServiceTemplate> serviceTemplates = toscaServiceModel.getServiceTemplates();
-    serviceTemplates.entrySet().stream()
-        //Skipping the service templates which do not contain topology template
-        .filter(serviceTemplateEntry -> serviceTemplateEntry.getValue()
-            .getTopology_template() != null)
-        .forEach(serviceTemplateEntry ->
-            //Collect all the ports across all the service templates
-            collectPorts(serviceTemplateEntry.getValue()));
-    //Collect External ports from the list of all ports collected above
-    filterExternalPorts();
-    //Handle external port changes
-    handleExternalPorts(toscaServiceModel);
-    return errors;
-  }
+    private static ImmutableMap<String,String> initializeNodeTypeExternalNodeType() {
+        return  ImmutableMap.<String, String>builder()
+                .put(ToscaNodeType.CONTRAIL_PORT, ToscaNodeType.EXTERNAL_CONTRAIL_PORT)
+                .put(ToscaNodeType.CONTRAILV2_VIRTUAL_MACHINE_INTERFACE, ToscaNodeType.EXTERNAL_VMI_PORT)
+                .put(ToscaNodeType.NEUTRON_PORT, ToscaNodeType.EXTERNAL_NEUTRON_PORT)
+                .build();
+    }
 
-  private void collectPorts(ServiceTemplate serviceTemplate) {
-    Map<String, NodeTemplate> nodeTemplates = DataModelUtil.getNodeTemplates(serviceTemplate);
-    if (Objects.isNull(nodeTemplates)) {
-      return;
+    /**
+     * Enrich tosca for port mirroring.
+     *
+     * @param toscaServiceModel the tosca service model
+     * @return the map          Error descriptor map
+     */
+    public Map<String, List<ErrorMessage>> enrich(ToscaServiceModel toscaServiceModel) {
+        Map<String, List<ErrorMessage>> errors = new HashMap<>();
+        Map<String, ServiceTemplate> serviceTemplates = toscaServiceModel.getServiceTemplates();
+        serviceTemplates.entrySet().stream()
+                //Skipping the service templates which do not contain topology template
+                .filter(serviceTemplateEntry -> serviceTemplateEntry.getValue().getTopology_template() != null)
+                .forEach(serviceTemplateEntry ->
+                        //Collect all the ports across all the service templates
+                        collectPorts(serviceTemplateEntry.getValue()));
+        //Collect External ports from the list of all ports collected above
+        filterExternalPorts();
+        //Handle external port changes
+        handleExternalPorts(toscaServiceModel);
+        return errors;
     }
-    //Get all concrete port node templates from the service template
-    Map<String, NodeTemplate> serviceTemplatePortNodeTemplates = nodeTemplates.entrySet().stream()
-        .filter(nodeTemplateEntry -> (Objects.nonNull(nodeTemplateEntry.getValue()))
-            && (isPortNodeTemplate(nodeTemplateEntry.getValue().getType())))
-        .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
 
-    portNodeTemplates.put(ToscaUtil.getServiceTemplateFileName(serviceTemplate),
-        serviceTemplatePortNodeTemplates);
-    //Get all linked internal ports from abstract node template link requirements
-    collectLinkedInternalPorts(nodeTemplates);
-  }
+    private void collectPorts(ServiceTemplate serviceTemplate) {
+        Map<String, NodeTemplate> nodeTemplates = DataModelUtil.getNodeTemplates(serviceTemplate);
+        if (Objects.isNull(nodeTemplates)) {
+            return;
+        }
+        //Get all concrete port node templates from the service template
+        Map<String, NodeTemplate> serviceTemplatePortNodeTemplates = nodeTemplates.entrySet().stream()
+                .filter(nodeTemplateEntry -> (Objects.nonNull(nodeTemplateEntry.getValue()))
+                        && (isPortNodeTemplate(nodeTemplateEntry.getValue().getType())))
+                .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
 
-  private void collectLinkedInternalPorts(Map<String, NodeTemplate> nodeTemplates) {
-    List<String> abstractLinkedPortNodeTemplates = new ArrayList<>();
-    for (Map.Entry<String, NodeTemplate> nodeTemplateEntry : nodeTemplates.entrySet()) {
-      NodeTemplate nodeTemplate = nodeTemplateEntry.getValue();
-      if (isSubstitutableNodeTemplate(nodeTemplate)) {
-        handleSubstitutableNodeTemplate(abstractLinkedPortNodeTemplates, nodeTemplate);
-      }
+        portNodeTemplates.put(ToscaUtil.getServiceTemplateFileName(serviceTemplate),
+                serviceTemplatePortNodeTemplates);
+        //Get all linked internal ports from abstract node template link requirements
+        collectLinkedInternalPorts(nodeTemplates);
     }
-  }
 
-  private void handleSubstitutableNodeTemplate(List<String> abstractLinkedPortNodeTemplates,
-                                               NodeTemplate nodeTemplate) {
-    List<Map<String, RequirementAssignment>> requirements = nodeTemplate.getRequirements();
-    if (Objects.isNull(requirements)) {
-      return;
-    }
-    requirements.forEach(requirement -> addInternalPortToAbstractNode(requirement, abstractLinkedPortNodeTemplates));
-    if (CollectionUtils.isNotEmpty(abstractLinkedPortNodeTemplates)) {
-      //Populate a map of the substitution service templates and list of internal ports
-      addCollectedPortsToAbstractServiceTemplatePortMap(nodeTemplate,
-          abstractLinkedPortNodeTemplates);
+    private void collectLinkedInternalPorts(Map<String, NodeTemplate> nodeTemplates) {
+        List<String> abstractLinkedPortNodeTemplates = new ArrayList<>();
+        for (Map.Entry<String, NodeTemplate> nodeTemplateEntry : nodeTemplates.entrySet()) {
+            NodeTemplate nodeTemplate = nodeTemplateEntry.getValue();
+            if (isSubstitutableNodeTemplate(nodeTemplate)) {
+                handleSubstitutableNodeTemplate(abstractLinkedPortNodeTemplates, nodeTemplate);
+            }
+        }
     }
-  }
 
-  private void addInternalPortToAbstractNode(Map<String, RequirementAssignment> requirement,
-                                             List<String> abstractLinkedPortNodeTemplates) {
-    String requirementId = requirement.keySet().iterator().next();
-    if (requirementId.startsWith(ABSTRACT_LINK_REQUIREMENT_ID_PREFIX)) {
-      //Collect port node template ids from the link requirement ids in the abstract node template
-      abstractLinkedPortNodeTemplates.add(requirementId.substring(ABSTRACT_LINK_REQUIREMENT_ID_PREFIX_LENGTH));
+    private void handleSubstitutableNodeTemplate(List<String> abstractLinkedPortNodeTemplates,
+                                                 NodeTemplate nodeTemplate) {
+        List<Map<String, RequirementAssignment>> requirements = nodeTemplate.getRequirements();
+        if (Objects.isNull(requirements)) {
+            return;
+        }
+        requirements
+                .forEach(requirement -> addInternalPortToAbstractNode(requirement, abstractLinkedPortNodeTemplates));
+        if (CollectionUtils.isNotEmpty(abstractLinkedPortNodeTemplates)) {
+            //Populate a map of the substitution service templates and list of internal ports
+            addCollectedPortsToAbstractServiceTemplatePortMap(nodeTemplate, abstractLinkedPortNodeTemplates);
+        }
     }
-  }
 
-  private void addCollectedPortsToAbstractServiceTemplatePortMap(NodeTemplate nodeTemplate,
-                                                                 List<String> abstractLinkedPortNodeTemplates) {
-    String substitutionServiceTemplateName;
-    if (Objects.isNull(nodeTemplate.getProperties())) {
-      return;
-    }
-    Map serviceTemplateFilter = (Map<String, Object>) nodeTemplate.getProperties()
-        .get(ToscaConstants.SERVICE_TEMPLATE_FILTER_PROPERTY_NAME);
-    substitutionServiceTemplateName = (String)
-        serviceTemplateFilter.get(ToscaConstants.SUBSTITUTE_SERVICE_TEMPLATE_PROPERTY_NAME);
-    if (Objects.isNull(substitutionServiceTemplateName)) {
-      return;
-    }
-    if (portNodeTemplateIdsFromAbstract.containsKey(substitutionServiceTemplateName)) {
-      List<String> portList = portNodeTemplateIdsFromAbstract.get(substitutionServiceTemplateName);
-      portList.addAll(abstractLinkedPortNodeTemplates);
-      portNodeTemplateIdsFromAbstract.put(substitutionServiceTemplateName, portList);
-    } else {
-      portNodeTemplateIdsFromAbstract.put(substitutionServiceTemplateName, abstractLinkedPortNodeTemplates);
+    private void addInternalPortToAbstractNode(Map<String, RequirementAssignment> requirement,
+                                               List<String> abstractLinkedPortNodeTemplates) {
+        String requirementId = requirement.keySet().iterator().next();
+        if (requirementId.startsWith(ABSTRACT_LINK_REQUIREMENT_ID_PREFIX)) {
+            //Collect port node template ids from the link requirement ids in the abstract node template
+            abstractLinkedPortNodeTemplates.add(requirementId.substring(ABSTRACT_LINK_REQUIREMENT_ID_PREFIX_LENGTH));
+        }
     }
-  }
 
-  private void filterExternalPorts() {
-    for (Map.Entry<String, Map<String, NodeTemplate>> portNodeTemplateEntry : portNodeTemplates.entrySet()) {
-      Map<String, NodeTemplate> externalPorts = new HashMap<>();
-      String serviceTemplateFileName = portNodeTemplateEntry.getKey();
-      Map<String, NodeTemplate> portNodeTemplateMap = portNodeTemplateEntry.getValue();
-      for (Map.Entry<String, NodeTemplate> portNodeTemplate : portNodeTemplateMap.entrySet()) {
-        String nodeTemplateId = portNodeTemplate.getKey();
-        NodeTemplate nodeTemplate = portNodeTemplate.getValue();
-        if (!isInternalPort(serviceTemplateFileName, nodeTemplateId, nodeTemplate)) {
-          //External Port
-          externalPorts.putIfAbsent(nodeTemplateId, nodeTemplate);
+    private void addCollectedPortsToAbstractServiceTemplatePortMap(NodeTemplate nodeTemplate,
+                                                                   List<String> abstractLinkedPortNodeTemplates) {
+        String substitutionServiceTemplateName;
+        if (Objects.isNull(nodeTemplate.getProperties())) {
+            return;
+        }
+        Map serviceTemplateFilter = (Map<String, Object>) nodeTemplate.getProperties()
+                .get(ToscaConstants.SERVICE_TEMPLATE_FILTER_PROPERTY_NAME);
+        substitutionServiceTemplateName = (String)
+                serviceTemplateFilter.get(ToscaConstants.SUBSTITUTE_SERVICE_TEMPLATE_PROPERTY_NAME);
+        if (Objects.isNull(substitutionServiceTemplateName)) {
+            return;
+        }
+        if (portNodeTemplateIdsFromAbstract.containsKey(substitutionServiceTemplateName)) {
+            List<String> portList = portNodeTemplateIdsFromAbstract.get(substitutionServiceTemplateName);
+            portList.addAll(abstractLinkedPortNodeTemplates);
+            portNodeTemplateIdsFromAbstract.put(substitutionServiceTemplateName, portList);
+        } else {
+            portNodeTemplateIdsFromAbstract.put(substitutionServiceTemplateName, abstractLinkedPortNodeTemplates);
         }
-      }
-      externalPortNodeTemplates.putIfAbsent(serviceTemplateFileName, externalPorts);
     }
-  }
 
-  private void updateExternalPortNodeTemplate(NodeTemplate externalPortNodeTemplate) {
-    String currentPortNodeType = externalPortNodeTemplate.getType();
-    if (nodeTypeExternalNodeType.containsKey(currentPortNodeType)) {
-      externalPortNodeTemplate.setType(nodeTypeExternalNodeType.get(currentPortNodeType));
+    private void filterExternalPorts() {
+        for (Map.Entry<String, Map<String, NodeTemplate>> portNodeTemplateEntry : portNodeTemplates.entrySet()) {
+            Map<String, NodeTemplate> externalPorts = new HashMap<>();
+            String serviceTemplateFileName = portNodeTemplateEntry.getKey();
+            Map<String, NodeTemplate> portNodeTemplateMap = portNodeTemplateEntry.getValue();
+            for (Map.Entry<String, NodeTemplate> portNodeTemplate : portNodeTemplateMap.entrySet()) {
+                String nodeTemplateId = portNodeTemplate.getKey();
+                NodeTemplate nodeTemplate = portNodeTemplate.getValue();
+                if (!isInternalPort(serviceTemplateFileName, nodeTemplateId, nodeTemplate)) {
+                    //External Port
+                    externalPorts.putIfAbsent(nodeTemplateId, nodeTemplate);
+                }
+            }
+            externalPortNodeTemplates.putIfAbsent(serviceTemplateFileName, externalPorts);
+        }
     }
-    addPortMirroringCapability(externalPortNodeTemplate);
-  }
 
-  private void handleExternalPorts(ToscaServiceModel toscaServiceModel) {
-    for (Map.Entry<String, Map<String, NodeTemplate>> entry : externalPortNodeTemplates.entrySet()) {
-      ServiceTemplate serviceTemplate = toscaServiceModel.getServiceTemplates().get(entry.getKey());
-      Map<String, NodeTemplate> serviceTemplateExternalPortNodeTemplates = entry.getValue();
-      if (MapUtils.isEmpty(serviceTemplateExternalPortNodeTemplates)) {
-        continue;
-      }
-      handleExternalPortNodeTemplates(serviceTemplate, serviceTemplateExternalPortNodeTemplates);
-      addGlobalTypeImport(serviceTemplate);
+    private void updateExternalPortNodeTemplate(NodeTemplate externalPortNodeTemplate) {
+        String currentPortNodeType = externalPortNodeTemplate.getType();
+        if (nodeTypeExternalNodeType.containsKey(currentPortNodeType)) {
+            externalPortNodeTemplate.setType(nodeTypeExternalNodeType.get(currentPortNodeType));
+        }
+        addPortMirroringCapability(externalPortNodeTemplate);
     }
-  }
 
-  private void handleExternalPortNodeTemplates(ServiceTemplate serviceTemplate,
-                                               Map<String, NodeTemplate> externalPortNodeTemplates) {
-    for (Map.Entry<String, NodeTemplate> externalNodeTemplate : externalPortNodeTemplates.entrySet()) {
-      updateExternalPortNodeTemplate(externalNodeTemplate.getValue());
-      if (Objects.nonNull(DataModelUtil.getSubstitutionMappings(serviceTemplate))) {
-        //Add port mirroring capability to substitution mapping for external ports
-        addPortMirroringSubstitutionMappingCapability(serviceTemplate, externalNodeTemplate.getKey());
-      }
+    private void handleExternalPorts(ToscaServiceModel toscaServiceModel) {
+        for (Map.Entry<String, Map<String, NodeTemplate>> entry : externalPortNodeTemplates.entrySet()) {
+            ServiceTemplate serviceTemplate = toscaServiceModel.getServiceTemplates().get(entry.getKey());
+            Map<String, NodeTemplate> serviceTemplateExternalPortNodeTemplates = entry.getValue();
+            if (MapUtils.isEmpty(serviceTemplateExternalPortNodeTemplates)) {
+                continue;
+            }
+            handleExternalPortNodeTemplates(serviceTemplate, serviceTemplateExternalPortNodeTemplates);
+            addGlobalTypeImport(serviceTemplate);
+        }
     }
-  }
 
-  private void addPortMirroringSubstitutionMappingCapability(ServiceTemplate serviceTemplate,
-                                                             String externalPortNodeTemplateId) {
-    List<String> portMirroringCapability = new LinkedList<>();
-    portMirroringCapability.add(externalPortNodeTemplateId);
-    portMirroringCapability.add(PORT_MIRRORING_CAPABILITY_ID);
-    String substitutionMappingCapabilityId = PORT_MIRRORING_CAPABILITY_ID + "_" + externalPortNodeTemplateId;
-    DataModelUtil.addSubstitutionMappingCapability(serviceTemplate,
-        substitutionMappingCapabilityId, portMirroringCapability);
-  }
-
-  private void addPortMirroringCapability(NodeTemplate portNodeTemplate) {
-    Map<String, Object> portMirroringCapabilityProperties = new HashMap<>();
-    PortMirroringConnectionPointDescription connectionPoint = new PortMirroringConnectionPointDescription();
-    if (Objects.nonNull(portNodeTemplate.getProperties())) {
-      setConnectionPointNetworkRole(portNodeTemplate, connectionPoint);
-    }
-    if (Objects.nonNull(portNodeTemplate.getRequirements())) {
-      setConnectionPointNfcType(portNodeTemplate, connectionPoint);
-    }
-    if (!connectionPoint.isEmpty()) {
-      portMirroringCapabilityProperties.put(PORT_MIRRORING_CAPABILITY_CP_PROPERTY_NAME, connectionPoint);
-      DataModelUtil.addNodeTemplateCapability(portNodeTemplate,
-          PORT_MIRRORING_CAPABILITY_ID, portMirroringCapabilityProperties, null);
+    private void handleExternalPortNodeTemplates(ServiceTemplate serviceTemplate,
+                                                 Map<String, NodeTemplate> externalPortNodeTemplates) {
+        for (Map.Entry<String, NodeTemplate> externalNodeTemplate : externalPortNodeTemplates.entrySet()) {
+            updateExternalPortNodeTemplate(externalNodeTemplate.getValue());
+            if (Objects.nonNull(DataModelUtil.getSubstitutionMappings(serviceTemplate))) {
+                //Add port mirroring capability to substitution mapping for external ports
+                addPortMirroringSubstitutionMappingCapability(serviceTemplate, externalNodeTemplate.getKey());
+            }
+        }
     }
-  }
 
-  private void setConnectionPointNfcType(NodeTemplate portNodeTemplate,
-                                         PortMirroringConnectionPointDescription connectionPoint) {
-    //Get NFC_Type from the binding requirement node
-    Optional<List<RequirementAssignment>> requirementAssignment =
-        DataModelUtil.getRequirementAssignment(portNodeTemplate.getRequirements(), ToscaConstants
-            .BINDING_REQUIREMENT_ID);
-    if (requirementAssignment.isPresent()) {
-      RequirementAssignment bindingRequirementAssignment = requirementAssignment.get().get(0);
-      String node = bindingRequirementAssignment.getNode();
-      connectionPoint.setNfc_type(node);
+    private void addPortMirroringSubstitutionMappingCapability(ServiceTemplate serviceTemplate,
+                                                               String externalPortNodeTemplateId) {
+        List<String> portMirroringCapability = new LinkedList<>();
+        portMirroringCapability.add(externalPortNodeTemplateId);
+        portMirroringCapability.add(PORT_MIRRORING_CAPABILITY_ID);
+        String substitutionMappingCapabilityId = PORT_MIRRORING_CAPABILITY_ID + "_" + externalPortNodeTemplateId;
+        DataModelUtil.addSubstitutionMappingCapability(serviceTemplate,
+                substitutionMappingCapabilityId, portMirroringCapability);
     }
-  }
 
-  private void setConnectionPointNetworkRole(NodeTemplate portNodeTemplate,
-                                             PortMirroringConnectionPointDescription connectionPoint) {
-    Object networkRolePropertyValue =
-        portNodeTemplate.getProperties().get(ToscaConstants.PORT_NETWORK_ROLE_PROPERTY_NAME);
-    if (Objects.nonNull(networkRolePropertyValue)) {
-      Object portMirroringNetworkRolePropertyVal = getClonedObject(networkRolePropertyValue);
-      connectionPoint.setNetwork_role(portMirroringNetworkRolePropertyVal);
+    private void addPortMirroringCapability(NodeTemplate portNodeTemplate) {
+        Map<String, Object> portMirroringCapabilityProperties = new HashMap<>();
+        PortMirroringConnectionPointDescription connectionPoint = new PortMirroringConnectionPointDescription();
+        if (Objects.nonNull(portNodeTemplate.getProperties())) {
+            setConnectionPointNetworkRole(portNodeTemplate, connectionPoint);
+        }
+        if (Objects.nonNull(portNodeTemplate.getRequirements())) {
+            setConnectionPointNfcType(portNodeTemplate, connectionPoint);
+        }
+        if (!connectionPoint.isEmpty()) {
+            portMirroringCapabilityProperties.put(PORT_MIRRORING_CAPABILITY_CP_PROPERTY_NAME, connectionPoint);
+            DataModelUtil.addNodeTemplateCapability(portNodeTemplate,
+                    PORT_MIRRORING_CAPABILITY_ID, portMirroringCapabilityProperties, null);
+        }
     }
-  }
 
-  private void addGlobalTypeImport(ServiceTemplate serviceTemplate) {
-    List<Map<String, Import>> imports = serviceTemplate.getImports();
-    Map<String, Import> openecompIndexImport = new HashMap<>();
-    openecompIndexImport.put("openecomp_index",
-        HeatToToscaUtil.createServiceTemplateImport(globalTypesServiceTemplate
-            .get("openecomp/_index.yml")));
-    imports.add(openecompIndexImport);
-  }
-
-  private boolean isPortNodeTemplate(String nodeType) {
-    //Check if node corresponds to a concrete port node
-    Set<String> portNodeTypes = getPortNodeTypes();
-    return Objects.nonNull(nodeType) && portNodeTypes.contains(nodeType);
-  }
+    private void setConnectionPointNfcType(NodeTemplate portNodeTemplate,
+                                           PortMirroringConnectionPointDescription connectionPoint) {
+        //Get NFC_Type from the binding requirement node
+        Optional<List<RequirementAssignment>> requirementAssignment =
+                DataModelUtil.getRequirementAssignment(portNodeTemplate.getRequirements(), ToscaConstants
+                        .BINDING_REQUIREMENT_ID);
+        if (requirementAssignment.isPresent()) {
+            RequirementAssignment bindingRequirementAssignment = requirementAssignment.get().get(0);
+            String node = bindingRequirementAssignment.getNode();
+            connectionPoint.setNfc_type(node);
+        }
+    }
 
-  private Set<String> getPortNodeTypes() {
-    return new HashSet<>(Arrays.asList(ToscaNodeType.NEUTRON_PORT,
-        ToscaNodeType.CONTRAILV2_VIRTUAL_MACHINE_INTERFACE,
-        ToscaNodeType.CONTRAIL_PORT));
-  }
+    private void setConnectionPointNetworkRole(NodeTemplate portNodeTemplate,
+                                               PortMirroringConnectionPointDescription connectionPoint) {
+        Object networkRolePropertyValue =
+                portNodeTemplate.getProperties().get(ToscaConstants.PORT_NETWORK_ROLE_PROPERTY_NAME);
+        if (Objects.nonNull(networkRolePropertyValue)) {
+            Object portMirroringNetworkRolePropertyVal = getClonedObject(networkRolePropertyValue);
+            connectionPoint.setNetwork_role(portMirroringNetworkRolePropertyVal);
+        }
+    }
 
-  private boolean isSubstitutableNodeTemplate(NodeTemplate nodeTemplate) {
-    return Objects.nonNull(nodeTemplate.getDirectives())
-        && nodeTemplate.getDirectives()
-        .contains(ToscaConstants.NODE_TEMPLATE_DIRECTIVE_SUBSTITUTABLE);
-  }
+    private void addGlobalTypeImport(ServiceTemplate serviceTemplate) {
+        List<Map<String, Import>> imports = serviceTemplate.getImports();
+        Map<String, Import> openecompIndexImport = new HashMap<>();
+        openecompIndexImport.put("openecomp_index",
+                HeatToToscaUtil.createServiceTemplateImport(globalTypesServiceTemplate
+                        .get("openecomp/_index.yml")));
+        imports.add(openecompIndexImport);
+    }
 
-  private boolean isInternalPort(String serviceTemplateFileName, String nodeTemplateId,
-                                 NodeTemplate nodeTemplate) {
-    return isAbstractInternalPort(serviceTemplateFileName, nodeTemplateId)
-        || isConcreteInternalPort(nodeTemplate);
-  }
+    private boolean isPortNodeTemplate(String nodeType) {
+        //Check if node corresponds to a concrete port node
+        Set<String> portNodeTypes = getPortNodeTypes();
+        return Objects.nonNull(nodeType) && portNodeTypes.contains(nodeType);
+    }
 
-  private boolean isAbstractInternalPort(String serviceTemplateFileName, String nodeTemplateId) {
-    //Check if port corresponds to an abstract internal port
-    return portNodeTemplateIdsFromAbstract.containsKey(serviceTemplateFileName)
-        && portNodeTemplateIdsFromAbstract.get(serviceTemplateFileName).contains(nodeTemplateId);
-  }
+    private Set<String> getPortNodeTypes() {
+        return ImmutableSet.of(ToscaNodeType.NEUTRON_PORT,
+                ToscaNodeType.CONTRAILV2_VIRTUAL_MACHINE_INTERFACE, ToscaNodeType.CONTRAIL_PORT);
+    }
 
+    private boolean isSubstitutableNodeTemplate(NodeTemplate nodeTemplate) {
+        return Objects.nonNull(nodeTemplate.getDirectives())
+                && nodeTemplate.getDirectives()
+                .contains(ToscaConstants.NODE_TEMPLATE_DIRECTIVE_SUBSTITUTABLE);
+    }
 
-  private boolean isConcreteInternalPort(NodeTemplate nodeTemplate) {
-    //Check if node template contains a link requirement
-    List<Map<String, RequirementAssignment>> requirements = nodeTemplate.getRequirements();
-    if (Objects.isNull(requirements)) {
-      return false;
+    private boolean isInternalPort(String serviceTemplateFileName, String nodeTemplateId,
+                                   NodeTemplate nodeTemplate) {
+        return isAbstractInternalPort(serviceTemplateFileName, nodeTemplateId)
+                || isConcreteInternalPort(nodeTemplate);
     }
-    for (Map<String, RequirementAssignment> requirement : requirements) {
-      String requirementId = requirement.keySet().iterator().next();
-      if (requirementId.equals(ToscaConstants.LINK_REQUIREMENT_ID)) {
-        return true;
-      }
+
+    private boolean isAbstractInternalPort(String serviceTemplateFileName, String nodeTemplateId) {
+        //Check if port corresponds to an abstract internal port
+        return portNodeTemplateIdsFromAbstract.containsKey(serviceTemplateFileName)
+                && portNodeTemplateIdsFromAbstract.get(serviceTemplateFileName).contains(nodeTemplateId);
     }
-    return false;
-  }
 
-  private static Map<String, String> initializeNodeTypeExternalNodeType() {
-    Map<String, String> nodeTypeExternalNodeType = new HashMap<>(3);
-    nodeTypeExternalNodeType.put(ToscaNodeType.CONTRAIL_PORT, ToscaNodeType.EXTERNAL_CONTRAIL_PORT);
-    nodeTypeExternalNodeType.put(ToscaNodeType.CONTRAILV2_VIRTUAL_MACHINE_INTERFACE, ToscaNodeType.EXTERNAL_VMI_PORT);
-    nodeTypeExternalNodeType.put(ToscaNodeType.NEUTRON_PORT, ToscaNodeType.EXTERNAL_NEUTRON_PORT);
-    return nodeTypeExternalNodeType;
-  }
+    private boolean isConcreteInternalPort(NodeTemplate nodeTemplate) {
+        //Check if node template contains a link requirement
+        List<Map<String, RequirementAssignment>> requirements = nodeTemplate.getRequirements();
+        if (Objects.isNull(requirements)) {
+            return false;
+        }
+        for (Map<String, RequirementAssignment> requirement : requirements) {
+            String requirementId = requirement.keySet().iterator().next();
+            if (requirementId.equals(ToscaConstants.LINK_REQUIREMENT_ID)) {
+                return true;
+            }
+        }
+        return false;
+    }
 }
index a0a6d12..95adef3 100644 (file)
 
 package org.openecomp.sdc.translator;
 
+import static org.junit.Assert.assertEquals;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URISyntaxException;
+import java.net.URL;
+import java.nio.file.NotDirectoryException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.ListIterator;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Optional;
+import java.util.Set;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipInputStream;
+
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang3.tuple.Pair;
 import org.codehaus.jackson.map.ObjectMapper;
 import org.junit.Assert;
-import org.openecomp.core.translator.api.HeatToToscaTranslator;
-import org.openecomp.core.utilities.file.FileUtils;
-import org.openecomp.sdc.common.utils.SdcCommon;
-import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
 import org.onap.sdc.tosca.datatypes.model.GroupDefinition;
 import org.onap.sdc.tosca.datatypes.model.NodeTemplate;
 import org.onap.sdc.tosca.datatypes.model.RequirementAssignment;
 import org.onap.sdc.tosca.datatypes.model.ServiceTemplate;
 import org.onap.sdc.tosca.datatypes.model.TopologyTemplate;
+import org.onap.sdc.tosca.services.ToscaExtensionYamlUtil;
+import org.openecomp.core.translator.api.HeatToToscaTranslator;
+import org.openecomp.core.utilities.file.FileUtils;
+import org.openecomp.sdc.common.utils.SdcCommon;
+import org.openecomp.sdc.datatypes.error.ErrorMessage;
+import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
 import org.openecomp.sdc.tosca.services.DataModelUtil;
 import org.openecomp.sdc.tosca.services.ToscaConstants;
-import org.onap.sdc.tosca.services.ToscaExtensionYamlUtil;
 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.ComputeConsolidationData;
 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.ComputeTemplateConsolidationData;
 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.ConsolidationData;
@@ -48,21 +69,6 @@ import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolida
 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.TypeComputeConsolidationData;
 import org.openecomp.sdc.translator.services.heattotosca.globaltypes.GlobalTypesGenerator;
 
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URISyntaxException;
-import java.net.URL;
-import java.nio.file.NotDirectoryException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.ListIterator;
-import java.util.Map;
-import java.util.Objects;
-import java.util.Optional;
-
 public class TestUtils {
   private static final String MANIFEST_NAME = SdcCommon.MANIFEST_NAME;
   private static String zipFilename = "VSP.zip";
@@ -675,4 +681,43 @@ public class TestUtils {
     return initServiceTemplate;
   }
 
+  public static void compareTranslatedOutput(Set<String> expectedResultFileNameSet,
+                                      Map<String, byte[]> expectedResultMap,
+                                      ZipInputStream zis) throws IOException {
+    ZipEntry entry;
+    String name;
+    String expected;
+    String actual;
+
+    while ((entry = zis.getNextEntry()) != null) {
+
+      name = entry.getName()
+              .substring(entry.getName().lastIndexOf(File.separator) + 1, entry.getName().length());
+      if (expectedResultFileNameSet.contains(name)) {
+        expected = new String(expectedResultMap.get(name)).trim().replace("\r", "");
+        actual = new String(FileUtils.toByteArray(zis)).trim().replace("\r", "");
+        assertEquals("difference in file: " + name, expected, actual);
+
+        expectedResultFileNameSet.remove(name);
+      }
+    }
+    if (expectedResultFileNameSet.isEmpty()) {
+      expectedResultFileNameSet.forEach(System.out::println);
+    }
+  }
+
+  public static String getErrorAsString(Map<String, List<ErrorMessage>> errorMessages) {
+    StringBuilder sb = new StringBuilder();
+    errorMessages.forEach((file, errorList) -> sb.append("File:").append(file).append(System.lineSeparator())
+            .append(getErrorList(errorList)));
+
+    return sb.toString();
+  }
+
+  private static String getErrorList(List<ErrorMessage> errors) {
+    StringBuilder sb = new StringBuilder();
+    errors.forEach(error -> sb.append(error.getMessage()).append("[").append(error.getLevel()).append("]")
+            .append(System.lineSeparator()));
+    return sb.toString();
+  }
 }
@@ -23,7 +23,7 @@ package org.openecomp.sdc.translator.impl.heattotosca.nested.multi;
 import org.junit.Test;
 import org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation.BaseResourceTranslationTest;
 
-public class Translate_Heat_Nested_Multi extends BaseResourceTranslationTest {
+public class TranslateHeatNestedMultiTest extends BaseResourceTranslationTest {
 
   {
     inputFilesPath = "/mock/heat/nested/multi/inputs";
@@ -1,29 +1,26 @@
-/*-
- * ============LICENSE_START=======================================================
- * SDC
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
+/*
+ * Copyright Â© 2016-2018 European Support Limited
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
- * ============LICENSE_END=========================================================
  */
 
+
 package org.openecomp.sdc.translator.impl.heattotosca.nested.nestedvolumelocal;
 
 import org.junit.Test;
 import org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation.BaseResourceTranslationTest;
 
-public class NestedVolumelocal extends BaseResourceTranslationTest {
+public class NestedVolumeLocalTest extends BaseResourceTranslationTest {
 
   {
     inputFilesPath = "/mock/heat/nested/nestedvolumelocal/inputs";
@@ -1,29 +1,26 @@
-/*-
- * ============LICENSE_START=======================================================
- * SDC
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
+/*
+ * Copyright Â© 2016-2018 European Support Limited
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
- * ============LICENSE_END=========================================================
  */
 
+
 package org.openecomp.sdc.translator.impl.heattotosca.nested.nestedvolumeseperatefile;
 
 import org.junit.Test;
 import org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation.BaseResourceTranslationTest;
 
-public class NestedVolumeSeperateFile extends BaseResourceTranslationTest {
+public class NestedVolumeSeperateFileTest extends BaseResourceTranslationTest {
 
   {
     inputFilesPath = "/mock/heat/nested/nestedvolumeseperatefile/inputs";
@@ -1,30 +1,27 @@
-/*-
- * ============LICENSE_START=======================================================
- * SDC
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
+/*
+ * Copyright Â© 2016-2018 European Support Limited
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
- * ============LICENSE_END=========================================================
  */
 
+
 package org.openecomp.sdc.translator.impl.heattotosca.nested.reusenestedfrommultibase;
 
 import org.junit.Test;
 import org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.TestConstants;
 import org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation.BaseResourceTranslationTest;
 
-public class Translate_Heat_Nested_From_Multi_Base extends BaseResourceTranslationTest {
+public class TranslateHeatNestedFromMultiBaseTest extends BaseResourceTranslationTest {
 
   {
     inputFilesPath = "/mock/heat/nested/reusenestedfrommultibase/inputs";
@@ -27,7 +27,7 @@ import org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslatio
 
 import java.io.IOException;
 
-public class TranslateHeatNestedSingle extends BaseResourceTranslationTest {
+public class TranslateHeatNestedSingleTest extends BaseResourceTranslationTest {
 
   @Override
   @Before
index 3b97be7..f8a922b 100644 (file)
@@ -2,19 +2,14 @@ package org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata
 
 public class TestConstants{
 
-  public static final String MAIN_SERVICE_TEMPLATE = "MainServiceTemplate.yaml";
+  static final String MAIN_SERVICE_TEMPLATE = "MainServiceTemplate.yaml";
 
   public static final String TEST_GROUP_POSITIVE = "TestGroupsPositive";
-  public static final String TEST_GROUP_NEGATIVE = "TestGroupsNegative";
 
   public static final String TEST_VOLUME_POSITIVE = "TestVolumePositive";
   public static final String TEST_VOLUME_NEGATIVE = "TestVolumeNegative";
 
   public static final String TEST_PORT_POSITIVE = "TestPortPositive";
-  public static final String TEST_PORT_NEGATIVE = "TestPortNegative";
-
-  public static final String TEST_CONNECTIVITY_POSITIVE = "TestConnectivityPositive";
-  public static final String TEST_CONNECTIVITY_NEGATIVE = "TestConnectivityNegative";
 
   public static final String TEST_DEPENDS_ON_NODES_CONNECTED_IN = "TestDependsOnNodesConnectedIn";
   public static final String TEST_DEPENDS_ON_NODES_CONNECTED_OUT = "TestDependsOnNodesConnectedOut";
index 801f2c6..758271b 100644 (file)
 package org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation;
 
 import static org.junit.Assert.assertEquals;
+import static org.openecomp.sdc.translator.TestUtils.getErrorAsString;
 
-import java.io.BufferedInputStream;
-import java.io.ByteArrayInputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.net.URL;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipInputStream;
 import org.apache.commons.collections4.MapUtils;
 import org.junit.Assert;
 import org.junit.BeforeClass;
@@ -44,18 +32,28 @@ import org.openecomp.sdc.common.errors.ErrorCategory;
 import org.openecomp.sdc.common.errors.ErrorCode;
 import org.openecomp.sdc.common.togglz.ToggleableFeature;
 import org.openecomp.sdc.datatypes.error.ErrorLevel;
-import org.openecomp.sdc.datatypes.error.ErrorMessage;
 import org.openecomp.sdc.tosca.services.impl.ToscaFileOutputServiceCsarImpl;
 import org.openecomp.sdc.translator.TestUtils;
 import org.togglz.testing.TestFeatureManager;
 import org.togglz.testing.TestFeatureManagerProvider;
 
+import java.io.BufferedInputStream;
+import java.io.ByteArrayInputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.net.URL;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+import java.util.zip.ZipInputStream;
 
-public class BaseFullTranslationTest {
 
-    public static final String IN_POSTFIX = "/in";
-    public static final String OUT_POSTFIX = "/out";
+public class BaseFullTranslationTest {
 
+    private static final String IN_POSTFIX = "/in";
+    private static final String OUT_POSTFIX = "/out";
 
     protected static TestFeatureManager manager;
 
@@ -66,13 +64,6 @@ public class BaseFullTranslationTest {
         TestFeatureManagerProvider.setFeatureManager(manager);
     }
 
-
-    public static void disableToggleableFeatures() {
-        manager.disableAll();
-        manager = null;
-        TestFeatureManagerProvider.setFeatureManager(null);
-    }
-
     protected void testTranslationWithInit(String path) throws IOException {
         byte[] translatedZipFile = initTranslatorAndTranslate(path);
         testTranslation(path, translatedZipFile);
@@ -101,27 +92,9 @@ public class BaseFullTranslationTest {
         }
 
         try (ByteArrayInputStream fis = new ByteArrayInputStream(translatedZipFile);
-             BufferedInputStream bis = new BufferedInputStream(fis); ZipInputStream zis = new ZipInputStream(bis)) {
-            ZipEntry entry;
-            String name;
-            String expected;
-            String actual;
-
-            while ((entry = zis.getNextEntry()) != null) {
-
-                name = entry.getName()
-                            .substring(entry.getName().lastIndexOf(File.separator) + 1, entry.getName().length());
-                if (expectedResultFileNameSet.contains(name)) {
-                    expected = new String(expectedResultMap.get(name)).trim().replace("\r", "");
-                    actual = new String(FileUtils.toByteArray(zis)).trim().replace("\r", "");
-                    assertEquals("difference in file: " + name, expected, actual);
-
-                    expectedResultFileNameSet.remove(name);
-                }
-            }
-            if (expectedResultFileNameSet.isEmpty()) {
-                expectedResultFileNameSet.forEach(System.out::println);
-            }
+             BufferedInputStream bis = new BufferedInputStream(fis);
+             ZipInputStream zis = new ZipInputStream(bis)) {
+            TestUtils.compareTranslatedOutput(expectedResultFileNameSet, expectedResultMap, zis);
         }
         assertEquals(0, expectedResultFileNameSet.size());
     }
@@ -140,26 +113,7 @@ public class BaseFullTranslationTest {
                                                                       .withCategory(ErrorCategory.APPLICATION).build());
         }
 
-        byte[] data =
-                new ToscaFileOutputServiceCsarImpl().createOutputFile(translatorOutput.getToscaServiceModel(), null);
-
-        return data;
-    }
-
-    private String getErrorAsString(Map<String, List<ErrorMessage>> errorMessages) {
-        StringBuilder sb = new StringBuilder();
-        errorMessages.entrySet().forEach(
-                entry -> sb.append("File:").append(entry.getKey()).append(System.lineSeparator())
-                           .append(getErrorList(entry.getValue())));
-
-        return sb.toString();
-    }
-
-    private String getErrorList(List<ErrorMessage> errors) {
-        StringBuilder sb = new StringBuilder();
-        errors.forEach(error -> sb.append(error.getMessage()).append("[").append(error.getLevel()).append("]")
-                                  .append(System.lineSeparator()));
-        return sb.toString();
+        return new ToscaFileOutputServiceCsarImpl().createOutputFile(translatorOutput.getToscaServiceModel(), null);
     }
 
 }
index 80c2036..f399cc1 100644 (file)
@@ -34,8 +34,7 @@ import org.apache.commons.collections4.MapUtils;
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.BeforeClass;
-import org.junit.Rule;
-import org.junit.rules.TestName;
+import org.onap.sdc.tosca.datatypes.model.ServiceTemplate;
 import org.openecomp.core.translator.datatypes.TranslatorOutput;
 import org.openecomp.core.utilities.file.FileUtils;
 import org.openecomp.core.utilities.json.JsonUtil;
@@ -45,11 +44,9 @@ import org.openecomp.sdc.common.errors.ErrorCategory;
 import org.openecomp.sdc.common.errors.ErrorCode;
 import org.openecomp.sdc.common.togglz.ToggleableFeature;
 import org.openecomp.sdc.datatypes.error.ErrorLevel;
-import org.openecomp.sdc.datatypes.error.ErrorMessage;
 import org.openecomp.sdc.heat.datatypes.manifest.FileData;
 import org.openecomp.sdc.heat.datatypes.manifest.ManifestContent;
 import org.openecomp.sdc.heat.datatypes.manifest.ManifestFile;
-import org.onap.sdc.tosca.datatypes.model.ServiceTemplate;
 import org.openecomp.sdc.tosca.services.impl.ToscaFileOutputServiceCsarImpl;
 import org.openecomp.sdc.translator.TestUtils;
 import org.openecomp.sdc.translator.datatypes.heattotosca.TranslationContext;
@@ -64,8 +61,11 @@ import org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.
 import org.togglz.testing.TestFeatureManager;
 import org.togglz.testing.TestFeatureManagerProvider;
 
-
-import java.io.*;
+import java.io.BufferedInputStream;
+import java.io.ByteArrayInputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
 import java.net.URL;
 import java.util.Collection;
 import java.util.HashMap;
@@ -73,7 +73,6 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
-import java.util.zip.ZipEntry;
 import java.util.zip.ZipInputStream;
 
 
@@ -81,17 +80,11 @@ public class BaseResourceTranslationTest {
 
   protected String inputFilesPath;
   protected String outputFilesPath;
-  protected TranslationContext translationContext;
+  TranslationContext translationContext;
 
-  @Rule
-  public TestName name = new TestName();
-
-  private String zipFilename = "VSP.zip";
   private TranslationService translationService;
   private byte[] translatedZipFile;
 
-  private static File tempDir = new File(System.getProperty("java.io.tmpdir"));
-
   private Map<String, byte[]> expectedResultMap = new HashMap<>();
   private Set<String> expectedResultFileNameSet = new HashSet<>();
 
@@ -101,12 +94,7 @@ public class BaseResourceTranslationTest {
   public static void enableToggleableFeatures(){
     manager = new TestFeatureManager(ToggleableFeature.class);
     manager.enableAll();
-  }
-
-  public static void disableToggleableFeatures() {
-    manager.disableAll();
-    manager = null;
-    TestFeatureManagerProvider.setFeatureManager(null);
+    TestFeatureManagerProvider.setFeatureManager(manager);
   }
 
   @Before
@@ -136,28 +124,10 @@ public class BaseResourceTranslationTest {
       }
     }
 
-    try (ByteArrayInputStream fis = new ByteArrayInputStream(translatedZipFile); BufferedInputStream bis = new BufferedInputStream(fis);
+    try (ByteArrayInputStream fis = new ByteArrayInputStream(translatedZipFile);
+         BufferedInputStream bis = new BufferedInputStream(fis);
          ZipInputStream zis = new ZipInputStream(bis)) {
-      ZipEntry entry;
-      String name;
-      String expected;
-      String actual;
-
-      while ((entry = zis.getNextEntry()) != null) {
-
-        name = entry.getName()
-            .substring(entry.getName().lastIndexOf(File.separator) + 1, entry.getName().length());
-        if (expectedResultFileNameSet.contains(name)) {
-          expected = new String(expectedResultMap.get(name)).trim().replace("\r", "");
-          actual = new String(FileUtils.toByteArray(zis)).trim().replace("\r", "");
-          assertEquals("difference in file: " + name, expected, actual);
-
-          expectedResultFileNameSet.remove(name);
-        }
-      }
-      if (expectedResultFileNameSet.isEmpty()) {
-        expectedResultFileNameSet.forEach(System.out::println);
-      }
+      TestUtils.compareTranslatedOutput(expectedResultFileNameSet, expectedResultMap, zis);
     }
     assertEquals(0, expectedResultFileNameSet.size());
   }
@@ -172,34 +142,15 @@ public class BaseResourceTranslationTest {
         MessageContainerUtil
             .getMessageByLevel(ErrorLevel.ERROR, translatorOutput.getErrorMessages()))) {
       throw new CoreException((new ErrorCode.ErrorCodeBuilder()).withMessage(
-          "Error in validation " + getErrorAsString(translatorOutput.getErrorMessages()))
+          "Error in validation " + TestUtils.getErrorAsString(translatorOutput.getErrorMessages()))
           .withId("Validation Error").withCategory(ErrorCategory.APPLICATION).build());
     }
 
-    byte[] data = new ToscaFileOutputServiceCsarImpl().createOutputFile(translatorOutput.getToscaServiceModel(), null);
-
-    return data;
-  }
-
-
-  private String getErrorAsString(Map<String, List<ErrorMessage>> errorMessages) {
-    StringBuilder sb = new StringBuilder();
-    errorMessages.entrySet().forEach(
-        entry -> sb.append("File:").append(entry.getKey()).append(System.lineSeparator())
-            .append(getErrorList(entry.getValue())));
-
-    return sb.toString();
+    return new ToscaFileOutputServiceCsarImpl().createOutputFile(translatorOutput.getToscaServiceModel(), null);
   }
 
-  private String getErrorList(List<ErrorMessage> errors) {
-    StringBuilder sb = new StringBuilder();
-    errors.forEach(
-        error -> sb.append(error.getMessage()).append("[").append(error.getLevel()).append("]")
-            .append(System.lineSeparator()));
-    return sb.toString();
-  }
 
-  public void addFilesToTranslator(TranslationContext translationContext, String path)
+  private void addFilesToTranslator(TranslationContext translationContext, String path)
       throws IOException {
     File manifestFile = new File(path);
     File[] files = manifestFile.listFiles();
@@ -214,9 +165,10 @@ public class BaseResourceTranslationTest {
         fileContent = FileUtils.toByteArray(fis);
 
         if (file.getName().equals(MANIFEST_NAME)) {
-          addManifest(translationContext, MANIFEST_NAME, fileContent);
+          addManifest(translationContext, fileContent);
         } else {
           String validationFilename = "validationOutput.json";
+          String zipFilename = "VSP.zip";
           if (!file.getName().equals(zipFilename) && (!file.getName().equals(validationFilename))) {
             addFile(translationContext, file.getName(), fileContent);
           }
@@ -225,20 +177,20 @@ public class BaseResourceTranslationTest {
     }
   }
 
-  public static void addManifest(TranslationContext translationContext,
-                                 String name, byte[] content) {
+  private static void addManifest(TranslationContext translationContext,
+                                  byte[] content) {
     ManifestContent manifestData = JsonUtil.json2Object(new String(content), ManifestContent.class);
     ManifestFile manifest = new ManifestFile();
-    manifest.setName(name);
+    manifest.setName(MANIFEST_NAME);
     manifest.setContent(manifestData);
     translationContext.setManifest(manifest);
-    translationContext.addFile(name, content);
+    translationContext.addFile(MANIFEST_NAME, content);
     addFilesFromManifestToTranslationContextManifestFilesMap(translationContext, manifestData
         .getData());
   }
 
-  public static void addFile(TranslationContext translationContext,
-                             String name, byte[] content) {
+  private static void addFile(TranslationContext translationContext,
+                              String name, byte[] content) {
     translationContext.addFile(name, content);
   }
 
@@ -249,7 +201,7 @@ public class BaseResourceTranslationTest {
     }
   }
 
-  public void validateNodeTemplateIdInNestedConsolidationData(){
+  void validateNodeTemplateIdInNestedConsolidationData(){
     ConsolidationData consolidationData = translationContext.getConsolidationData();
     Map<String, ServiceTemplate> expectedServiceTemplateModels = TestUtils.getServiceTemplates
         (expectedResultMap);
@@ -257,9 +209,9 @@ public class BaseResourceTranslationTest {
     validateNestedConsolidationDataNodeTemplateIds(consolidationData,expectedServiceTemplateModels);
   }
 
-  public void validateComputeTemplateConsolidationData(ConsolidationDataValidationType
-                                                           validationType,
-                                                       String testName) {
+  protected void validateComputeTemplateConsolidationData(ConsolidationDataValidationType
+                                                                  validationType,
+                                                          String testName) {
     ConsolidationData consolidationData = translationContext.getConsolidationData();
     Map<String, ServiceTemplate> expectedServiceTemplateModels = TestUtils.getServiceTemplates
         (expectedResultMap);
@@ -322,19 +274,17 @@ public class BaseResourceTranslationTest {
     }
   }
 
-  public void validateGetAttribute(String testName){
+  protected void validateGetAttribute(String testName){
     Map<String, ServiceTemplate> expectedServiceTemplateModels = TestUtils.getServiceTemplates
         (expectedResultMap);
     validateGetAttr(translationContext,expectedServiceTemplateModels,testName);
   }
 
-  public void validateNestedTemplateConsolidationData(String testName){
+  protected void validateNestedTemplateConsolidationData(String testName){
     validateNestedConsolidationData(translationContext, testName);
   }
 
-  public void validatePortTemplateConsolidationData(ConsolidationDataValidationType
-                                                        validationType,
-                                                    String testName) {
+  void validatePortTemplateConsolidationData() {
     ConsolidationData consolidationData = translationContext.getConsolidationData();
     Map<String, ServiceTemplate> expectedServiceTemplateModels = TestUtils.getServiceTemplates
         (expectedResultMap);
@@ -358,7 +308,7 @@ public class BaseResourceTranslationTest {
       for(String portNodeTemplateId : portNodeTemplateIds) {
         PortTemplateConsolidationData portTemplateConsolidationData =
             filePortConsolidationData.getPortTemplateConsolidationData(portNodeTemplateId);
-        switch(validationType){
+        switch(ConsolidationDataValidationType.VALIDATE_CONNECTIVITY){
           case VALIDATE_CONNECTIVITY:
             validatePortConnectivityIn(portTemplateConsolidationData,expectedServiceTemplate);
             validatePortConnectivityOut(portNodeTemplateId, portTemplateConsolidationData,
index 74a6ce5..85557cb 100644 (file)
@@ -22,12 +22,9 @@ package org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslati
 
 import org.junit.Before;
 import org.junit.Test;
-import org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.ConsolidationDataValidationType;
 
 import java.io.IOException;
 
-import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.TestConstants.TEST_CONNECTIVITY_POSITIVE;
-
 /**
  * @author Avrahamg
  * @since August 10, 2016
@@ -46,8 +43,7 @@ public class ResourceTranslationContrailV2VmInterfaceImplTest extends BaseResour
     outputFilesPath = "/mock/services/heattotosca/contrailv2VMinterface/oneNet/expectedoutputfiles";
     initTranslatorAndTranslate();
     testTranslation();
-    validatePortTemplateConsolidationData(ConsolidationDataValidationType
-        .VALIDATE_CONNECTIVITY, TEST_CONNECTIVITY_POSITIVE);
+    validatePortTemplateConsolidationData();
   }
 
   @Test
@@ -57,8 +53,7 @@ public class ResourceTranslationContrailV2VmInterfaceImplTest extends BaseResour
         "/mock/services/heattotosca/contrailv2VMinterface/listNet/expectedoutputfiles";
     initTranslatorAndTranslate();
     testTranslation();
-    validatePortTemplateConsolidationData(ConsolidationDataValidationType
-        .VALIDATE_CONNECTIVITY, TEST_CONNECTIVITY_POSITIVE);
+    validatePortTemplateConsolidationData();
   }
 
   @Test
index 96e7af7..2e55cb9 100644 (file)
@@ -22,12 +22,9 @@ package org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslati
 
 import org.junit.Before;
 import org.junit.Test;
-import org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.ConsolidationDataValidationType;
 
 import java.io.IOException;
 
-import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.TestConstants.TEST_CONNECTIVITY_POSITIVE;
-
 
 public class ResourceTranslationNeutronPortImplTest extends BaseResourceTranslationTest {
 
@@ -43,8 +40,7 @@ public class ResourceTranslationNeutronPortImplTest extends BaseResourceTranslat
     outputFilesPath = "/mock/services/heattotosca/neutron_port_translation/expectedoutputfiles";
     initTranslatorAndTranslate();
     testTranslation();
-    validatePortTemplateConsolidationData(ConsolidationDataValidationType
-        .VALIDATE_CONNECTIVITY, TEST_CONNECTIVITY_POSITIVE);
+    validatePortTemplateConsolidationData();
   }
 
   @Test
@@ -54,8 +50,7 @@ public class ResourceTranslationNeutronPortImplTest extends BaseResourceTranslat
         "/mock/services/heattotosca/neutron_security_group_translation/expectedoutputfiles";
     initTranslatorAndTranslate();
     testTranslation();
-    validatePortTemplateConsolidationData(ConsolidationDataValidationType
-        .VALIDATE_CONNECTIVITY, TEST_CONNECTIVITY_POSITIVE);
+    validatePortTemplateConsolidationData();
   }
 
   @Test
@@ -65,7 +60,6 @@ public class ResourceTranslationNeutronPortImplTest extends BaseResourceTranslat
             "/mock/services/heattotosca/neutron_dual_stacks/expectedoutputfiles";
     initTranslatorAndTranslate();
     testTranslation();
-    validatePortTemplateConsolidationData(ConsolidationDataValidationType
-            .VALIDATE_CONNECTIVITY, TEST_CONNECTIVITY_POSITIVE);
+    validatePortTemplateConsolidationData();
   }
 }
index e8e9adf..248290c 100644 (file)
@@ -209,6 +209,7 @@ node_types:
         type: tosca.capabilities.network.Bindable
         valid_source_types:
         - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface
         occurrences:
         - 0
         - UNBOUNDED
@@ -216,6 +217,7 @@ node_types:
         type: tosca.capabilities.network.Bindable
         valid_source_types:
         - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface
         occurrences:
         - 0
         - UNBOUNDED
@@ -863,6 +865,7 @@ node_types:
         type: tosca.capabilities.network.Bindable
         valid_source_types:
         - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface
         occurrences:
         - 0
         - UNBOUNDED
@@ -881,6 +884,7 @@ node_types:
         type: tosca.capabilities.network.Bindable
         valid_source_types:
         - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface
         occurrences:
         - 0
         - UNBOUNDED
index 29a1ada..dd7f089 100644 (file)
@@ -251,7 +251,7 @@ node_types:
         occurrences:\r
         - 0\r
         - UNBOUNDED\r
-    - link_contrail_vmi_subinterface_perimeta_ssc_a_untrusted_0_vlan_ports:\r
+    - subinterface_link_contrail_vmi_subinterface_perimeta_ssc_a_untrusted_0_vlan_ports:\r
         capability: tosca.capabilities.network.Linkable\r
         relationship: tosca.relationships.network.LinksTo\r
         occurrences:\r
@@ -374,6 +374,7 @@ node_types:
         type: tosca.capabilities.network.Bindable\r
         valid_source_types:\r
         - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface\r
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface\r
         occurrences:\r
         - 0\r
         - UNBOUNDED\r
@@ -528,6 +529,7 @@ node_types:
         type: tosca.capabilities.network.Bindable\r
         valid_source_types:\r
         - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface\r
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface\r
         occurrences:\r
         - 0\r
         - UNBOUNDED\r
@@ -762,6 +764,7 @@ node_types:
         type: tosca.capabilities.network.Bindable\r
         valid_source_types:\r
         - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface\r
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface\r
         occurrences:\r
         - 0\r
         - UNBOUNDED\r
@@ -793,6 +796,7 @@ node_types:
         type: tosca.capabilities.network.Bindable\r
         valid_source_types:\r
         - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface\r
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface\r
         occurrences:\r
         - 0\r
         - UNBOUNDED\r
@@ -872,6 +876,7 @@ node_types:
         type: tosca.capabilities.network.Bindable\r
         valid_source_types:\r
         - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface\r
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface\r
         occurrences:\r
         - 0\r
         - UNBOUNDED\r
@@ -944,6 +949,7 @@ node_types:
         type: tosca.capabilities.network.Bindable\r
         valid_source_types:\r
         - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface\r
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface\r
         occurrences:\r
         - 0\r
         - UNBOUNDED\r
@@ -1052,7 +1058,7 @@ node_types:
         occurrences:\r
         - 0\r
         - UNBOUNDED\r
-    - link_contrail_vmi_subinterface:\r
+    - subinterface_link_contrail_vmi_subinterface:\r
         capability: tosca.capabilities.network.Linkable\r
         relationship: tosca.relationships.network.LinksTo\r
         occurrences:\r
@@ -1299,7 +1305,7 @@ node_types:
         occurrences:\r
         - 0\r
         - UNBOUNDED\r
-    - link_contrail_vmi_subinterface_perimeta_ssc_b_untrusted_0_vlan_ports:\r
+    - subinterface_link_contrail_vmi_subinterface_perimeta_ssc_b_untrusted_0_vlan_ports:\r
         capability: tosca.capabilities.network.Linkable\r
         relationship: tosca.relationships.network.LinksTo\r
         occurrences:\r
@@ -1400,6 +1406,7 @@ node_types:
         type: tosca.capabilities.network.Bindable\r
         valid_source_types:\r
         - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface\r
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface\r
         occurrences:\r
         - 0\r
         - UNBOUNDED\r
@@ -1500,6 +1507,7 @@ node_types:
         type: tosca.capabilities.network.Bindable\r
         valid_source_types:\r
         - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface\r
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface\r
         occurrences:\r
         - 0\r
         - UNBOUNDED\r
@@ -1662,6 +1670,7 @@ node_types:
         type: tosca.capabilities.network.Bindable\r
         valid_source_types:\r
         - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface\r
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface\r
         occurrences:\r
         - 0\r
         - UNBOUNDED\r
@@ -1704,6 +1713,7 @@ node_types:
         type: tosca.capabilities.network.Bindable\r
         valid_source_types:\r
         - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface\r
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface\r
         occurrences:\r
         - 0\r
         - UNBOUNDED\r
@@ -1756,6 +1766,7 @@ node_types:
         type: tosca.capabilities.network.Bindable\r
         valid_source_types:\r
         - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface\r
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface\r
         occurrences:\r
         - 0\r
         - UNBOUNDED\r
@@ -2041,6 +2052,7 @@ node_types:
         type: tosca.capabilities.network.Bindable\r
         valid_source_types:\r
         - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface\r
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface\r
         occurrences:\r
         - 0\r
         - UNBOUNDED\r
@@ -2273,7 +2285,7 @@ node_types:
         occurrences:\r
         - 0\r
         - UNBOUNDED\r
-    - link_contrail_vmi_subinterface_perimeta_rtp_msc_a_untrusted_0_vlan_ports:\r
+    - subinterface_link_contrail_vmi_subinterface_perimeta_rtp_msc_a_untrusted_0_vlan_ports:\r
         capability: tosca.capabilities.network.Linkable\r
         relationship: tosca.relationships.network.LinksTo\r
         occurrences:\r
@@ -2394,6 +2406,7 @@ node_types:
         type: tosca.capabilities.network.Bindable\r
         valid_source_types:\r
         - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface\r
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface\r
         occurrences:\r
         - 0\r
         - UNBOUNDED\r
@@ -2578,6 +2591,7 @@ node_types:
         type: tosca.capabilities.network.Bindable\r
         valid_source_types:\r
         - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface\r
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface\r
         occurrences:\r
         - 0\r
         - UNBOUNDED\r
@@ -2772,6 +2786,7 @@ node_types:
         type: tosca.capabilities.network.Bindable\r
         valid_source_types:\r
         - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface\r
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface\r
         occurrences:\r
         - 0\r
         - UNBOUNDED\r
@@ -2791,6 +2806,7 @@ node_types:
         type: tosca.capabilities.network.Bindable\r
         valid_source_types:\r
         - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface\r
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface\r
         occurrences:\r
         - 0\r
         - UNBOUNDED\r
@@ -3128,7 +3144,7 @@ node_types:
         occurrences:\r
         - 0\r
         - UNBOUNDED\r
-    - link_contrail_vmi_subinterface_perimeta_rtp_msc_b_untrusted_0_vlan_ports:\r
+    - subinterface_link_contrail_vmi_subinterface_perimeta_rtp_msc_b_untrusted_0_vlan_ports:\r
         capability: tosca.capabilities.network.Linkable\r
         relationship: tosca.relationships.network.LinksTo\r
         occurrences:\r
@@ -3334,6 +3350,7 @@ node_types:
         type: tosca.capabilities.network.Bindable\r
         valid_source_types:\r
         - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface\r
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface\r
         occurrences:\r
         - 0\r
         - UNBOUNDED\r
@@ -3580,6 +3597,7 @@ node_types:
         type: tosca.capabilities.network.Bindable\r
         valid_source_types:\r
         - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface\r
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface\r
         occurrences:\r
         - 0\r
         - UNBOUNDED\r
@@ -3627,6 +3645,7 @@ node_types:
         type: tosca.capabilities.network.Bindable\r
         valid_source_types:\r
         - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface\r
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface\r
         occurrences:\r
         - 0\r
         - UNBOUNDED\r
@@ -3652,6 +3671,7 @@ node_types:
         type: tosca.capabilities.network.Bindable\r
         valid_source_types:\r
         - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface\r
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface\r
         occurrences:\r
         - 0\r
         - UNBOUNDED\r
@@ -3706,4 +3726,4 @@ node_types:
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
         occurrences:\r
         - 1\r
-        - UNBOUNDED\r
+        - UNBOUNDED
\ No newline at end of file
index 49a49f5..9823eda 100644 (file)
@@ -242,7 +242,7 @@ topology_template:
           ip_count_required:\r
             is_required: true\r
           floating_ip_count_required:\r
-            is_required: true\r
+            is_required: false\r
         security_groups:\r
           get_input: perimeta_sec_groups\r
         fixed_ips:\r
@@ -278,7 +278,7 @@ topology_template:
           ip_count_required:\r
             is_required: true\r
           floating_ip_count_required:\r
-            is_required: true\r
+            is_required: false\r
         security_groups:\r
           get_input: perimeta_sec_groups\r
         fixed_ips:\r
@@ -359,7 +359,7 @@ topology_template:
           ip_count_required:\r
             is_required: true\r
           floating_ip_count_required:\r
-            is_required: true\r
+            is_required: false\r
         security_groups:\r
           get_input: perimeta_sec_groups\r
         fixed_ips:\r
@@ -423,7 +423,7 @@ topology_template:
           ip_count_required:\r
             is_required: true\r
           floating_ip_count_required:\r
-            is_required: true\r
+            is_required: false\r
         security_groups:\r
           get_input: perimeta_sec_groups\r
         fixed_ips:\r
@@ -869,6 +869,9 @@ topology_template:
       dependency_perimeta_ssc_a_untrusted_parent_0_port:\r
       - perimeta_ssc_a_untrusted_parent_0_port\r
       - dependency\r
+      subinterface_link_contrail_vmi_subinterface_perimeta_ssc_a_untrusted_0_vlan_ports:\r
+      - perimeta_ssc_a_untrusted_0_vlan_ports\r
+      - subinterface_link_contrail_vmi_subinterface\r
       link_perimeta_ssc_a_mgmt_1_port:\r
       - perimeta_ssc_a_mgmt_1_port\r
       - link\r
@@ -884,9 +887,6 @@ topology_template:
       dependency_perimeta_ssc_a_ha_0_port:\r
       - perimeta_ssc_a_ha_0_port\r
       - dependency\r
-      link_contrail_vmi_subinterface_perimeta_ssc_a_untrusted_0_vlan_ports:\r
-      - perimeta_ssc_a_untrusted_0_vlan_ports\r
-      - link_contrail_vmi_subinterface\r
       link_perimeta_ssc_a_mgmt_0_port:\r
       - perimeta_ssc_a_mgmt_0_port\r
       - link\r
index 4067561..3a11fe3 100644 (file)
@@ -204,7 +204,7 @@ topology_template:
           ip_count_required:\r
             is_required: true\r
           floating_ip_count_required:\r
-            is_required: true\r
+            is_required: false\r
         security_groups:\r
           get_input: perimeta_sec_groups\r
         fixed_ips:\r
@@ -240,7 +240,7 @@ topology_template:
           ip_count_required:\r
             is_required: true\r
           floating_ip_count_required:\r
-            is_required: true\r
+            is_required: false\r
         security_groups:\r
           get_input: perimeta_sec_groups\r
         fixed_ips:\r
@@ -321,7 +321,7 @@ topology_template:
           ip_count_required:\r
             is_required: true\r
           floating_ip_count_required:\r
-            is_required: true\r
+            is_required: false\r
         security_groups:\r
           get_input: perimeta_sec_groups\r
         fixed_ips:\r
@@ -417,7 +417,7 @@ topology_template:
           ip_count_required:\r
             is_required: true\r
           floating_ip_count_required:\r
-            is_required: true\r
+            is_required: false\r
         security_groups:\r
           get_input: perimeta_sec_groups\r
         fixed_ips:\r
@@ -852,6 +852,9 @@ topology_template:
       dependency_perimeta_ssc_b_unused_0_port:\r
       - perimeta_ssc_b_unused_0_port\r
       - dependency\r
+      subinterface_link_contrail_vmi_subinterface_perimeta_ssc_b_untrusted_0_vlan_ports:\r
+      - perimeta_ssc_b_untrusted_0_vlan_ports\r
+      - subinterface_link_contrail_vmi_subinterface\r
       dependency_contrail_vmi_subinterface_perimeta_ssc_b_untrusted_0_vlan_ports:\r
       - perimeta_ssc_b_untrusted_0_vlan_ports\r
       - dependency_contrail_vmi_subinterface\r
@@ -861,9 +864,6 @@ topology_template:
       local_storage_perimeta_ssc_b_server_0:\r
       - perimeta_ssc_b_server_0\r
       - local_storage\r
-      link_contrail_vmi_subinterface_perimeta_ssc_b_untrusted_0_vlan_ports:\r
-      - perimeta_ssc_b_untrusted_0_vlan_ports\r
-      - link_contrail_vmi_subinterface\r
       link_perimeta_ssc_b_mgmt_0_port:\r
       - perimeta_ssc_b_mgmt_0_port\r
       - link\r
@@ -893,4 +893,4 @@ topology_template:
       - dependency\r
       link_perimeta_ssc_b_ha_0_port:\r
       - perimeta_ssc_b_ha_0_port\r
-      - link\r
+      - link
\ No newline at end of file
index 8d11d9b..c2b4697 100644 (file)
@@ -795,9 +795,6 @@ topology_template:
       dependency_perimeta_rtp_msc_a_ha_0_port:\r
       - perimeta_rtp_msc_a_ha_0_port\r
       - dependency\r
-      link_contrail_vmi_subinterface_perimeta_rtp_msc_a_untrusted_0_vlan_ports:\r
-      - perimeta_rtp_msc_a_untrusted_0_vlan_ports\r
-      - link_contrail_vmi_subinterface\r
       link_perimeta_rtp_msc_a_untrusted_parent_0_port:\r
       - perimeta_rtp_msc_a_untrusted_parent_0_port\r
       - link\r
@@ -807,6 +804,9 @@ topology_template:
       dependency_perimeta_rtp_msc_a_server_0:\r
       - perimeta_rtp_msc_a_server_0\r
       - dependency\r
+      subinterface_link_contrail_vmi_subinterface_perimeta_rtp_msc_a_untrusted_0_vlan_ports:\r
+      - perimeta_rtp_msc_a_untrusted_0_vlan_ports\r
+      - subinterface_link_contrail_vmi_subinterface\r
       dependency_perimeta_rtp_msc_a_trusted_0_port:\r
       - perimeta_rtp_msc_a_trusted_0_port\r
       - dependency\r
index f71b450..449677d 100644 (file)
@@ -781,15 +781,15 @@ topology_template:
       dependency_perimeta_rtp_msc_b_mgmt_0_port:\r
       - perimeta_rtp_msc_b_mgmt_0_port\r
       - dependency\r
-      link_contrail_vmi_subinterface_perimeta_rtp_msc_b_untrusted_0_vlan_ports:\r
-      - perimeta_rtp_msc_b_untrusted_0_vlan_ports\r
-      - link_contrail_vmi_subinterface\r
       link_perimeta_rtp_msc_b_trusted_0_port:\r
       - perimeta_rtp_msc_b_trusted_0_port\r
       - link\r
       dependency_perimeta_rtp_msc_b_untrusted_parent_0_port:\r
       - perimeta_rtp_msc_b_untrusted_parent_0_port\r
       - dependency\r
+      subinterface_link_contrail_vmi_subinterface_perimeta_rtp_msc_b_untrusted_0_vlan_ports:\r
+      - perimeta_rtp_msc_b_untrusted_0_vlan_ports\r
+      - subinterface_link_contrail_vmi_subinterface\r
       link_perimeta_rtp_msc_b_ha_0_port:\r
       - perimeta_rtp_msc_b_ha_0_port\r
       - link\r
index 12a1064..7c222cc 100644 (file)
-tosca_definitions_version: tosca_simple_yaml_1_0_0\r
-metadata:\r
-  template_name: vlan_subinterface_dual\r
-imports:\r
-- openecomp_heat_index:\r
-    file: openecomp-heat/_index.yml\r
-- GlobalSubstitutionTypes:\r
-    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
-topology_template:\r
-  inputs:\r
-    perimeta_parent_interface:\r
-      hidden: false\r
-      immutable: false\r
-      type: string\r
-      description: Parent Contrail interface\r
-    perimeta_v6_vip_0:\r
-      hidden: false\r
-      immutable: false\r
-      type: string\r
-      description: virtual IPv6 address associated with subinterfaces\r
-    perimeta_subinterface_name_prefix:\r
-      hidden: false\r
-      immutable: false\r
-      type: string\r
-      description: Combined with subinterface_instance_index, this is used as the name of the subinterface resource\r
-    perimeta_vlan_networks:\r
-      hidden: false\r
-      immutable: false\r
-      type: list\r
-      description: List of Contrail VLAN networks to use for the subinterfaces.   The order and number of these must match the VLAN ID list\r
-      entry_schema:\r
-        type: string\r
-    perimeta_subinterface_instance_index:\r
-      hidden: false\r
-      immutable: false\r
-      type: float\r
-      description: Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances.\r
-      constraints:\r
-      - in_range:\r
-        - 1\r
-        - 1001\r
-    perimeta_ip_0:\r
-      hidden: false\r
-      immutable: false\r
-      type: string\r
-      description: IPv4 address associated with subinterfaces\r
-    perimeta_vip_0:\r
-      hidden: false\r
-      immutable: false\r
-      type: string\r
-      description: virtual IPv4 address associated with subinterfaces\r
-    perimeta_vlan_ids:\r
-      hidden: false\r
-      immutable: false\r
-      type: list\r
-      description: List of VLAN IDs to use for subinterfaces\r
-      entry_schema:\r
-        type: string\r
-    perimeta_mac_address:\r
-      hidden: false\r
-      immutable: false\r
-      type: string\r
-      description: MAC address to use for subinterface\r
-    perimeta_v6_ip_0:\r
-      hidden: false\r
-      immutable: false\r
-      type: string\r
-      description: IPv6 address associated with subinterfaces\r
-  node_templates:\r
-    contrail_vmi_subinterface:\r
-      type: org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface\r
-      properties:\r
-        virtual_machine_interface_refs:\r
-        - get_input: perimeta_parent_interface\r
-        name:\r
-          str_replace:\r
-            template: $NAME_$VLAN\r
-            params:\r
-              $NAME:\r
-                get_input: perimeta_subinterface_name_prefix\r
-              $VLAN:\r
-                get_input:\r
-                - perimeta_vlan_ids\r
-                - get_input: perimeta_subinterface_instance_index\r
-        virtual_network_refs:\r
-        - get_input:\r
-          - perimeta_vlan_networks\r
-          - get_input: perimeta_subinterface_instance_index\r
-        virtual_machine_interface_properties:\r
-          sub_interface_vlan_tag:\r
-            get_input:\r
-            - perimeta_vlan_ids\r
-            - get_input: perimeta_subinterface_instance_index\r
-        virtual_machine_interface_allowed_address_pairs:\r
-          allowed_address_pair:\r
-          - address_mode: active-standby\r
-            ip:\r
-              ip_prefix:\r
-                get_input: perimeta_vip_0\r
-              ip_prefix_len: 32\r
-            mac:\r
-              get_input: perimeta_mac_address\r
-          - address_mode: active-standby\r
-            ip:\r
-              ip_prefix:\r
-                get_input: perimeta_v6_vip_0\r
-              ip_prefix_len: 128\r
-            mac:\r
-              get_input: perimeta_mac_address\r
-        virtual_machine_interface_mac_addresses:\r
-          mac_address:\r
-          - get_input: perimeta_mac_address\r
-  groups:\r
-    vlan_subinterface_dual_group:\r
-      type: org.openecomp.groups.heat.HeatStack\r
-      properties:\r
-        heat_file: ../Artifacts/vlan_subinterface_dual.yaml\r
-        description: |\r
-          HOT template to instantiate a single Contrail VLAN sub-interface with associated instance IP addresses and allowed address pairs\r
-      members:\r
-      - contrail_vmi_subinterface\r
-  substitution_mappings:\r
-    node_type: org.openecomp.resource.abstract.nodes.heat.subinterface.vlan_subinterface_dual\r
-    capabilities:\r
-      feature_contrail_vmi_subinterface:\r
-      - contrail_vmi_subinterface\r
-      - feature\r
-    requirements:\r
-      binding_contrail_vmi_subinterface:\r
-      - contrail_vmi_subinterface\r
-      - binding\r
-      link_contrail_vmi_subinterface:\r
-      - contrail_vmi_subinterface\r
-      - link\r
-      dependency_contrail_vmi_subinterface:\r
-      - contrail_vmi_subinterface\r
-      - dependency\r
\ No newline at end of file
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: vlan_subinterface_dual
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+topology_template:
+  inputs:
+    perimeta_parent_interface:
+      hidden: false
+      immutable: false
+      type: string
+      description: Parent Contrail interface
+    perimeta_v6_vip_0:
+      hidden: false
+      immutable: false
+      type: string
+      description: virtual IPv6 address associated with subinterfaces
+    perimeta_subinterface_name_prefix:
+      hidden: false
+      immutable: false
+      type: string
+      description: Combined with subinterface_instance_index, this is used as the name of the subinterface resource
+    perimeta_vlan_networks:
+      hidden: false
+      immutable: false
+      type: list
+      description: List of Contrail VLAN networks to use for the subinterfaces.   The order and number of these must match the VLAN ID list
+      entry_schema:
+        type: string
+    perimeta_subinterface_instance_index:
+      hidden: false
+      immutable: false
+      type: float
+      description: Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances.
+      constraints:
+      - in_range:
+        - 1
+        - 1001
+    perimeta_ip_0:
+      hidden: false
+      immutable: false
+      type: string
+      description: IPv4 address associated with subinterfaces
+    perimeta_vip_0:
+      hidden: false
+      immutable: false
+      type: string
+      description: virtual IPv4 address associated with subinterfaces
+    perimeta_vlan_ids:
+      hidden: false
+      immutable: false
+      type: list
+      description: List of VLAN IDs to use for subinterfaces
+      entry_schema:
+        type: string
+    perimeta_mac_address:
+      hidden: false
+      immutable: false
+      type: string
+      description: MAC address to use for subinterface
+    perimeta_v6_ip_0:
+      hidden: false
+      immutable: false
+      type: string
+      description: IPv6 address associated with subinterfaces
+  node_templates:
+    contrail_vmi_subinterface:
+      type: org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface
+      properties:
+        virtual_machine_interface_refs:
+        - get_input: perimeta_parent_interface
+        name:
+          str_replace:
+            template: $NAME_$VLAN
+            params:
+              $NAME:
+                get_input: perimeta_subinterface_name_prefix
+              $VLAN:
+                get_input:
+                - perimeta_vlan_ids
+                - get_input: perimeta_subinterface_instance_index
+        virtual_network_refs:
+        - get_input:
+          - perimeta_vlan_networks
+          - get_input: perimeta_subinterface_instance_index
+        virtual_machine_interface_properties:
+          sub_interface_vlan_tag:
+            get_input:
+            - perimeta_vlan_ids
+            - get_input: perimeta_subinterface_instance_index
+        virtual_machine_interface_allowed_address_pairs:
+          allowed_address_pair:
+          - address_mode: active-standby
+            ip:
+              ip_prefix:
+                get_input: perimeta_vip_0
+              ip_prefix_len: 32
+            mac:
+              get_input: perimeta_mac_address
+          - address_mode: active-standby
+            ip:
+              ip_prefix:
+                get_input: perimeta_v6_vip_0
+              ip_prefix_len: 128
+            mac:
+              get_input: perimeta_mac_address
+        virtual_machine_interface_mac_addresses:
+          mac_address:
+          - get_input: perimeta_mac_address
+  groups:
+    vlan_subinterface_dual_group:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/vlan_subinterface_dual.yaml
+        description: |
+          HOT template to instantiate a single Contrail VLAN sub-interface with associated instance IP addresses and allowed address pairs
+      members:
+      - contrail_vmi_subinterface
+  substitution_mappings:
+    node_type: org.openecomp.resource.abstract.nodes.heat.subinterface.vlan_subinterface_dual
+    capabilities:
+      feature_contrail_vmi_subinterface:
+      - contrail_vmi_subinterface
+      - feature
+    requirements:
+      binding_contrail_vmi_subinterface:
+      - contrail_vmi_subinterface
+      - binding
+      subinterface_link_contrail_vmi_subinterface:
+      - contrail_vmi_subinterface
+      - subinterface_link
+      dependency_contrail_vmi_subinterface:
+      - contrail_vmi_subinterface
+      - dependency
\ No newline at end of file
index 49b834b..f890787 100644 (file)
@@ -238,6 +238,7 @@ node_types:
         type: tosca.capabilities.network.Bindable
         valid_source_types:
         - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface
         occurrences:
         - 0
         - UNBOUNDED
@@ -245,6 +246,7 @@ node_types:
         type: tosca.capabilities.network.Bindable
         valid_source_types:
         - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface
         occurrences:
         - 0
         - UNBOUNDED
index 7d86e37..be31e6e 100644 (file)
@@ -281,11 +281,6 @@ topology_template:
       properties:
         network_name:
           get_input: cps_net_name
-      requirements:
-      - dependency:
-          capability: tosca.capabilities.Node
-          node: server_pcm_001
-          relationship: tosca.relationships.DependsOn
     server_pcm_003:
       type: org.openecomp.resource.abstract.nodes.heat.nested-pcm_v0.1
       directives:
@@ -336,4 +331,4 @@ topology_template:
       value:
         get_attribute:
         - server_pcm_002
-        - oam_net_ip
+        - oam_net_ip
\ No newline at end of file
index 49b834b..f890787 100644 (file)
@@ -238,6 +238,7 @@ node_types:
         type: tosca.capabilities.network.Bindable
         valid_source_types:
         - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface
         occurrences:
         - 0
         - UNBOUNDED
@@ -245,6 +246,7 @@ node_types:
         type: tosca.capabilities.network.Bindable
         valid_source_types:
         - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface
         occurrences:
         - 0
         - UNBOUNDED
index 973d8c0..864aa08 100644 (file)
@@ -289,11 +289,6 @@ topology_template:
       properties:
         network_name:
           get_input: net_name
-      requirements:
-      - dependency:
-          capability: tosca.capabilities.Node
-          node: server_pcm_001
-          relationship: tosca.relationships.DependsOn
     compute_port_0:
       type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
       properties:
@@ -359,4 +354,4 @@ topology_template:
       value:
         get_attribute:
         - server_pcm_001
-        - pcm_vol
+        - pcm_vol
\ No newline at end of file