import tosca bug 77/22977/2
authortalio <tali.orenbach@amdocs.com>
Thu, 9 Nov 2017 15:49:28 +0000 (17:49 +0200)
committertalio <tali.orenbach@amdocs.com>
Thu, 9 Nov 2017 17:08:01 +0000 (19:08 +0200)
handling conversion of integers

Issue - Id : SDC-646

Change-Id: I7e024dc44709dc5288bced05da590f0c7962648a
Signed-off-by: talio <tali.orenbach@amdocs.com>
18 files changed:
openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/main/java/org/openecomp/core/impl/GlobalSubstitutionServiceTemplate.java
openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/main/java/org/openecomp/core/impl/ToscaConverterImpl.java
openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/main/java/org/openecomp/core/impl/ToscaConverterUtil.java [new file with mode: 0644]
openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/main/java/org/openecomp/core/impl/services/ServiceTemplateReaderServiceImpl.java
openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/converter/impl/ToscaConverterImplTest.java
openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/conversionWithInt/in/Definitions/MainServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/conversionWithInt/in/MainServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/conversionWithInt/in/TOSCA-Metadata/TOSCA.meta [new file with mode: 0644]
openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/conversionWithInt/out/MainServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertCsar/in/Definitions/resource-Spgw-template-interface.yml [new file with mode: 0644]
openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertCsar/in/MainServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertCsar/in/TOSCA-Metadata/TOSCA.meta [new file with mode: 0644]
openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertCsar/out/MainServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertMainSt/out/MainServiceTemplate.yaml
openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertParameters/in/Definitions/resource-Vhssvepcv2NodesHeatRsu-template.yml [new file with mode: 0644]
openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertParameters/in/MainServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertParameters/in/TOSCA-Metadata/TOSCA.meta [new file with mode: 0644]
openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertParameters/out/MainServiceTemplate.yaml [new file with mode: 0644]

index 778445c..4ff8af4 100644 (file)
@@ -67,7 +67,7 @@ public class GlobalSubstitutionServiceTemplate extends ServiceTemplate {
         setTosca_definitions_version(DEFININTION_VERSION);
     }
 
-    public Optional<Map<String, NodeType>> removeExistingGlobalTypes(Map<String, NodeType> nodes){
+    private Optional<Map<String, NodeType>> removeExistingGlobalTypes(Map<String, NodeType> nodes){
         Map<String, NodeType> nodeTypesToAdd = new HashMap<>();
         ServiceTemplate serviceTemplate = globalServiceTemplates.get("openecomp/nodes.yml");
 
@@ -75,13 +75,34 @@ public class GlobalSubstitutionServiceTemplate extends ServiceTemplate {
             return Optional.of(nodes);
         }
 
-        Map<String, NodeType> globalNodeTypes = serviceTemplate.getNode_types();
+        Map<String, NodeType> globalNodeTypes = getAllGlobalNodeTypes();
         for(Map.Entry<String, NodeType> nodeTypeEntry : nodes.entrySet()){
             if(!globalNodeTypes.containsKey(nodeTypeEntry.getKey())){
-                nodeTypesToAdd.put(nodeTypeEntry.getKey(), nodeTypeEntry.getValue());
+                Optional<NodeType> nodeType =
+                    ToscaConverterUtil
+                        .createObjectFromClass(nodeTypeEntry.getKey(), nodeTypeEntry.getValue(), NodeType.class);
+
+                nodeType
+                    .ifPresent(nodeTypeValue -> nodeTypesToAdd.put(nodeTypeEntry.getKey(), nodeTypeValue));
             }
         }
 
         return Optional.of(nodeTypesToAdd);
     }
+
+    private Map<String, NodeType> getAllGlobalNodeTypes(){
+        Map<String, NodeType> globalNodeTypes = new HashMap<>();
+
+        for(Map.Entry<String, ServiceTemplate> serviceTemplateEntry : globalServiceTemplates.entrySet()){
+            if(isNodesServiceTemplate(serviceTemplateEntry.getKey())){
+                globalNodeTypes.putAll(serviceTemplateEntry.getValue().getNode_types());
+            }
+        }
+
+        return globalNodeTypes;
+    }
+
+    private boolean isNodesServiceTemplate(String filename) {
+        return filename.endsWith("nodes.yml") || filename.endsWith("nodes.yaml");
+    }
 }
index 55f92aa..c321e59 100644 (file)
@@ -36,7 +36,7 @@ public class ToscaConverterImpl implements ToscaConverter {
 
     @Override
     public ToscaServiceModel convert(FileContentHandler fileContentHandler)
-            throws IOException {
+        throws IOException {
         Map<String, byte[]> csarFiles = new HashMap<>(fileContentHandler.getFiles());
         ToscaServiceModel toscaServiceModel = new ToscaServiceModel();
         Map<String, ServiceTemplate> serviceTemplates = new HashMap<>();
@@ -89,9 +89,9 @@ public class ToscaConverterImpl implements ToscaConverter {
             }
         } catch (YAMLException ye) {
             throw new CoreException(new ErrorCode.ErrorCodeBuilder()
-                    .withMessage("Invalid YAML content in file " + key + ". reason - "
-                            + ye.getMessage())
-                    .withCategory(ErrorCategory.APPLICATION).build());
+                .withMessage("Invalid YAML content in file " + key + ". reason - "
+                    + ye.getMessage())
+                .withCategory(ErrorCategory.APPLICATION).build());
         }
     }
 
@@ -112,7 +112,7 @@ public class ToscaConverterImpl implements ToscaConverter {
                                          GlobalSubstitutionServiceTemplate globalSubstitutionServiceTemplate,
                                          Map<String, byte[]> csarFiles) {
         Collection<ServiceTemplate> globalServiceTemplates =
-                GlobalTypesGenerator.getGlobalTypesServiceTemplate().values();
+            GlobalTypesGenerator.getGlobalTypesServiceTemplate().values();
         addGlobalServiceTemplates(globalServiceTemplates, serviceTemplates);
         toscaServiceModel.setEntryDefinitionServiceTemplate(mainStName);
         toscaServiceModel.setServiceTemplates(serviceTemplates);
@@ -137,10 +137,10 @@ public class ToscaConverterImpl implements ToscaConverter {
                                        String fileName, Map<String, byte[]> csarFiles,
                                        Map<String, ServiceTemplate> serviceTemplates) {
         Optional<ServiceTemplate> serviceTemplate =
-                getServiceTemplateFromCsar(fileName, csarFiles);
+            getServiceTemplateFromCsar(fileName, csarFiles);
         serviceTemplate.ifPresent(
-                serviceTemplate1 -> addServiceTemplate(serviceTemplateName, serviceTemplate1,
-                        serviceTemplates));
+            serviceTemplateValue -> addServiceTemplate(serviceTemplateName, serviceTemplateValue,
+                serviceTemplates));
     }
 
     private void addServiceTemplate(String serviceTemplateName,
@@ -172,7 +172,7 @@ public class ToscaConverterImpl implements ToscaConverter {
         ServiceTemplate serviceTemplate = new ServiceTemplate();
         try {
             ServiceTemplateReaderService readerService =
-                    new ServiceTemplateReaderServiceImpl(fileContent);
+                new ServiceTemplateReaderServiceImpl(fileContent);
             convertMetadata(serviceTemplateName, serviceTemplate, readerService);
             convertToscaVersion(serviceTemplate, readerService);
             convertImports(serviceTemplate);
@@ -181,9 +181,9 @@ public class ToscaConverterImpl implements ToscaConverter {
 
         } catch (YAMLException ye) {
             throw new CoreException(new ErrorCode.ErrorCodeBuilder()
-                    .withMessage("Invalid YAML content in file" + serviceTemplateName + ". reason - "
-                            + ye.getMessage())
-                    .withCategory(ErrorCategory.APPLICATION).build());
+                .withMessage("Invalid YAML content in file" + serviceTemplateName + ". reason - "
+                    + ye.getMessage())
+                .withCategory(ErrorCategory.APPLICATION).build());
         }
 
 
@@ -199,7 +199,7 @@ public class ToscaConverterImpl implements ToscaConverter {
     private void convertImports(ServiceTemplate serviceTemplate) {
         serviceTemplate.setImports(new ArrayList<>());
         serviceTemplate.getImports()
-                .add(createImportMap(openecompHeatIndex, "openecomp-heat/_index.yml"));
+            .add(createImportMap(openecompHeatIndex, "openecomp-heat/_index.yml"));
         serviceTemplate.getImports().add(createImportMap(globalSubstitution, globalStName));
 
     }
@@ -222,7 +222,7 @@ public class ToscaConverterImpl implements ToscaConverter {
         if (MapUtils.isNotEmpty(metadataToConvert)) {
             for (Map.Entry<String, Object> metadataEntry : metadataToConvert.entrySet()) {
                 if (Objects.isNull(metadataEntry.getValue()) ||
-                        !(metadataEntry.getValue() instanceof String)) {
+                    !(metadataEntry.getValue() instanceof String)) {
                     continue;
                 }
                 finalMetadata.put(metadataEntry.getKey(), (String) metadataEntry.getValue());
@@ -240,10 +240,12 @@ public class ToscaConverterImpl implements ToscaConverter {
         }
 
         for (Map.Entry<String, Object> nodeTypeEntry : nodeTypes.entrySet()) {
-            DataModelUtil
-                    .addNodeType(serviceTemplate, nodeTypeEntry.getKey(),
-                            (NodeType) createObjectFromClass(nodeTypeEntry.getKey(), nodeTypeEntry.getValue(),
-                                    NodeType.class));
+            Optional<NodeType> nodeType = ToscaConverterUtil
+                .createObjectFromClass(nodeTypeEntry.getKey(), nodeTypeEntry.getValue(),
+                    NodeType.class);
+
+            nodeType.ifPresent(nodeTypeValue -> DataModelUtil
+                .addNodeType(serviceTemplate, nodeTypeEntry.getKey(), nodeTypeValue));
         }
     }
 
@@ -276,11 +278,28 @@ public class ToscaConverterImpl implements ToscaConverter {
         }
 
         for (Map.Entry<String, Object> entry : mapToConvert.entrySet()) {
-            ParameterDefinition parameterDefinition =
-                    (ParameterDefinition) createObjectFromClass(
-                            entry.getKey(), entry.getValue(), ParameterDefinition.class);
-            addToServiceTemplateAccordingToSection(
-                    serviceTemplate, inputsOrOutputs, entry.getKey(), parameterDefinition);
+            Optional<ParameterDefinition> parameterDefinition =
+                ToscaConverterUtil.createObjectFromClass(
+                    entry.getKey(), entry.getValue(), ParameterDefinition.class);
+
+            parameterDefinition.ifPresent(parameterDefinitionValue -> {
+                handleDefaultValue(entry.getValue(), parameterDefinition.get());
+                addToServiceTemplateAccordingToSection(
+                    serviceTemplate, inputsOrOutputs, entry.getKey(), parameterDefinition.get());
+            } );
+        }
+    }
+
+    private void handleDefaultValue(Object entryValue,
+                                    ParameterDefinition parameterDefinition) {
+        if(!(entryValue instanceof Map)
+            || Objects.isNull(parameterDefinition)){
+            return;
+        }
+
+        Object defaultValue = ((Map) entryValue).get("default");
+        if(Objects.nonNull(defaultValue)) {
+            parameterDefinition.set_default(defaultValue);
         }
     }
 
@@ -291,11 +310,11 @@ public class ToscaConverterImpl implements ToscaConverter {
         switch (inputsOrOutputs) {
             case inputs:
                 DataModelUtil
-                        .addInputParameterToTopologyTemplate(serviceTemplate, parameterId, parameterDefinition);
+                    .addInputParameterToTopologyTemplate(serviceTemplate, parameterId, parameterDefinition);
                 break;
             case outputs:
                 DataModelUtil
-                        .addOutputParameterToTopologyTemplate(serviceTemplate, parameterId, parameterDefinition);
+                    .addOutputParameterToTopologyTemplate(serviceTemplate, parameterId, parameterDefinition);
         }
     }
 
@@ -327,15 +346,15 @@ public class ToscaConverterImpl implements ToscaConverter {
 
         substitutionMapping.setNode_type((String) substitutionMappings.get(nodeType));
         substitutionMapping.setCapabilities(
-                convertSubstitutionMappingsSections((Map<String, Object>) substitutionMappings.get(capabilities)));
+            convertSubstitutionMappingsSections((Map<String, Object>) substitutionMappings.get(capabilities)));
         substitutionMapping.setRequirements(
-                convertSubstitutionMappingsSections((Map<String, Object>) substitutionMappings.get(requirements)));
+            convertSubstitutionMappingsSections((Map<String, Object>) substitutionMappings.get(requirements)));
 
         return substitutionMapping;
     }
 
     private Map<String, List<String>> convertSubstitutionMappingsSections(
-            Map<String, Object> sectionToConvert) {
+        Map<String, Object> sectionToConvert) {
         Map<String, List<String>> convertedSection = new HashMap<>();
         if (MapUtils.isEmpty(sectionToConvert)) {
             return null;
@@ -385,14 +404,14 @@ public class ToscaConverterImpl implements ToscaConverter {
         nodeTemplate.setDescription((String) nodeTemplateAsMap.get("description"));
         nodeTemplate.setDirectives((List<String>) nodeTemplateAsMap.get("directives"));
         nodeTemplate.setInterfaces(
-                (Map<String, InterfaceDefinition>) nodeTemplateAsMap.get("interfaces"));
+            (Map<String, InterfaceDefinition>) nodeTemplateAsMap.get("interfaces"));
         nodeTemplate.setNode_filter((NodeFilter) nodeTemplateAsMap.get("node_filter"));
         nodeTemplate.setProperties((Map<String, Object>) nodeTemplateAsMap.get("properties"));
         nodeTemplate.setRequirements(
-                (List<Map<String, RequirementAssignment>>) nodeTemplateAsMap.get("requirements"));
+            (List<Map<String, RequirementAssignment>>) nodeTemplateAsMap.get("requirements"));
         nodeTemplate.setType((String) nodeTemplateAsMap.get("type"));
         nodeTemplate.setCapabilities(
-                convertCapabilities((Map<String, Object>) nodeTemplateAsMap.get("capabilities")));
+            convertCapabilities((Map<String, Object>) nodeTemplateAsMap.get("capabilities")));
 
         return nodeTemplate;
     }
@@ -404,27 +423,20 @@ public class ToscaConverterImpl implements ToscaConverter {
         }
         for (Map.Entry<String, Object> capabilityAssignmentEntry : capabilities.entrySet()) {
             Map<String, CapabilityAssignment> tempMap = new HashMap<>();
-            tempMap.put(capabilityAssignmentEntry.getKey(),
-                    (CapabilityAssignment) createObjectFromClass
-                            (capabilityAssignmentEntry.getKey(), capabilityAssignmentEntry.getValue(), CapabilityAssignment.class));
-            convertedCapabilities.add(tempMap);
+            Optional<CapabilityAssignment> capabilityAssignment = ToscaConverterUtil.createObjectFromClass
+                (capabilityAssignmentEntry.getKey(), capabilityAssignmentEntry.getValue(),
+                    CapabilityAssignment.class);
+
+            capabilityAssignment.ifPresent(capabilityAssignmentValue -> {
+                tempMap.put(capabilityAssignmentEntry.getKey(), capabilityAssignmentValue);
+                convertedCapabilities.add(tempMap);
+                }
+            );
+
         }
         return convertedCapabilities;
     }
 
-    private Object createObjectFromClass(String nodeTypeId,
-                                         Object objectCandidate,
-                                         Class classToCreate) {
-        try {
-            return JsonUtil.json2Object(objectCandidate.toString(), classToCreate);
-        } catch (Exception e) {
-            //todo - return error to user?
-            throw new CoreException(new ErrorCode.ErrorCodeBuilder()
-                    .withCategory(ErrorCategory.APPLICATION)
-                    .withMessage("Can't create " + classToCreate.getSimpleName() + " from " +
-                        nodeTypeId).build());
-        }
-    }
 
     private boolean isMainServiceTemplate(String fileName) {
         return fileName.endsWith(mainStName);
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/main/java/org/openecomp/core/impl/ToscaConverterUtil.java b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/main/java/org/openecomp/core/impl/ToscaConverterUtil.java
new file mode 100644 (file)
index 0000000..550f97c
--- /dev/null
@@ -0,0 +1,65 @@
+package org.openecomp.core.impl;
+
+import org.apache.commons.lang.StringUtils;
+import org.codehaus.jackson.map.ObjectMapper;
+import org.openecomp.core.utilities.json.JsonUtil;
+import org.openecomp.sdc.common.errors.CoreException;
+import org.openecomp.sdc.common.errors.ErrorCategory;
+import org.openecomp.sdc.common.errors.ErrorCode;
+
+import java.lang.reflect.Field;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Optional;
+
+public class ToscaConverterUtil {
+  private static final String set = "set";
+
+  public static <T> Optional<T> createObjectFromClass(String objectId,
+                                       Object objectCandidate,
+                                       Class<T> classToCreate) {
+    try {
+      return createObjectUsingSetters(objectCandidate, classToCreate);
+    } catch (Exception e) {
+      throw new CoreException(new ErrorCode.ErrorCodeBuilder()
+          .withCategory(ErrorCategory.APPLICATION)
+          .withMessage("Can't create " + classToCreate.getSimpleName() + " from " +
+              objectId + ". Reason - " + e.getMessage()).build());
+    }
+  }
+
+  private static <T> Optional<T> createObjectUsingSetters(Object objectCandidate,
+                                                          Class<T> classToCreate) throws Exception {
+    if(!(objectCandidate instanceof Map)){
+      return Optional.empty();
+    }
+
+    Map<String, Object> objectAsMap = (Map<String, Object>) objectCandidate;
+    Field[] classFields = classToCreate.getDeclaredFields();
+    T result = classToCreate.newInstance();
+
+    for(Field field : classFields){
+      Object fieldValueToAssign = objectAsMap.get(field.getName());
+      String methodName = set + StringUtils.capitalize(field.getName());
+
+      if(shouldSetterMethodNeedsToGetInvoked(classToCreate, field, fieldValueToAssign, methodName)){
+        classToCreate.getMethod(methodName, field.getType()).invoke(result, fieldValueToAssign);
+      }
+    }
+
+    return Optional.of(result);
+  }
+
+  private static <T> boolean shouldSetterMethodNeedsToGetInvoked(Class<T> classToCreate,
+                                                                 Field field,
+                                                                 Object fieldValueToAssign,
+                                                                 String methodName) {
+
+    try {
+      return Objects.nonNull(fieldValueToAssign)
+          && Objects.nonNull(classToCreate.getMethod(methodName, field.getType()));
+    } catch (NoSuchMethodException e) {
+      return false;
+    }
+  }
+}
index fa85325..8155fcc 100644 (file)
@@ -1,11 +1,7 @@
 package org.openecomp.core.impl.services;
 
 import org.openecomp.core.converter.ServiceTemplateReaderService;
-import org.openecomp.sdc.common.errors.CoreException;
-import org.openecomp.sdc.common.errors.ErrorCategory;
-import org.openecomp.sdc.common.errors.ErrorCode;
 import org.openecomp.sdc.tosca.services.YamlUtil;
-import org.yaml.snakeyaml.error.YAMLException;
 
 import java.util.HashMap;
 import java.util.Map;
index f29ca4a..5e94fa1 100644 (file)
@@ -2,6 +2,7 @@ package org.openecomp.core.converter.impl;
 
 import org.apache.commons.collections.CollectionUtils;
 import org.junit.Assert;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.openecomp.core.converter.ToscaConverter;
 import org.openecomp.core.impl.ToscaConverterImpl;
@@ -40,28 +41,39 @@ public class ToscaConverterImplTest {
   private static final ToscaConverter toscaConverter = new ToscaConverterImpl();
   private static final String VIRTUAL_LINK = "virtualLink";
   private static final String UNBOUNDED = "UNBOUNDED";
-
-  private static String inputFilesPath;
-  private static String outputFilesPath;
-  private static Map<String, ServiceTemplate> expectedOutserviceTemplates;
+  private static final String BASE_DIR = "/mock/toscaConverter";
 
 
   @Test
   public void testConvertMainSt() throws IOException {
-    inputFilesPath = "/mock/toscaConverter/convertMainSt/in";
-    outputFilesPath = "/mock/toscaConverter/convertMainSt/out";
+    String inputFilesPath = BASE_DIR + "/convertMainSt/in";
+    String outputFilesPath = BASE_DIR + "/convertMainSt/out";
 
-    FileContentHandler fileContentHandler =
-        createFileContentHandlerFromInput(inputFilesPath);
+    convertAndValidate(inputFilesPath, outputFilesPath);
+  }
 
-    expectedOutserviceTemplates = new HashMap<>();
-    loadServiceTemplates(outputFilesPath, new ToscaExtensionYamlUtil(),
-        expectedOutserviceTemplates);
+  @Test
+  public void testNodesConversion() throws IOException {
+    String inputFilesPath = BASE_DIR + "/convertCsar/in";
+    String outputFilesPath = BASE_DIR + "/convertCsar/out";
 
-    ToscaServiceModel toscaServiceModel = toscaConverter.convert(fileContentHandler);
-    ServiceTemplate mainSt = toscaServiceModel.getServiceTemplates().get(mainStName);
+    convertAndValidate(inputFilesPath, outputFilesPath);
+  }
 
-    checkSTResults(expectedOutserviceTemplates, null, mainSt);
+  @Test
+  public void testParameterConversion() throws IOException {
+    String inputFilesPath = BASE_DIR + "/convertParameters/in";
+    String outputFilesPath = BASE_DIR + "/convertParameters/out";
+
+    convertAndValidate(inputFilesPath, outputFilesPath);
+  }
+
+  @Ignore
+  public void testConversionWithInt() throws IOException {
+    String inputFilesPath = BASE_DIR + "/conversionWithInt/in";
+    String outputFilesPath = BASE_DIR + "/conversionWithInt/out";
+
+    convertAndValidate(inputFilesPath, outputFilesPath);
   }
 
   @Test
@@ -119,6 +131,25 @@ public class ToscaConverterImplTest {
     return buildOccurrences(Arrays.asList(bounds));
   }
 
+  private void convertAndValidate(String inputFilesPath, String outputFilesPath)
+      throws IOException {
+    FileContentHandler fileContentHandler =
+        createFileContentHandlerFromInput(inputFilesPath);
+
+    ToscaServiceModel toscaServiceModel = toscaConverter.convert(fileContentHandler);
+    validateConvertorOutput(outputFilesPath, toscaServiceModel);
+  }
+
+  private void validateConvertorOutput(String outputFilesPath, ToscaServiceModel toscaServiceModel)
+      throws IOException {
+    ServiceTemplate mainSt = toscaServiceModel.getServiceTemplates().get(mainStName);
+    Map<String, ServiceTemplate> expectedOutserviceTemplates = new HashMap<>();
+    loadServiceTemplates(outputFilesPath, new ToscaExtensionYamlUtil(),
+        expectedOutserviceTemplates);
+
+    checkSTResults(expectedOutserviceTemplates, null, mainSt);
+  }
+
   private Object[] buildOccurrences(List<String> bounds) {
     NodeType nodeType = JsonUtil.json2Object("{derived_from=tosca.nodes.Root, description=MME_VFC, " +
             "properties={vendor={type=string, default=ERICSSON}, " +
@@ -201,18 +232,15 @@ public class ToscaConverterImplTest {
 
   private static void addServiceTemplateFiles(Map<String, ServiceTemplate> serviceTemplates,
                                               File[] files,
-                                              ToscaExtensionYamlUtil toscaExtensionYamlUtil)
-      throws IOException {
+                                              ToscaExtensionYamlUtil toscaExtensionYamlUtil) throws IOException {
+
     for (File file : files) {
+
       try (InputStream yamlFile = new FileInputStream(file)) {
         ServiceTemplate serviceTemplateFromYaml =
             toscaExtensionYamlUtil.yamlToObject(yamlFile, ServiceTemplate.class);
         createConcreteRequirementObjectsInServiceTemplate(serviceTemplateFromYaml, toscaExtensionYamlUtil);
         serviceTemplates.put(file.getName(), serviceTemplateFromYaml);
-        try {
-          yamlFile.close();
-        } catch (IOException ignore) {
-        }
       }
     }
   }
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/conversionWithInt/in/Definitions/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/conversionWithInt/in/Definitions/MainServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..013f723
--- /dev/null
@@ -0,0 +1,503 @@
+metadata: 
+  vendor: Huawei
+  csarVersion: v1.0
+  csarProvider: Huawei
+  id: vSBC_vP-CSCF
+  version: v1.0
+  csarType: NFAR
+  vnfdVersion: v1.0
+  vnfmType: hwvnfm
+topology_template: 
+  node_templates: 
+    SCU: 
+      attributes: 
+        tosca_name: SCU
+      capabilities: 
+        virtual_compute: 
+          properties: 
+            virtual_memory: 
+              virtual_mem_size: 24G
+            requested_additional_capabilities: {}
+            virtual_cpu: 
+              num_virtual_cpu: 2
+      properties: 
+        configurable_properties: 
+          test: {"additional_vnfc_configurable_properties":{"aaa":"1"}}
+        name: SCU
+        descrption: the virtual machine of SCU
+      requirements: 
+      - virtual_storage: 
+          capability: virtual_storage
+          node: SCU_Storage
+#      - local_storage: 
+#          node: tosca.nodes.Root
+      type: tosca.nodes.nfv.VDU.Compute
+    LBU2SignalNet1: 
+      attributes: 
+        tosca_name: LBU2SignalNet1
+      properties: 
+        role: root
+        layer_protocol: ethernet
+      requirements: 
+      - virtual_binding: 
+          capability: virtual_binding
+          node: LBU
+#      - virtual_link: 
+#          node: tosca.nodes.Root
+      type: tosca.nodes.nfv.VduCpd
+    CCU_VduCpd_Intra1: 
+      attributes: 
+        tosca_name: CCU_VduCpd_Intra1
+      properties: 
+        role: root
+        layer_protocol: ipv4
+      requirements: 
+      - virtual_binding: 
+          capability: virtual_binding
+          node: CCU
+      - virtual_link: 
+          capability: virtual_linkable
+          node: Intranet1
+      type: tosca.nodes.nfv.VduCpd
+    LBU_VduCpd_Intra1: 
+      attributes: 
+        tosca_name: LBU_VduCpd_Intra1
+      properties: 
+        role: root
+        layer_protocol: ipv4
+      requirements: 
+      - virtual_binding: 
+          capability: virtual_binding
+          node: LBU
+      - virtual_link: 
+          capability: virtual_linkable
+          node: Intranet1
+      type: tosca.nodes.nfv.VduCpd
+    OMU2ManageNet: 
+      attributes: 
+        tosca_name: OMU2ManageNet
+      properties: 
+        role: root
+        layer_protocol: ipv4
+#      requirements: 
+#      - virtual_binding: 
+#          node: tosca.nodes.Root
+#      - virtual_link: 
+#          node: tosca.nodes.Root
+      type: tosca.nodes.nfv.VduCpd
+    LBU_VduCpd_Intra2: 
+      attributes: 
+        tosca_name: LBU_VduCpd_Intra2
+      properties: 
+        role: root
+        layer_protocol: ipv4
+      requirements: 
+      - virtual_binding: 
+          capability: virtual_binding
+          node: LBU
+      - virtual_link: 
+          capability: virtual_linkable
+          node: Intranet2
+      type: tosca.nodes.nfv.VduCpd
+    OMU_Storage: 
+      attributes: 
+        tosca_name: OMU_Storage
+      properties: 
+        id: OMU_Storage
+        size_of_storage: 256G
+        rdma_enabled: false
+        type_of_storage: volume
+      type: tosca.nodes.nfv.VDU.VirtualStorage
+    HRU: 
+      attributes: 
+        tosca_name: HRU
+      capabilities: 
+        virtual_compute: 
+          properties: 
+            virtual_memory: 
+              virtual_mem_size: 12G
+            requested_additional_capabilities: {}
+            virtual_cpu: 
+              num_virtual_cpu: 3
+      properties: 
+        configurable_properties: 
+          test: {"additional_vnfc_configurable_properties":{"aaa":"1"}}
+        name: HRU
+        descrption: the virtual machine of HRU
+      requirements: 
+      - virtual_storage: 
+          capability: virtual_storage
+          node: HRU_Storage
+#      - local_storage: 
+#          node: tosca.nodes.Root
+      type: tosca.nodes.nfv.VDU.Compute
+    VPU_Storage: 
+      attributes: 
+        tosca_name: VPU_Storage
+      properties: 
+        id: VPU_Storage
+        size_of_storage: 4G
+        type_of_storage: volume
+      type: tosca.nodes.nfv.VDU.VirtualStorage
+    SCU_VduCpd_Intra1: 
+      attributes: 
+        tosca_name: SCU_VduCpd_Intra1
+      properties: 
+        role: root
+        layer_protocol: ipv4
+      requirements: 
+      - virtual_binding: 
+          capability: virtual_binding
+          node: SCU
+      - virtual_link: 
+          capability: virtual_linkable
+          node: Intranet1
+      type: tosca.nodes.nfv.VduCpd
+    HRU_VduCpd_Intra2: 
+      attributes: 
+        tosca_name: HRU_VduCpd_Intra2
+      properties: 
+        role: root
+        layer_protocol: ipv4
+      requirements: 
+      - virtual_binding: 
+          capability: virtual_binding
+          node: HRU
+      - virtual_link: 
+          capability: virtual_linkable
+          node: Intranet2
+      type: tosca.nodes.nfv.VduCpd
+    HRU_VduCpd_Intra1: 
+      attributes: 
+        tosca_name: HRU_VduCpd_Intra1
+      properties: 
+        role: root
+        layer_protocol: ipv4
+      requirements: 
+      - virtual_binding: 
+          capability: virtual_binding
+          node: HRU
+      - virtual_link: 
+          capability: virtual_linkable
+          node: Intranet1
+      type: tosca.nodes.nfv.VduCpd
+    CCU_Storage: 
+      attributes: 
+        tosca_name: CCU_Storage
+      properties: 
+        id: CCU_Storage
+        size_of_storage: 4G
+        type_of_storage: volume
+      type: tosca.nodes.nfv.VDU.VirtualStorage
+    BSU_VduCpd_Intra1: 
+      attributes: 
+        tosca_name: BSU_VduCpd_Intra1
+      properties: 
+        role: root
+        layer_protocol: ipv4
+      requirements: 
+      - virtual_binding: 
+          capability: virtual_binding
+          node: BSU
+      - virtual_link: 
+          capability: virtual_linkable
+          node: Intranet1
+      type: tosca.nodes.nfv.VduCpd
+    Intranet1: 
+      attributes: 
+        tosca_name: Intranet1
+      properties: 
+        vl_flavours: 
+          flavours: 
+            flavourId: test1
+        connectivity_type: 
+          layer_protocol: ipv4
+          flow_pattern: 
+      type: tosca.nodes.nfv.VnfVirtualLinkDesc
+    Intranet2: 
+      attributes: 
+        tosca_name: Intranet2
+      properties: 
+        vl_flavours: 
+          flavours: 
+            flavourId: test2
+        connectivity_type: 
+          layer_protocol: ipv4
+          flow_pattern: 
+      type: tosca.nodes.nfv.VnfVirtualLinkDesc
+    VPU: 
+      attributes: 
+        tosca_name: VPU
+      capabilities: 
+        virtual_compute: 
+          properties: 
+            virtual_memory: 
+              virtual_mem_size: 8G
+            requested_additional_capabilities: {}
+            virtual_cpu: 
+              num_virtual_cpu: 5
+      properties: 
+        configurable_properties: 
+          test: {"additional_vnfc_configurable_properties":{"aaa":"1"}}
+        name: VPU
+        descrption: the virtual machine of VPU
+      requirements: 
+      - virtual_storage: 
+          capability: virtual_storage
+          node: VPU_Storage
+#      - local_storage: 
+#          node: tosca.nodes.Root
+      type: tosca.nodes.nfv.VDU.Compute
+    LBU2SignalNet2: 
+      attributes: 
+        tosca_name: LBU2SignalNet2
+      properties: 
+        role: root
+        layer_protocol: ipv4
+      requirements: 
+      - virtual_binding: 
+          capability: virtual_binding
+          node: LBU
+#      - virtual_link: 
+#          node: tosca.nodes.Root
+      type: tosca.nodes.nfv.VduCpd
+    OMU_VduCpd_Intra1: 
+      attributes: 
+        tosca_name: OMU_VduCpd_Intra1
+      properties: 
+        role: root
+        layer_protocol: ipv4
+      requirements: 
+      - virtual_binding: 
+          capability: virtual_binding
+          node: OMU
+      - virtual_link: 
+          capability: virtual_linkable
+          node: Intranet1
+      type: tosca.nodes.nfv.VduCpd
+    LBU: 
+      attributes: 
+        tosca_name: LBU
+      capabilities: 
+        virtual_compute: 
+          properties: 
+            virtual_memory: 
+              virtual_mem_size: 24G
+            requested_additional_capabilities: {}
+            virtual_cpu: 
+              num_virtual_cpu: 4
+      properties: 
+        configurable_properties: 
+          test: {"additional_vnfc_configurable_properties":{"aaa":"1"}}
+        name: LBU
+        descrption: the virtual machine of LBU
+      requirements: 
+      - virtual_storage: 
+          capability: virtual_storage
+          node: LBU_Storage
+#      - local_storage: 
+#          node: tosca.nodes.Root
+      type: tosca.nodes.nfv.VDU.Compute
+    CMU_VduCpd_Intra1: 
+      attributes: 
+        tosca_name: CMU_VduCpd_Intra1
+      properties: 
+        role: root
+        layer_protocol: ipv4
+      requirements: 
+      - virtual_binding: 
+          capability: virtual_binding
+          node: CMU
+      - virtual_link: 
+          capability: virtual_linkable
+          node: Intranet1
+      type: tosca.nodes.nfv.VduCpd
+    CMU_Storage: 
+      attributes: 
+        tosca_name: CMU_Storage
+      properties: 
+        id: CMU_Storage
+        size_of_storage: 4G
+        type_of_storage: volume
+      type: tosca.nodes.nfv.VDU.VirtualStorage
+    BSU: 
+      attributes: 
+        tosca_name: BSU
+      capabilities: 
+        virtual_compute: 
+          properties: 
+            virtual_memory: 
+              virtual_mem_size: 8G
+            requested_additional_capabilities: {}
+            virtual_cpu: 
+              num_virtual_cpu: 1
+      properties: 
+        configurable_properties: 
+          test: {"additional_vnfc_configurable_properties":{"aaa":"1"}}
+        name: BSU
+        descrption: the virtual machine of BSU
+      requirements: 
+      - virtual_storage: 
+          capability: virtual_storage
+          node: BSU_Storage
+#      - local_storage: 
+#          node: tosca.nodes.Root
+      type: tosca.nodes.nfv.VDU.Compute
+    CMU: 
+      attributes: 
+        tosca_name: CMU
+      capabilities: 
+        virtual_compute: 
+          properties: 
+            virtual_memory: 
+              virtual_mem_size: 8G
+            requested_additional_capabilities: {}
+            virtual_cpu: 
+              num_virtual_cpu: 1
+      properties: 
+        configurable_properties: 
+          test: {"additional_vnfc_configurable_properties":{"aaa":"1"}}
+        name: CMU
+        descrption: the virtual machine of CMU
+      requirements: 
+      - virtual_storage: 
+          capability: virtual_storage
+          node: CMU_Storage
+#      - local_storage: 
+#          node: tosca.nodes.Root
+      type: tosca.nodes.nfv.VDU.Compute
+    SCU_Storage: 
+      attributes: 
+        tosca_name: SCU_Storage
+      properties: 
+        id: SCU_Storage
+        size_of_storage: 4G
+        type_of_storage: volume
+      type: tosca.nodes.nfv.VDU.VirtualStorage
+    HRU_Storage: 
+      attributes: 
+        tosca_name: HRU_Storage
+      properties: 
+        id: HRU_Storage
+        size_of_storage: 4G
+        type_of_storage: volume
+      type: tosca.nodes.nfv.VDU.VirtualStorage
+    CCU: 
+      attributes: 
+        tosca_name: CCU
+      capabilities: 
+        virtual_compute: 
+          properties: 
+            virtual_memory: 
+              virtual_mem_size: 16G
+            requested_additional_capabilities: {}
+            virtual_cpu: 
+              num_virtual_cpu: 2
+      properties: 
+        configurable_properties: 
+          test: {"additional_vnfc_configurable_properties":{"aaa":"1"}}
+        name: CCU
+        descrption: the virtual machine of CCU
+      requirements: 
+      - virtual_storage: 
+          capability: virtual_storage
+          node: CCU_Storage
+#      - local_storage: 
+#          node: tosca.nodes.Root
+      type: tosca.nodes.nfv.VDU.Compute
+    OMU: 
+      attributes: 
+        tosca_name: OMU
+      capabilities: 
+        virtual_compute: 
+          properties: 
+            virtual_memory: 
+              virtual_mem_size: 16G
+            requested_additional_capabilities: {}
+            virtual_cpu: 
+              num_virtual_cpu: 4
+      properties: 
+        configurable_properties: 
+          test: {"additional_vnfc_configurable_properties":{"aaa":"1"}}
+        name: OMU
+        descrption: the virtual machine of OMU
+      requirements: 
+      - virtual_storage: 
+          capability: virtual_storage
+          node: OMU_Storage
+#      - local_storage: 
+#          node: tosca.nodes.Root
+      type: tosca.nodes.nfv.VDU.Compute
+    BSU_Storage: 
+      attributes: 
+        tosca_name: BSU_Storage
+      properties: 
+        id: BSU_Storage
+        size_of_storage: 4G
+        type_of_storage: volume
+      type: tosca.nodes.nfv.VDU.VirtualStorage
+    UPIRU_VduCpd_Intra1: 
+      attributes: 
+        tosca_name: UPIRU_VduCpd_Intra1
+      properties: 
+        role: root
+        layer_protocol: ipv4
+      requirements: 
+      - virtual_binding: 
+          capability: virtual_binding
+          node: VPU
+      - virtual_link: 
+          capability: virtual_linkable
+          node: Intranet1
+      type: tosca.nodes.nfv.VduCpd
+    UPIRU_VduCpd_Intra2: 
+      attributes: 
+        tosca_name: UPIRU_VduCpd_Intra2
+      properties: 
+        role: root
+        layer_protocol: ipv4
+      requirements: 
+      - virtual_binding: 
+          capability: virtual_binding
+          node: VPU
+      - virtual_link: 
+          capability: virtual_linkable
+          node: Intranet2
+      type: tosca.nodes.nfv.VduCpd
+    HRU2MediaNet1: 
+      attributes: 
+        tosca_name: HRU2MediaNet1
+      properties: 
+        role: root
+        layer_protocol: ethernet
+      requirements: 
+      - virtual_binding: 
+          capability: virtual_binding
+          node: HRU
+#      - virtual_link: 
+#          node: tosca.nodes.Root
+      type: tosca.nodes.nfv.VduCpd
+    LBU_Storage: 
+      attributes: 
+        tosca_name: LBU_Storage
+      properties: 
+        id: LBU_Storage
+        size_of_storage: 4G
+        type_of_storage: volume
+      type: tosca.nodes.nfv.VDU.VirtualStorage
+    HRU2MediaNet2: 
+      attributes: 
+        tosca_name: HRU2MediaNet2
+      properties: 
+        role: root
+        layer_protocol: ipv4
+      requirements: 
+      - virtual_binding: 
+          capability: virtual_binding
+          node: HRU
+#      - virtual_link: 
+#          node: tosca.nodes.Root
+      type: tosca.nodes.nfv.VduCpd
+#  substitution_mappings: 
+#    node_type: tosca.nodes.nfv.VNF.vSBC
+tosca_definitions_version: tosca_simple_yaml_1_0
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/conversionWithInt/in/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/conversionWithInt/in/MainServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..010231f
--- /dev/null
@@ -0,0 +1,33 @@
+metadata: 
+  vendor: Huawei
+  csarVersion: v1.0
+  csarProvider: Huawei
+  id: vSBC_vP-CSCF
+  version: v1.0
+  csarType: NFAR
+  vnfdVersion: v1.0
+  vnfmType: hwvnfm
+topology_template: 
+  node_templates: 
+    SCU: 
+      attributes: 
+        tosca_name: SCU
+      capabilities: 
+        virtual_compute: 
+          properties: 
+            virtual_memory: 
+              virtual_mem_size: 24G
+            requested_additional_capabilities: {}
+            virtual_cpu: 
+              num_virtual_cpu: 2
+      properties: 
+        configurable_properties: 
+          test: {"additional_vnfc_configurable_properties":{"aaa":"1"}}
+        name: SCU
+        descrption: the virtual machine of SCU
+      requirements: 
+      - virtual_storage: 
+          capability: virtual_storage
+          node: SCU_Storage
+      type: tosca.nodes.nfv.VDU.Compute
+tosca_definitions_version: tosca_simple_yaml_1_0
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/conversionWithInt/in/TOSCA-Metadata/TOSCA.meta b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/conversionWithInt/in/TOSCA-Metadata/TOSCA.meta
new file mode 100644 (file)
index 0000000..4ca4aa7
--- /dev/null
@@ -0,0 +1,4 @@
+TOSCA-Meta-Version: 1.0
+CSAR-Version: 1.0
+Created-By: Winery 0.1.37-SNAPSHOT
+Entry-Definitions: Definitions/MainServiceTemplate.yaml
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/conversionWithInt/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/conversionWithInt/out/MainServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..10f7c21
--- /dev/null
@@ -0,0 +1,42 @@
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  vnfdVersion: v1.0
+  template_name: Main
+  vendor: Huawei
+  csarVersion: v1.0
+  vnfmType: hwvnfm
+  csarProvider: Huawei
+  id: vSBC_vP-CSCF
+  version: v1.0
+  csarType: NFAR
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+topology_template:
+  node_templates:
+    SCU:
+      type: tosca.nodes.nfv.VDU.Compute
+      properties:
+        configurable_properties:
+          test:
+            additional_vnfc_configurable_properties:
+              aaa: '1'
+        name: SCU
+        descrption: the virtual machine of SCU
+      attributes:
+        tosca_name: SCU
+      requirements:
+      - virtual_storage:
+          capability: virtual_storage
+          node: SCU_Storage
+      capabilities:
+      - virtual_compute:
+          properties:
+            virtual_memory:
+              virtual_mem_size: 24G
+            requested_additional_capabilities: {
+              }
+            virtual_cpu:
+              num_virtual_cpu: 2
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertCsar/in/Definitions/resource-Spgw-template-interface.yml b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertCsar/in/Definitions/resource-Spgw-template-interface.yml
new file mode 100644 (file)
index 0000000..0ba2bcc
--- /dev/null
@@ -0,0 +1,254 @@
+tosca_definitions_version: tosca_simple_yaml_1_1
+imports:
+- nodes:
+    file: nodes.yml
+- datatypes:
+    file: data.yml
+- capabilities:
+    file: capabilities.yml
+- relationships:
+    file: relationships.yml
+- groups:
+    file: groups.yml
+- policies:
+    file: policies.yml
+node_types:
+  org.openecomp.resource.vf.Spgw:
+    derived_from: org.openecomp.resource.abstract.nodes.VF
+    properties:
+      nf_naming:
+        type: org.openecomp.datatypes.Naming
+        default:
+          ecomp_generated_naming: true
+      nf_naming_code:
+        type: string
+        default: {
+          }
+      nf_function:
+        type: string
+        default: {
+          }
+      availability_zone_max_count:
+        type: integer
+        default: 1
+      nf_role:
+        type: string
+        default: {
+          }
+      max_instances:
+        type: integer
+        default: {
+          }
+      min_instances:
+        type: integer
+        default: {
+          }
+      nf_type:
+        type: string
+        default: {
+          }
+    capabilities:
+      extcp0.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      compute0.binding:
+        type: tosca.capabilities.network.Bindable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      extcp0.internal_connectionPoint:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      blockstorage0.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      compute0.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      compute0.host:
+        type: tosca.capabilities.Container
+        occurrences:
+        - 1
+        - UNBOUNDED
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
+        properties:
+          num_cpus:
+            type: integer
+            default: {
+              }
+            required: false
+          disk_size:
+            type: scalar-unit.size
+            default: {
+              }
+            required: false
+          cpu_frequency:
+            type: scalar-unit.frequency
+            default: {
+              }
+            required: false
+          mem_size:
+            type: scalar-unit.size
+            default: {
+              }
+            required: false
+      network0.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      compute0.scalable:
+        type: tosca.capabilities.Scalable
+        occurrences:
+        - 1
+        - UNBOUNDED
+        properties:
+          max_instances:
+            type: integer
+            default: 1
+            required: false
+          min_instances:
+            type: integer
+            default: 1
+            required: false
+          default_instances:
+            type: integer
+            default: {
+              }
+            required: false
+      compute0.endpoint:
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences:
+        - 1
+        - UNBOUNDED
+        properties:
+          secure:
+            type: boolean
+            default: true
+            required: false
+      blockstorage0.attachment:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      compute0.os:
+        type: tosca.capabilities.OperatingSystem
+        occurrences:
+        - 1
+        - UNBOUNDED
+        properties:
+          distribution:
+            type: string
+            default: {
+              }
+            required: false
+          type:
+            type: string
+            default: {
+              }
+            required: false
+          version:
+            type: version
+            default: {
+              }
+            required: false
+          architecture:
+            type: string
+            default: {
+              }
+            required: false
+      network0.link:
+        type: tosca.capabilities.network.Linkable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpd0.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+    requirements:
+    - compute0.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+    - blockstorage0.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+    - network0.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+    - extcp0.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+    - cpd0.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+    - extcp0.virtualBinding:
+        occurrences:
+        - 1
+        - UNBOUNDED
+        capability: tosca.capabilities.network.Bindable
+        relationship: tosca.relationships.network.BindsTo
+    - extcp0.virtualLink:
+        occurrences:
+        - 1
+        - UNBOUNDED
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+    - extcp0.external_virtualLink:
+        occurrences:
+        - 1
+        - UNBOUNDED
+        capability: tosca.capabilities.network.Linkable
+        node: org.openecomp.resource.vl.VL
+        relationship: tosca.relationships.network.LinksTo
+    - cpd0.virtual_link:
+        occurrences:
+        - 1
+        - UNBOUNDED
+        capability: tosca.capabilities.nfv.VirtualLinkable
+        node: tosca.nodes.nfv.VnfVirtualLinkDesc
+        relationship: tosca.relationships.nfv.VirtualLinksTo
+    - compute0.local_storage:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
+    - cpd0.virtual_binding:
+        occurrences:
+        - 1
+        - UNBOUNDED
+        capability: tosca.capabilities.nfv.VirtualBindable
+        node: tosca.nodes.nfv.VDU.Compute
+        relationship: tosca.relationships.nfv.VirtualBindsTo
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertCsar/in/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertCsar/in/MainServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..e6a873a
--- /dev/null
@@ -0,0 +1,231 @@
+tosca_definitions_version: tosca_simple_yaml_1_1
+metadata:
+  invariantUUID: 3c677981-34bf-47a0-a21b-c0d81f93d438
+  UUID: 5e74136f-3ca0-48eb-b0e7-b3740e170030
+  name: SPGW
+  description: SPGW
+  type: VF
+  category: Application L4+
+  subcategory: Firewall
+  resourceVendor: zte
+  resourceVendorRelease: v1.0
+  resourceVendorModelNumber: ''
+imports:
+- nodes:
+    file: Definitions/nodes.yml
+- datatypes:
+    file: Definitions/data.yml
+- capabilities:
+    file: Definitions/capabilities.yml
+- relationships:
+    file: Definitions/relationships.yml
+- groups:
+    file: Definitions/groups.yml
+- policies:
+    file: Definitions/policies.yml
+- resource-SPGW-interface:
+    file: Definitions/resource-Spgw-template-interface.yml
+- resource-Compute:
+    file: Definitions/resource-Compute-template.yml
+- resource-Cpd:
+    file: Definitions/resource-Cpd-template.yml
+- resource-ExtCP:
+    file: Definitions/resource-Extcp-template.yml
+- resource-Network:
+    file: Definitions/resource-Network-template.yml
+- resource-BlockStorage:
+    file: Definitions/resource-Blockstorage-template.yml
+topology_template:
+  inputs:
+    nf_naming:
+      type: org.openecomp.datatypes.Naming
+      default:
+        ecomp_generated_naming: true
+    nf_naming_code:
+      type: string
+      default: {
+        }
+    nf_function:
+      type: string
+      default: {
+        }
+    availability_zone_max_count:
+      type: integer
+      default: 1
+    nf_role:
+      type: string
+      default: {
+        }
+    max_instances:
+      type: integer
+      default: {
+        }
+    min_instances:
+      type: integer
+      default: {
+        }
+    nf_type:
+      type: string
+      default: {
+        }
+  node_templates:
+    Cpd 0:
+      type: tosca.nodes.nfv.VduCpd
+      metadata:
+        invariantUUID: 77336b37-f7b2-4226-a347-158d9c5a90b3
+        UUID: 06e09b93-d4aa-4d08-a2e5-99dbe80fb556
+        customizationUUID: fbf85c13-570f-415b-8eef-477341fcc6dc
+        version: '2.0'
+        name: Cpd
+        description: Cpd desc.
+        type: CP
+        category: Nfvo
+        subcategory: Network Elements
+        resourceVendor: ATT (Tosca)
+        resourceVendorRelease: 1.0.0.wd03
+        resourceVendorModelNumber: ''
+    BlockStorage 0:
+      type: tosca.nodes.BlockStorage
+      metadata:
+        invariantUUID: cbb3a953-20e4-49cd-b957-4d7a3232e2fc
+        UUID: 505ee1a0-68bb-4a85-a5ed-78ffa1a93a9b
+        customizationUUID: 9440174f-f641-44ba-8a93-6c3c8c6e17b9
+        version: '1.0'
+        name: BlockStorage
+        description: Represents a server-local block storage device (i.e., not shared) offering evenly sized blocks of data from which raw storage volumes can be created.
+        type: VFC
+        category: Generic
+        subcategory: Infrastructure
+        resourceVendor: ATT (Tosca)
+        resourceVendorRelease: 1.0.0.wd03
+        resourceVendorModelNumber: ''
+    ExtCP 0:
+      type: org.openecomp.resource.cp.extCP
+      metadata:
+        invariantUUID: eee70cdb-7632-4f4b-8a69-e1d7230a3263
+        UUID: 74db9efa-f694-4a7b-8056-6145372b37c4
+        customizationUUID: b6bc4c89-f2e3-4d14-8fb2-8535f42331a7
+        version: '3.0'
+        name: ExtCP
+        description: The AT&T Connection Point base type all other CP derive from
+        type: CP
+        category: Generic
+        subcategory: Network Elements
+        resourceVendor: ATT (Tosca)
+        resourceVendorRelease: 1.0.0.wd03
+        resourceVendorModelNumber: ''
+      properties:
+        mac_requirements:
+          mac_count_required:
+            is_required: false
+        exCP_naming:
+          ecomp_generated_naming: true
+    Network 0:
+      type: tosca.nodes.network.Network
+      metadata:
+        invariantUUID: e9f16c37-4632-4e1b-ba2f-10e2f9ade337
+        UUID: 2a34714c-84fa-4f74-b118-b87d25b6d0eb
+        customizationUUID: f7bb69e3-2b97-4fcd-b18d-5eba059a37b1
+        version: '1.0'
+        name: Network
+        description: Represents a simple , logical network service.
+        type: VL
+        category: Generic
+        subcategory: Infrastructure
+        resourceVendor: ATT (Tosca)
+        resourceVendorRelease: 1.0.0.wd03
+        resourceVendorModelNumber: ''
+      properties:
+        dhcp_enabled: true
+        ip_version: 4
+    Compute 0:
+      type: tosca.nodes.Compute
+      metadata:
+        invariantUUID: 2d9b896d-13ea-4a32-9d59-2966b4925aea
+        UUID: fb2c9fe0-bea9-4945-9e31-04709bcda292
+        customizationUUID: ffee7d61-f396-4630-ba3c-f5c6b514816f
+        version: '1.0'
+        name: Compute
+        description: Represents a real or virtual machine or server. Information specified on the Compute node will be used to find the machine that fits the given requirements in the cloud available machines. If no sizing information are specified the cloud provider default machine will be used. It is strongly recommended to specify the required CPUs and memory at least.
+        type: VFC
+        category: Generic
+        subcategory: Infrastructure
+        resourceVendor: ATT (Tosca)
+        resourceVendorRelease: 1.0.0.wd03
+        resourceVendorModelNumber: ''
+  substitution_mappings:
+    node_type: org.openecomp.resource.vf.Spgw
+    capabilities:
+      extcp0.feature:
+      - ExtCP 0
+      - feature
+      compute0.binding:
+      - Compute 0
+      - binding
+      extcp0.internal_connectionPoint:
+      - ExtCP 0
+      - internal_connectionPoint
+      blockstorage0.feature:
+      - BlockStorage 0
+      - feature
+      compute0.feature:
+      - Compute 0
+      - feature
+      compute0.host:
+      - Compute 0
+      - host
+      network0.feature:
+      - Network 0
+      - feature
+      compute0.scalable:
+      - Compute 0
+      - scalable
+      compute0.endpoint:
+      - Compute 0
+      - endpoint
+      blockstorage0.attachment:
+      - BlockStorage 0
+      - attachment
+      compute0.os:
+      - Compute 0
+      - os
+      network0.link:
+      - Network 0
+      - link
+      cpd0.feature:
+      - Cpd 0
+      - feature
+    requirements:
+      extcp0.virtualBinding:
+      - ExtCP 0
+      - virtualBinding
+      blockstorage0.dependency:
+      - BlockStorage 0
+      - dependency
+      cpd0.dependency:
+      - Cpd 0
+      - dependency
+      compute0.dependency:
+      - Compute 0
+      - dependency
+      extcp0.external_virtualLink:
+      - ExtCP 0
+      - external_virtualLink
+      extcp0.dependency:
+      - ExtCP 0
+      - dependency
+      network0.dependency:
+      - Network 0
+      - dependency
+      cpd0.virtual_link:
+      - Cpd 0
+      - virtual_link
+      extcp0.virtualLink:
+      - ExtCP 0
+      - virtualLink
+      compute0.local_storage:
+      - Compute 0
+      - local_storage
+      cpd0.virtual_binding:
+      - Cpd 0
+      - virtual_binding
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertCsar/in/TOSCA-Metadata/TOSCA.meta b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertCsar/in/TOSCA-Metadata/TOSCA.meta
new file mode 100644 (file)
index 0000000..6118d41
--- /dev/null
@@ -0,0 +1,7 @@
+TOSCA-Meta-File-Version: 1.0
+CSAR-Version: 1.1
+Created-By: Carlos Santana
+Entry-Definitions: MainServiceTemplate.yaml
+
+Name: csar.meta
+Content-Type: text/plain
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertCsar/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertCsar/out/MainServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..e54533e
--- /dev/null
@@ -0,0 +1,147 @@
+tosca_definitions_version: tosca_simple_yaml_1_1
+metadata:
+  template_name: Main
+  resourceVendor: zte
+  name: SPGW
+  resourceVendorModelNumber: ''
+  description: SPGW
+  invariantUUID: 3c677981-34bf-47a0-a21b-c0d81f93d438
+  UUID: 5e74136f-3ca0-48eb-b0e7-b3740e170030
+  type: VF
+  category: Application L4+
+  subcategory: Firewall
+  resourceVendorRelease: v1.0
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+topology_template:
+  inputs:
+    nf_naming:
+      type: org.openecomp.datatypes.Naming
+      default:
+        ecomp_generated_naming: true
+    nf_naming_code:
+      type: string
+      default: {
+        }
+    nf_function:
+      type: string
+      default: {
+        }
+    availability_zone_max_count:
+      type: integer
+      default: 1
+    nf_role:
+      type: string
+      default: {
+        }
+    max_instances:
+      type: integer
+      default: {
+        }
+    min_instances:
+      type: integer
+      default: {
+        }
+    nf_type:
+      type: string
+      default: {
+        }
+  node_templates:
+    Cpd 0:
+      type: tosca.nodes.nfv.VduCpd
+    BlockStorage 0:
+      type: tosca.nodes.BlockStorage
+    ExtCP 0:
+      type: org.openecomp.resource.cp.extCP
+      properties:
+        mac_requirements:
+          mac_count_required:
+            is_required: false
+        exCP_naming:
+          ecomp_generated_naming: true
+    Network 0:
+      type: tosca.nodes.network.Network
+      properties:
+        dhcp_enabled: true
+        ip_version: 4
+    Compute 0:
+      type: tosca.nodes.Compute
+  substitution_mappings:
+    node_type: org.openecomp.resource.vf.Spgw
+    capabilities:
+      extcp0.feature:
+      - ExtCP 0
+      - feature
+      compute0.binding:
+      - Compute 0
+      - binding
+      extcp0.internal_connectionPoint:
+      - ExtCP 0
+      - internal_connectionPoint
+      blockstorage0.feature:
+      - BlockStorage 0
+      - feature
+      compute0.feature:
+      - Compute 0
+      - feature
+      compute0.host:
+      - Compute 0
+      - host
+      network0.feature:
+      - Network 0
+      - feature
+      compute0.scalable:
+      - Compute 0
+      - scalable
+      compute0.endpoint:
+      - Compute 0
+      - endpoint
+      blockstorage0.attachment:
+      - BlockStorage 0
+      - attachment
+      compute0.os:
+      - Compute 0
+      - os
+      network0.link:
+      - Network 0
+      - link
+      cpd0.feature:
+      - Cpd 0
+      - feature
+    requirements:
+      extcp0.virtualBinding:
+      - ExtCP 0
+      - virtualBinding
+      blockstorage0.dependency:
+      - BlockStorage 0
+      - dependency
+      cpd0.dependency:
+      - Cpd 0
+      - dependency
+      compute0.dependency:
+      - Compute 0
+      - dependency
+      extcp0.external_virtualLink:
+      - ExtCP 0
+      - external_virtualLink
+      extcp0.dependency:
+      - ExtCP 0
+      - dependency
+      network0.dependency:
+      - Network 0
+      - dependency
+      cpd0.virtual_link:
+      - Cpd 0
+      - virtual_link
+      extcp0.virtualLink:
+      - ExtCP 0
+      - virtualLink
+      compute0.local_storage:
+      - Compute 0
+      - local_storage
+      cpd0.virtual_binding:
+      - Cpd 0
+      - virtual_binding
index 77bfcac..ff43b5a 100644 (file)
@@ -53,7 +53,7 @@ topology_template:
             requested_additional_capabilities: {
               }
             virtual_cpu:
-              num_virtual_cpu: 4.0
+              num_virtual_cpu: 4
     USPID3_VduCpd_Fabric:
       type: tosca.nodes.nfv.VduCpd
       properties:
@@ -121,7 +121,7 @@ topology_template:
             requested_additional_capabilities: {
               }
             virtual_cpu:
-              num_virtual_cpu: 4.0
+              num_virtual_cpu: 4
     UPIRU_VduCpd_Base:
       type: tosca.nodes.nfv.VduCpd
       properties:
@@ -182,7 +182,7 @@ topology_template:
             requested_additional_capabilities: {
               }
             virtual_cpu:
-              num_virtual_cpu: 4.0
+              num_virtual_cpu: 4
     PUPDU_VduCpd_Fabric:
       type: tosca.nodes.nfv.VduCpd
       properties:
@@ -415,7 +415,7 @@ topology_template:
             requested_additional_capabilities: {
               }
             virtual_cpu:
-              num_virtual_cpu: 4.0
+              num_virtual_cpu: 4
     USRSU_VduCpd_Base:
       type: tosca.nodes.nfv.VduCpd
       properties:
@@ -455,7 +455,7 @@ topology_template:
             requested_additional_capabilities: {
               }
             virtual_cpu:
-              num_virtual_cpu: 4.0
+              num_virtual_cpu: 4
     UPIRU_VduCpd_Fabric:
       type: tosca.nodes.nfv.VduCpd
       properties:
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertParameters/in/Definitions/resource-Vhssvepcv2NodesHeatRsu-template.yml b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertParameters/in/Definitions/resource-Vhssvepcv2NodesHeatRsu-template.yml
new file mode 100644 (file)
index 0000000..f29b50f
--- /dev/null
@@ -0,0 +1,538 @@
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: f1602dd8-5d45-45f7-b78d-2d94b785418a
+  UUID: 0f3fcf3e-d1cb-4ffb-99dc-a6e658566328
+  name: VhssVepcV2.nodes.heat.RSU
+  description: Not reusable inner VFC
+  type: VFC
+  category: Generic
+  subcategory: Abstract
+  resourceVendor: vEPC_LicenseModel_v2
+  resourceVendorRelease: '1.0'
+node_types:
+  org.openecomp.resource.vfc.VhssVepcV2.abstact.nodes.heat.RSU:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    description: Not reusable inner VFC
+    capabilities:
+      instance:type:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: Existence of instance <type> (OpenStack types)
+        occurrences:
+        - 1
+        - UNBOUNDED
+        properties:
+          initiator:
+            type: string
+            default: source
+          network_name:
+            type: string
+            default: PRIVATE
+            required: false
+          description:
+            type: string
+            description: Description of the metric
+            required: false
+          type:
+            type: string
+            default: Gauge
+            description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+            required: true
+          secure:
+            type: boolean
+            default: false
+          ports:
+            type: map
+            required: false
+            entry_schema:
+              type: PortSpec
+          port_name:
+            type: string
+            required: false
+          unit:
+            type: string
+            default: instance
+            description: Unit of the metric value
+            required: true
+          protocol:
+            type: string
+            default: tcp
+          port:
+            type: PortDef
+            required: false
+          name:
+            type: string
+            default: instance:type
+            description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+            required: true
+          category:
+            type: string
+            default: compute
+            description: Category of the metric, for an example, compute, disk, network, storage and etc.
+            required: false
+          url_path:
+            type: string
+            required: false
+      cpu.delta:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: CPU time used since previous datapoint
+        occurrences:
+        - 1
+        - UNBOUNDED
+        properties:
+          initiator:
+            type: string
+            default: source
+          network_name:
+            type: string
+            default: PRIVATE
+            required: false
+          description:
+            type: string
+            description: Description of the metric
+            required: false
+          type:
+            type: string
+            default: Delta
+            description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+            required: true
+          secure:
+            type: boolean
+            default: false
+          ports:
+            type: map
+            required: false
+            entry_schema:
+              type: PortSpec
+          port_name:
+            type: string
+            required: false
+          unit:
+            type: string
+            default: ns
+            description: Unit of the metric value
+            required: true
+          protocol:
+            type: string
+            default: tcp
+          port:
+            type: PortDef
+            required: false
+          name:
+            type: string
+            default: cpu.delta
+            description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+            required: true
+          category:
+            type: string
+            default: compute
+            description: Category of the metric, for an example, compute, disk, network, storage and etc.
+            required: false
+          url_path:
+            type: string
+            required: false
+      memory:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: Volume of RAM allocated to the instance
+        occurrences:
+        - 1
+        - UNBOUNDED
+        properties:
+          initiator:
+            type: string
+            default: source
+          network_name:
+            type: string
+            default: PRIVATE
+            required: false
+          description:
+            type: string
+            description: Description of the metric
+            required: false
+          type:
+            type: string
+            default: Gauge
+            description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+            required: true
+          secure:
+            type: boolean
+            default: false
+          ports:
+            type: map
+            required: false
+            entry_schema:
+              type: PortSpec
+          port_name:
+            type: string
+            required: false
+          unit:
+            type: string
+            default: MB
+            description: Unit of the metric value
+            required: true
+          protocol:
+            type: string
+            default: tcp
+          port:
+            type: PortDef
+            required: false
+          name:
+            type: string
+            default: memory
+            description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+            required: true
+          category:
+            type: string
+            default: compute
+            description: Category of the metric, for an example, compute, disk, network, storage and etc.
+            required: false
+          url_path:
+            type: string
+            required: false
+      instance:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: Existence of instance
+        occurrences:
+        - 1
+        - UNBOUNDED
+        properties:
+          initiator:
+            type: string
+            default: source
+          network_name:
+            type: string
+            default: PRIVATE
+            required: false
+          description:
+            type: string
+            description: Description of the metric
+            required: false
+          type:
+            type: string
+            default: Gauge
+            description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+            required: true
+          secure:
+            type: boolean
+            default: false
+          ports:
+            type: map
+            required: false
+            entry_schema:
+              type: PortSpec
+          port_name:
+            type: string
+            required: false
+          unit:
+            type: string
+            default: instance
+            description: Unit of the metric value
+            required: true
+          protocol:
+            type: string
+            default: tcp
+          port:
+            type: PortDef
+            required: false
+          name:
+            type: string
+            default: instance
+            description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+            required: true
+          category:
+            type: string
+            default: compute
+            description: Category of the metric, for an example, compute, disk, network, storage and etc.
+            required: false
+          url_path:
+            type: string
+            required: false
+      memory.usage:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: Volume of RAM used by the instance from the amount of its allocated memory
+        occurrences:
+        - 1
+        - UNBOUNDED
+        properties:
+          initiator:
+            type: string
+            default: source
+          network_name:
+            type: string
+            default: PRIVATE
+            required: false
+          description:
+            type: string
+            description: Description of the metric
+            required: false
+          type:
+            type: string
+            default: Gauge
+            description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+            required: true
+          secure:
+            type: boolean
+            default: false
+          ports:
+            type: map
+            required: false
+            entry_schema:
+              type: PortSpec
+          port_name:
+            type: string
+            required: false
+          unit:
+            type: string
+            default: MB
+            description: Unit of the metric value
+            required: true
+          protocol:
+            type: string
+            default: tcp
+          port:
+            type: PortDef
+            required: false
+          name:
+            type: string
+            default: memory.usage
+            description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+            required: true
+          category:
+            type: string
+            default: compute
+            description: Category of the metric, for an example, compute, disk, network, storage and etc.
+            required: false
+          url_path:
+            type: string
+            required: false
+      cpu:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: CPU time used
+        occurrences:
+        - 1
+        - UNBOUNDED
+        properties:
+          initiator:
+            type: string
+            default: source
+          network_name:
+            type: string
+            default: PRIVATE
+            required: false
+          description:
+            type: string
+            description: Description of the metric
+            required: false
+          type:
+            type: string
+            default: Cumulative
+            description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+            required: true
+          secure:
+            type: boolean
+            default: false
+          ports:
+            type: map
+            required: false
+            entry_schema:
+              type: PortSpec
+          port_name:
+            type: string
+            required: false
+          unit:
+            type: string
+            default: ns
+            description: Unit of the metric value
+            required: true
+          protocol:
+            type: string
+            default: tcp
+          port:
+            type: PortDef
+            required: false
+          name:
+            type: string
+            default: cpu
+            description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+            required: true
+          category:
+            type: string
+            default: compute
+            description: Category of the metric, for an example, compute, disk, network, storage and etc.
+            required: false
+          url_path:
+            type: string
+            required: false
+      memory.resident:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: Volume of RAM used by the instance on the physical machine
+        occurrences:
+        - 1
+        - UNBOUNDED
+        properties:
+          initiator:
+            type: string
+            default: source
+          network_name:
+            type: string
+            default: PRIVATE
+            required: false
+          description:
+            type: string
+            description: Description of the metric
+            required: false
+          type:
+            type: string
+            default: Gauge
+            description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+            required: true
+          secure:
+            type: boolean
+            default: false
+          ports:
+            type: map
+            required: false
+            entry_schema:
+              type: PortSpec
+          port_name:
+            type: string
+            required: false
+          unit:
+            type: string
+            default: MB
+            description: Unit of the metric value
+            required: true
+          protocol:
+            type: string
+            default: tcp
+          port:
+            type: PortDef
+            required: false
+          name:
+            type: string
+            default: memory.resident
+            description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+            required: true
+          category:
+            type: string
+            default: compute
+            description: Category of the metric, for an example, compute, disk, network, storage and etc.
+            required: false
+          url_path:
+            type: string
+            required: false
+      vcpus:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: Average disk latency
+        occurrences:
+        - 1
+        - UNBOUNDED
+        properties:
+          initiator:
+            type: string
+            default: source
+          network_name:
+            type: string
+            default: PRIVATE
+            required: false
+          description:
+            type: string
+            description: Description of the metric
+            required: false
+          type:
+            type: string
+            default: Gauge
+            description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+            required: true
+          secure:
+            type: boolean
+            default: false
+          ports:
+            type: map
+            required: false
+            entry_schema:
+              type: PortSpec
+          port_name:
+            type: string
+            required: false
+          unit:
+            type: string
+            default: ms
+            description: Unit of the metric value
+            required: true
+          protocol:
+            type: string
+            default: tcp
+          port:
+            type: PortDef
+            required: false
+          name:
+            type: string
+            default: vcpus
+            description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+            required: true
+          category:
+            type: string
+            default: compute
+            description: Category of the metric, for an example, compute, disk, network, storage and etc.
+            required: false
+          url_path:
+            type: string
+            required: false
+      cpu_util:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: Average CPU utilization
+        occurrences:
+        - 1
+        - UNBOUNDED
+        properties:
+          initiator:
+            type: string
+            default: source
+          network_name:
+            type: string
+            default: PRIVATE
+            required: false
+          description:
+            type: string
+            description: Description of the metric
+            required: false
+          type:
+            type: string
+            default: Gauge
+            description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+            required: true
+          secure:
+            type: boolean
+            default: false
+          ports:
+            type: map
+            required: false
+            entry_schema:
+              type: PortSpec
+          port_name:
+            type: string
+            required: false
+          unit:
+            type: string
+            default: '%'
+            description: Unit of the metric value
+            required: true
+          protocol:
+            type: string
+            default: tcp
+          port:
+            type: PortDef
+            required: false
+          name:
+            type: string
+            default: cpu_util
+            description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+            required: true
+          category:
+            type: string
+            default: compute
+            description: Category of the metric, for an example, compute, disk, network, storage and etc.
+            required: false
+          url_path:
+            type: string
+            required: false
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertParameters/in/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertParameters/in/MainServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..b9269d4
--- /dev/null
@@ -0,0 +1,3961 @@
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: 1aaefda9-109a-421f-ad7d-2a7b3100a424
+  UUID: 7a308278-ab71-4bc8-ae45-2779c5f625dc
+  name: vHSS_vEPC_v2
+  description: 'vHSS '
+  type: VF
+  category: Network L2-3
+  subcategory: Gateway
+  resourceVendor: vEPC_LicenseModel_v2
+  resourceVendorRelease: '1.0'
+imports:
+- NeutronPort:
+    file: resource-Neutronport-template.yml
+- VhssVepcV2.nodes.heat.RSU:
+    file: resource-Vhssvepcv2NodesHeatRsu-template.yml
+- VhssVepcV2.nodes.heat.PID:
+    file: resource-Vhssvepcv2NodesHeatPid-template.yml
+- VhssVepcV2.nodes.heat.FEU:
+    file: resource-Vhssvepcv2NodesHeatFeu-template.yml
+- NeutronNet:
+    file: resource-Neutronnet-template.yml
+- VhssVepcV2.nodes.heat.OMU:
+    file: resource-Vhssvepcv2NodesHeatOmu-template.yml
+topology_template:
+  inputs:
+    base_net_cidr:
+      type: string
+      default: 192.168.10.0/24
+      description: The CIDR of the base network
+    fabric_net_id:
+      type: string
+      default: test1_fabric_net
+      description: The ID of the fabric network
+    data_2_net_cidr:
+      type: string
+      default: 10.4.0.0/16
+      description: The CIDR of the PCRF external data 2 network
+    RSU_data_2_ip:
+      type: string
+      default: 10.4.0.1
+      description: RSU IP address that is assigned to the vHSS to communicate with the RSU
+    public_net_id:
+      type: string
+      default: 00000000-0000-0000-0000-000000000000
+      description: Public network that enables remote connection to VNF
+    om_net_id:
+      type: string
+      default: test1_om_net
+      description: The ID of the PCRF om network
+    signal_1_net_cidr:
+      type: string
+      default: 10.1.0.0/16
+      description: The CIDR of the PCRF external signal 1 network
+    OMU_om_ip:
+      type: string
+      default: 192.168.30.100
+      description: OM IP address that is assigned to the vHSS to communicate with the OMU
+    dcae_collector_ip:
+      type: string
+      default: 10.0.4.102
+      description: IP address of the DCAE collector
+    data_1_net_id:
+      type: string
+      default: test1_data_1
+      description: The ID of the PCRF external data 1 network
+    FEU_name_0:
+      type: string
+      default: huaweiPCRFl01FEU01
+      description: Name of the FEU
+    data_2_net_id:
+      type: string
+      default: test1_data_2
+      description: The ID of the PCRF external data 2 network
+    signal_1_net_id:
+      type: string
+      default: test1_signal_1
+      description: The ID of the PCRF external signal 1 network
+    PID_name_0:
+      type: string
+      default: huaweiPCRFl01PID01
+      description: Name of the PID
+    demo_artifacts_version:
+      type: string
+      default: 1.0.0-SNAPSHOT
+      description: Artifacts (jar, tar.gz) version used in demo vnfs
+    boss_net_cidr:
+      type: string
+      default: 10.6.0.0/16
+      description: The CIDR of the PCRF external boss network
+    vHSS_image_name:
+      type: string
+      default: Ubuntu 14.04 LTS (Trusty Tahr) (PVHVM)
+      description: Image to be used for compute instance
+    key_name:
+      type: string
+      default: vHSS_key
+      description: Public/Private key pair name
+    OMU_name_0:
+      type: string
+      default: huaweiPCRFl01omu01
+      description: Name of the OMU
+    boss_net_id:
+      type: string
+      default: test1_boss
+      description: The ID of the PCRF external boss network
+    OMU_fabric_ip:
+      type: string
+      default: 192.168.20.100
+      description: Private IP address that is assigned to the vHSS to communicate with the OMU
+    vf_module_id:
+      type: string
+      default: vHSS
+      description: The vHSS Module ID is provided by ECOMP
+    repo_url_blob:
+      type: string
+      default: https://nexus.openecomp.org/content/repositories/raw
+      description: URL of the repository that hosts the demo packages
+    FEU_base_ip:
+      type: string
+      default: 192.168.10.201
+      description: FEU IP address that is assigned to the vHSS to communicate with the FEU
+    RSU_base_ip:
+      type: string
+      default: 192.168.10.205
+      description: RSU IP address that is assigned to the vHSS to communicate with the RSU
+    RSU_fabric_ip:
+      type: string
+      default: 192.168.20.205
+      description: RSU IP address that is assigned to the vHSS to communicate with the RSU
+    RSU_name_0:
+      type: string
+      default: huaweiPCRFl01RSU01
+      description: Name of the RSU
+    FEU_signal_1_ip:
+      type: string
+      default: 10.1.0.1
+      description: FEU IP address that is assigned to the vHSS to communicate with the FEU
+    OMU_base_ip:
+      type: string
+      default: 192.168.10.100
+      description: Private IP address that is assigned to the vHSS to communicate with the vPacketGenerator
+    om_net_cidr:
+      type: string
+      default: 192.168.30.0/24
+      description: The CIDR of the PCRF om network
+    PID_base_ip:
+      type: string
+      default: 192.168.10.205
+      description: PID IP address that is assigned to the vHSS to communicate with the PID
+    vnf_id:
+      type: string
+      default: vHSS_demo_app
+      description: The VNF ID is provided by ECOMP
+    PID_boss_ip:
+      type: string
+      default: 10.3.0.1
+      description: PID IP address that is assigned to the vHSS to communicate with the PID
+    dcae_collector_port:
+      type: string
+      default: '8080'
+      description: Port of the DCAE collector
+    FEU_data_2_ip:
+      type: string
+      default: 10.4.0.1
+      description: FEU IP address that is assigned to the vHSS to communicate with the FEU
+    vHSS_flavor_name:
+      type: string
+      default: 4 GB General Purpose v1
+      description: Type of instance (flavor) to be used
+    signal_2_net_id:
+      type: string
+      default: test1_signal_2
+      description: The ID of the PCRF external signal 2 network
+    FEU_fabric_ip:
+      type: string
+      default: 192.168.20.201
+      description: FEU IP address that is assigned to the vHSS to communicate with the FEU
+    RSU_data_1_ip:
+      type: string
+      default: 10.3.0.1
+      description: RSU IP address that is assigned to the vHSS to communicate with the RSU
+    signal_2_net_cidr:
+      type: string
+      default: 10.2.0.0/16
+      description: The CIDR of the PCRF external signal 2 network
+    data_1_net_cidr:
+      type: string
+      default: 10.3.0.0/16
+      description: The CIDR of the PCRF external data 1 network
+    pub_key:
+      type: string
+      default: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDQXYJYYi3/OUZXUiCYWdtc7K0m5C0dJKVxPG0eI8EWZrEHYdfYe6WoTSDJCww+1qlBSpA5ac/Ba4Wn9vh+lR1vtUKkyIC/nrYb90ReUd385Glkgzrfh5HdR5y5S2cL/Frh86lAn9r6b3iWTJD8wBwXFyoe1S2nMTOIuG4RPNvfmyCTYVh8XTCCE8HPvh3xv2r4egawG1P4Q4UDwk+hDBXThY2KS8M5/8EMyxHV0ImpLbpYCTBA6KYDIRtqmgS6iKyy8v2D1aSY5mc9J0T5t9S2Gv+VZQNWQDDKNFnxqYaAo1uEoq/i1q63XC5AD3ckXb2VT6dp23BQMdDfbHyUWfJN
+      description: Public key to be installed on the compute instance
+    repo_url_artifacts:
+      type: string
+      default: https://nexus.openecomp.org/content/repositories/snapshots
+      description: URL of the repository that hosts the demo packages
+    base_net_id:
+      type: string
+      default: test1_base_net
+      description: The ID of the base network
+    fabric_net_cidr:
+      type: string
+      default: 192.168.20.0/24
+      description: The CIDR of the fabric network
+    FEU_signal_2_ip:
+      type: string
+      default: 10.2.0.1
+      description: FEU IP address that is assigned to the vHSS to communicate with the FEU
+    PID_fabric_ip:
+      type: string
+      default: 192.168.20.205
+      description: PID IP address that is assigned to the vHSS to communicate with the PID
+    PID_om_ip:
+      type: string
+      default: 10.4.0.1
+      description: PID IP address that is assigned to the vHSS to communicate with the PID
+    FEU_data_1_ip:
+      type: string
+      default: 10.3.0.1
+      description: FEU IP address that is assigned to the vHSS to communicate with the FEU
+  node_templates:
+    OMU_fabric_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      metadata:
+        invariantUUID: e93055b8-b133-45e7-8a7e-f7edb9de22be
+        UUID: 6ea3bf6f-c4f5-4c4b-9ffd-6841e39d527b
+        version: '1.0'
+        name: NeutronPort
+        description: Represents a logical entity that associates between Compute and Network normative types.
+        type: CP
+        category: Generic
+        subcategory: Network Elements
+      properties:
+        fixed_ips:
+        - subnet: fabric_network
+          ip_address:
+            get_input: OMU_fabric_ip
+        network: fabric_network
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: OMU_0
+          relationship: tosca.relationships.network.BindsTo
+      - link:
+          capability: tosca.capabilities.network.Linkable
+          node: fabric_network
+          relationship: tosca.relationships.network.LinksTo
+    PID_fabric_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      metadata:
+        invariantUUID: e93055b8-b133-45e7-8a7e-f7edb9de22be
+        UUID: 6ea3bf6f-c4f5-4c4b-9ffd-6841e39d527b
+        version: '1.0'
+        name: NeutronPort
+        description: Represents a logical entity that associates between Compute and Network normative types.
+        type: CP
+        category: Generic
+        subcategory: Network Elements
+      properties:
+        fixed_ips:
+        - subnet: fabric_network
+          ip_address:
+            get_input: PID_fabric_ip
+        network: fabric_network
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: PID_0
+          relationship: tosca.relationships.network.BindsTo
+      - link:
+          capability: tosca.capabilities.network.Linkable
+          node: fabric_network
+          relationship: tosca.relationships.network.LinksTo
+    RSU_fabric_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      metadata:
+        invariantUUID: e93055b8-b133-45e7-8a7e-f7edb9de22be
+        UUID: 6ea3bf6f-c4f5-4c4b-9ffd-6841e39d527b
+        version: '1.0'
+        name: NeutronPort
+        description: Represents a logical entity that associates between Compute and Network normative types.
+        type: CP
+        category: Generic
+        subcategory: Network Elements
+      properties:
+        fixed_ips:
+        - subnet: fabric_network
+          ip_address:
+            get_input: RSU_fabric_ip
+        network: fabric_network
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: RSU_0
+          relationship: tosca.relationships.network.BindsTo
+      - link:
+          capability: tosca.capabilities.network.Linkable
+          node: fabric_network
+          relationship: tosca.relationships.network.LinksTo
+    PID_om_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      metadata:
+        invariantUUID: e93055b8-b133-45e7-8a7e-f7edb9de22be
+        UUID: 6ea3bf6f-c4f5-4c4b-9ffd-6841e39d527b
+        version: '1.0'
+        name: NeutronPort
+        description: Represents a logical entity that associates between Compute and Network normative types.
+        type: CP
+        category: Generic
+        subcategory: Network Elements
+      properties:
+        fixed_ips:
+        - subnet: om_network
+          ip_address:
+            get_input: PID_om_ip
+        network: om_network
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: PID_0
+          relationship: tosca.relationships.network.BindsTo
+      - link:
+          capability: tosca.capabilities.network.Linkable
+          node: om_network
+          relationship: tosca.relationships.network.LinksTo
+    FEU_signal_2_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      metadata:
+        invariantUUID: e93055b8-b133-45e7-8a7e-f7edb9de22be
+        UUID: 6ea3bf6f-c4f5-4c4b-9ffd-6841e39d527b
+        version: '1.0'
+        name: NeutronPort
+        description: Represents a logical entity that associates between Compute and Network normative types.
+        type: CP
+        category: Generic
+        subcategory: Network Elements
+      properties:
+        fixed_ips:
+        - subnet: signal_2_network
+          ip_address:
+            get_input: FEU_signal_2_ip
+        network: signal_2_network
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: FEU_0
+          relationship: tosca.relationships.network.BindsTo
+      - link:
+          capability: tosca.capabilities.network.Linkable
+          node: signal_2_network
+          relationship: tosca.relationships.network.LinksTo
+    boss_network:
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+      metadata:
+        invariantUUID: c229a4d1-7116-4c63-a64d-6d57e062903e
+        UUID: cb8f2c64-468b-45b7-ab0f-49373f939126
+        version: '1.0'
+        name: NeutronNet
+        description: Represents a network service with optional subnets and advanced configurations.
+        type: VL
+        category: Generic
+        subcategory: Network Elements
+      properties:
+        network_name:
+          get_input: boss_net_id
+    RSU_0:
+      type: org.openecomp.resource.vfc.VhssVepcV2.abstact.nodes.heat.RSU
+      metadata:
+        invariantUUID: f1602dd8-5d45-45f7-b78d-2d94b785418a
+        UUID: 0f3fcf3e-d1cb-4ffb-99dc-a6e658566328
+        version: '1.0'
+        name: VhssVepcV2.nodes.heat.RSU
+        description: Not reusable inner VFC
+        type: VFC
+        category: Generic
+        subcategory: Abstract
+      properties:
+        flavor:
+          get_input: vHSS_flavor_name
+        key_name: UNSUPPORTED_RESOURCE_my_keypair
+        image:
+          get_input: vHSS_image_name
+        metadata:
+          vf_module_id:
+            get_input: vf_module_id
+          vnf_id:
+            get_input: vnf_id
+        user_data_format: RAW
+        name:
+          get_input: RSU_name_0
+    PID_base_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      metadata:
+        invariantUUID: e93055b8-b133-45e7-8a7e-f7edb9de22be
+        UUID: 6ea3bf6f-c4f5-4c4b-9ffd-6841e39d527b
+        version: '1.0'
+        name: NeutronPort
+        description: Represents a logical entity that associates between Compute and Network normative types.
+        type: CP
+        category: Generic
+        subcategory: Network Elements
+      properties:
+        fixed_ips:
+        - subnet: base_network
+          ip_address:
+            get_input: PID_base_ip
+        network: base_network
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: PID_0
+          relationship: tosca.relationships.network.BindsTo
+      - link:
+          capability: tosca.capabilities.network.Linkable
+          node: base_network
+          relationship: tosca.relationships.network.LinksTo
+    OMU_om_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      metadata:
+        invariantUUID: e93055b8-b133-45e7-8a7e-f7edb9de22be
+        UUID: 6ea3bf6f-c4f5-4c4b-9ffd-6841e39d527b
+        version: '1.0'
+        name: NeutronPort
+        description: Represents a logical entity that associates between Compute and Network normative types.
+        type: CP
+        category: Generic
+        subcategory: Network Elements
+      properties:
+        fixed_ips:
+        - subnet: om_network
+          ip_address:
+            get_input: OMU_om_ip
+        network: om_network
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: OMU_0
+          relationship: tosca.relationships.network.BindsTo
+      - link:
+          capability: tosca.capabilities.network.Linkable
+          node: om_network
+          relationship: tosca.relationships.network.LinksTo
+    PID_0:
+      type: org.openecomp.resource.vfc.VhssVepcV2.abstact.nodes.heat.PID
+      metadata:
+        invariantUUID: a985617e-bffa-43cd-a0fc-22c3a79cd0ba
+        UUID: f2e484df-e149-4cc0-8b5e-023fa889177a
+        version: '1.0'
+        name: VhssVepcV2.nodes.heat.PID
+        description: Not reusable inner VFC
+        type: VFC
+        category: Generic
+        subcategory: Abstract
+      properties:
+        flavor:
+          get_input: vHSS_flavor_name
+        key_name: UNSUPPORTED_RESOURCE_my_keypair
+        image:
+          get_input: vHSS_image_name
+        metadata:
+          vf_module_id:
+            get_input: vf_module_id
+          vnf_id:
+            get_input: vnf_id
+        user_data_format: RAW
+        name:
+          get_input: PID_name_0
+    OMU_0:
+      type: org.openecomp.resource.vfc.VhssVepcV2.abstact.nodes.heat.OMU
+      metadata:
+        invariantUUID: 167c9263-7180-4188-987a-e87264bdfb50
+        UUID: 53b9728c-9887-4ac9-b8ef-d421368fcdf0
+        version: '1.0'
+        name: VhssVepcV2.nodes.heat.OMU
+        description: Not reusable inner VFC
+        type: VFC
+        category: Generic
+        subcategory: Abstract
+      properties:
+        flavor:
+          get_input: vHSS_flavor_name
+        key_name: UNSUPPORTED_RESOURCE_my_keypair
+        image:
+          get_input: vHSS_image_name
+        metadata:
+          vf_module_id:
+            get_input: vf_module_id
+          vnf_id:
+            get_input: vnf_id
+        user_data_format: RAW
+        name:
+          get_input: OMU_name_0
+    RSU_data_2_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      metadata:
+        invariantUUID: e93055b8-b133-45e7-8a7e-f7edb9de22be
+        UUID: 6ea3bf6f-c4f5-4c4b-9ffd-6841e39d527b
+        version: '1.0'
+        name: NeutronPort
+        description: Represents a logical entity that associates between Compute and Network normative types.
+        type: CP
+        category: Generic
+        subcategory: Network Elements
+      properties:
+        fixed_ips:
+        - subnet: data_2_network
+          ip_address:
+            get_input: RSU_data_2_ip
+        network: data_2_network
+      requirements:
+      - link:
+          capability: tosca.capabilities.network.Linkable
+          node: data_2_network
+          relationship: tosca.relationships.network.LinksTo
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: RSU_0
+          relationship: tosca.relationships.network.BindsTo
+    FEU_data_1_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      metadata:
+        invariantUUID: e93055b8-b133-45e7-8a7e-f7edb9de22be
+        UUID: 6ea3bf6f-c4f5-4c4b-9ffd-6841e39d527b
+        version: '1.0'
+        name: NeutronPort
+        description: Represents a logical entity that associates between Compute and Network normative types.
+        type: CP
+        category: Generic
+        subcategory: Network Elements
+      properties:
+        fixed_ips:
+        - subnet: data_1_network
+          ip_address:
+            get_input: FEU_data_1_ip
+        network: data_1_network
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: FEU_0
+          relationship: tosca.relationships.network.BindsTo
+      - link:
+          capability: tosca.capabilities.network.Linkable
+          node: data_1_network
+          relationship: tosca.relationships.network.LinksTo
+    base_network:
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+      metadata:
+        invariantUUID: c229a4d1-7116-4c63-a64d-6d57e062903e
+        UUID: cb8f2c64-468b-45b7-ab0f-49373f939126
+        version: '1.0'
+        name: NeutronNet
+        description: Represents a network service with optional subnets and advanced configurations.
+        type: VL
+        category: Generic
+        subcategory: Network Elements
+      properties:
+        network_name:
+          get_input: base_net_id
+        subnets:
+          base_subnet:
+            cidr:
+              get_input: base_net_cidr
+    FEU_0:
+      type: org.openecomp.resource.vfc.VhssVepcV2.abstact.nodes.heat.FEU
+      metadata:
+        invariantUUID: 20b32de7-8f55-46c7-b1df-3b413b812d06
+        UUID: dc501fa4-a59c-4304-bea7-5f6bf2a8b25c
+        version: '1.0'
+        name: VhssVepcV2.nodes.heat.FEU
+        description: Not reusable inner VFC
+        type: VFC
+        category: Generic
+        subcategory: Abstract
+      properties:
+        flavor:
+          get_input: vHSS_flavor_name
+        key_name: UNSUPPORTED_RESOURCE_my_keypair
+        image:
+          get_input: vHSS_image_name
+        metadata:
+          vf_module_id:
+            get_input: vf_module_id
+          vnf_id:
+            get_input: vnf_id
+        user_data_format: RAW
+        name:
+          get_input: FEU_name_0
+    FEU_signal_1_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      metadata:
+        invariantUUID: e93055b8-b133-45e7-8a7e-f7edb9de22be
+        UUID: 6ea3bf6f-c4f5-4c4b-9ffd-6841e39d527b
+        version: '1.0'
+        name: NeutronPort
+        description: Represents a logical entity that associates between Compute and Network normative types.
+        type: CP
+        category: Generic
+        subcategory: Network Elements
+      properties:
+        fixed_ips:
+        - subnet: signal_1_network
+          ip_address:
+            get_input: FEU_signal_1_ip
+        network: signal_1_network
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: FEU_0
+          relationship: tosca.relationships.network.BindsTo
+      - link:
+          capability: tosca.capabilities.network.Linkable
+          node: signal_1_network
+          relationship: tosca.relationships.network.LinksTo
+    RSU_base_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      metadata:
+        invariantUUID: e93055b8-b133-45e7-8a7e-f7edb9de22be
+        UUID: 6ea3bf6f-c4f5-4c4b-9ffd-6841e39d527b
+        version: '1.0'
+        name: NeutronPort
+        description: Represents a logical entity that associates between Compute and Network normative types.
+        type: CP
+        category: Generic
+        subcategory: Network Elements
+      properties:
+        fixed_ips:
+        - subnet: base_network
+          ip_address:
+            get_input: RSU_base_ip
+        network: base_network
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: RSU_0
+          relationship: tosca.relationships.network.BindsTo
+      - link:
+          capability: tosca.capabilities.network.Linkable
+          node: base_network
+          relationship: tosca.relationships.network.LinksTo
+    OMU_base_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      metadata:
+        invariantUUID: e93055b8-b133-45e7-8a7e-f7edb9de22be
+        UUID: 6ea3bf6f-c4f5-4c4b-9ffd-6841e39d527b
+        version: '1.0'
+        name: NeutronPort
+        description: Represents a logical entity that associates between Compute and Network normative types.
+        type: CP
+        category: Generic
+        subcategory: Network Elements
+      properties:
+        fixed_ips:
+        - subnet: base_network
+          ip_address:
+            get_input: OMU_base_ip
+        network: base_network
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: OMU_0
+          relationship: tosca.relationships.network.BindsTo
+      - link:
+          capability: tosca.capabilities.network.Linkable
+          node: base_network
+          relationship: tosca.relationships.network.LinksTo
+    om_network:
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+      metadata:
+        invariantUUID: c229a4d1-7116-4c63-a64d-6d57e062903e
+        UUID: cb8f2c64-468b-45b7-ab0f-49373f939126
+        version: '1.0'
+        name: NeutronNet
+        description: Represents a network service with optional subnets and advanced configurations.
+        type: VL
+        category: Generic
+        subcategory: Network Elements
+      properties:
+        network_name:
+          get_input: om_net_id
+        subnets:
+          om_subnet:
+            cidr:
+              get_input: om_net_cidr
+    RSU_data_1_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      metadata:
+        invariantUUID: e93055b8-b133-45e7-8a7e-f7edb9de22be
+        UUID: 6ea3bf6f-c4f5-4c4b-9ffd-6841e39d527b
+        version: '1.0'
+        name: NeutronPort
+        description: Represents a logical entity that associates between Compute and Network normative types.
+        type: CP
+        category: Generic
+        subcategory: Network Elements
+      properties:
+        fixed_ips:
+        - subnet: data_1_network
+          ip_address:
+            get_input: RSU_data_1_ip
+        network: data_1_network
+      requirements:
+      - link:
+          capability: tosca.capabilities.network.Linkable
+          node: data_1_network
+          relationship: tosca.relationships.network.LinksTo
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: RSU_0
+          relationship: tosca.relationships.network.BindsTo
+    signal_2_network:
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+      metadata:
+        invariantUUID: c229a4d1-7116-4c63-a64d-6d57e062903e
+        UUID: cb8f2c64-468b-45b7-ab0f-49373f939126
+        version: '1.0'
+        name: NeutronNet
+        description: Represents a network service with optional subnets and advanced configurations.
+        type: VL
+        category: Generic
+        subcategory: Network Elements
+      properties:
+        network_name:
+          get_input: signal_2_net_id
+    signal_1_network:
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+      metadata:
+        invariantUUID: c229a4d1-7116-4c63-a64d-6d57e062903e
+        UUID: cb8f2c64-468b-45b7-ab0f-49373f939126
+        version: '1.0'
+        name: NeutronNet
+        description: Represents a network service with optional subnets and advanced configurations.
+        type: VL
+        category: Generic
+        subcategory: Network Elements
+      properties:
+        network_name:
+          get_input: signal_1_net_id
+    fabric_network:
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+      metadata:
+        invariantUUID: c229a4d1-7116-4c63-a64d-6d57e062903e
+        UUID: cb8f2c64-468b-45b7-ab0f-49373f939126
+        version: '1.0'
+        name: NeutronNet
+        description: Represents a network service with optional subnets and advanced configurations.
+        type: VL
+        category: Generic
+        subcategory: Network Elements
+      properties:
+        network_name:
+          get_input: fabric_net_id
+        subnets:
+          fabric_subnet:
+            cidr:
+              get_input: fabric_net_cidr
+    data_1_network:
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+      metadata:
+        invariantUUID: c229a4d1-7116-4c63-a64d-6d57e062903e
+        UUID: cb8f2c64-468b-45b7-ab0f-49373f939126
+        version: '1.0'
+        name: NeutronNet
+        description: Represents a network service with optional subnets and advanced configurations.
+        type: VL
+        category: Generic
+        subcategory: Network Elements
+      properties:
+        network_name:
+          get_input: data_1_net_id
+    data_2_network:
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+      metadata:
+        invariantUUID: c229a4d1-7116-4c63-a64d-6d57e062903e
+        UUID: cb8f2c64-468b-45b7-ab0f-49373f939126
+        version: '1.0'
+        name: NeutronNet
+        description: Represents a network service with optional subnets and advanced configurations.
+        type: VL
+        category: Generic
+        subcategory: Network Elements
+      properties:
+        network_name:
+          get_input: data_2_net_id
+    PID_boss_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      metadata:
+        invariantUUID: e93055b8-b133-45e7-8a7e-f7edb9de22be
+        UUID: 6ea3bf6f-c4f5-4c4b-9ffd-6841e39d527b
+        version: '1.0'
+        name: NeutronPort
+        description: Represents a logical entity that associates between Compute and Network normative types.
+        type: CP
+        category: Generic
+        subcategory: Network Elements
+      properties:
+        fixed_ips:
+        - subnet: boss_network
+          ip_address:
+            get_input: PID_boss_ip
+        network: boss_network
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: PID_0
+          relationship: tosca.relationships.network.BindsTo
+      - link:
+          capability: tosca.capabilities.network.Linkable
+          node: boss_network
+          relationship: tosca.relationships.network.LinksTo
+    FEU_base_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      metadata:
+        invariantUUID: e93055b8-b133-45e7-8a7e-f7edb9de22be
+        UUID: 6ea3bf6f-c4f5-4c4b-9ffd-6841e39d527b
+        version: '1.0'
+        name: NeutronPort
+        description: Represents a logical entity that associates between Compute and Network normative types.
+        type: CP
+        category: Generic
+        subcategory: Network Elements
+      properties:
+        fixed_ips:
+        - subnet: base_network
+          ip_address:
+            get_input: FEU_base_ip
+        network: base_network
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: FEU_0
+          relationship: tosca.relationships.network.BindsTo
+      - link:
+          capability: tosca.capabilities.network.Linkable
+          node: base_network
+          relationship: tosca.relationships.network.LinksTo
+    FEU_data_2_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      metadata:
+        invariantUUID: e93055b8-b133-45e7-8a7e-f7edb9de22be
+        UUID: 6ea3bf6f-c4f5-4c4b-9ffd-6841e39d527b
+        version: '1.0'
+        name: NeutronPort
+        description: Represents a logical entity that associates between Compute and Network normative types.
+        type: CP
+        category: Generic
+        subcategory: Network Elements
+      properties:
+        fixed_ips:
+        - subnet: data_2_network
+          ip_address:
+            get_input: FEU_data_2_ip
+        network: data_2_network
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: FEU_0
+          relationship: tosca.relationships.network.BindsTo
+      - link:
+          capability: tosca.capabilities.network.Linkable
+          node: data_2_network
+          relationship: tosca.relationships.network.LinksTo
+    FEU_fabric_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      metadata:
+        invariantUUID: e93055b8-b133-45e7-8a7e-f7edb9de22be
+        UUID: 6ea3bf6f-c4f5-4c4b-9ffd-6841e39d527b
+        version: '1.0'
+        name: NeutronPort
+        description: Represents a logical entity that associates between Compute and Network normative types.
+        type: CP
+        category: Generic
+        subcategory: Network Elements
+      properties:
+        fixed_ips:
+        - subnet: fabric_network
+          ip_address:
+            get_input: FEU_fabric_ip
+        network: fabric_network
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: FEU_0
+          relationship: tosca.relationships.network.BindsTo
+      - link:
+          capability: tosca.capabilities.network.Linkable
+          node: fabric_network
+          relationship: tosca.relationships.network.LinksTo
+  groups:
+    VhssVepcV2..base_vHSS..module-0:
+      type: org.openecomp.groups.VfModule
+      members:
+      - OMU_fabric_port
+      - PID_fabric_port
+      - RSU_fabric_port
+      - PID_om_port
+      - FEU_signal_2_port
+      - boss_network
+      - RSU_0
+      - PID_base_port
+      - OMU_om_port
+      - PID_0
+      - OMU_0
+      - RSU_data_2_port
+      - FEU_data_1_port
+      - base_network
+      - FEU_0
+      - FEU_signal_1_port
+      - RSU_base_port
+      - OMU_base_port
+      - om_network
+      - RSU_data_1_port
+      - signal_2_network
+      - signal_1_network
+      - fabric_network
+      - data_1_network
+      - data_2_network
+      - PID_boss_port
+      - FEU_base_port
+      - FEU_data_2_port
+      - FEU_fabric_port
+      metadata:
+        vfModuleModelName: VhssVepcV2..base_vHSS..module-0
+        vfModuleModelInvariantUUID: 964dc8ad-df00-4f28-b2af-a690e9cd0614
+        vfModuleModelUUID: 8a85edc2-ded9-4a3e-ac31-2c3c9faa9e57
+        vfModuleModelVersion: '1'
+      properties:
+        vf_module_type: Base
+        vf_module_description:
+        volume_group: false
+    base_vHSS:
+      type: org.openecomp.groups.heat.HeatStack
+      members:
+      - OMU_fabric_port
+      - PID_fabric_port
+      - RSU_fabric_port
+      - PID_om_port
+      - FEU_signal_2_port
+      - boss_network
+      - RSU_0
+      - PID_base_port
+      - OMU_om_port
+      - PID_0
+      - OMU_0
+      - RSU_data_2_port
+      - FEU_data_1_port
+      - base_network
+      - FEU_0
+      - FEU_signal_1_port
+      - RSU_base_port
+      - OMU_base_port
+      - om_network
+      - RSU_data_1_port
+      - signal_2_network
+      - signal_1_network
+      - fabric_network
+      - data_1_network
+      - data_2_network
+      - PID_boss_port
+      - FEU_base_port
+      - FEU_data_2_port
+      - FEU_fabric_port
+      metadata:
+        invariantUUID: 2552188e-d021-47c5-8b48-79f041f2ea08
+        UUID: a3685268-eb53-477e-92d8-a1fe03e99eb1
+        version: '1'
+        name: base_vHSS
+  substitution_mappings:
+    node_type: org.openecomp.resource.vf.VhssVepcV2
+    capabilities:
+      base_network.attachment:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      RSU_0.memory:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: Volume of RAM allocated to the instance
+        occurrences:
+        - 1
+        - UNBOUNDED
+        properties:
+          initiator:
+            type: string
+            default: source
+          network_name:
+            type: string
+            default: PRIVATE
+            required: false
+          description:
+            type: string
+            description: Description of the metric
+            required: false
+          type:
+            type: string
+            default: Gauge
+            description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+            required: true
+          secure:
+            type: boolean
+            default: false
+          ports:
+            type: map
+            required: false
+            entry_schema:
+              type: PortSpec
+          port_name:
+            type: string
+            required: false
+          unit:
+            type: string
+            default: MB
+            description: Unit of the metric value
+            required: true
+          protocol:
+            type: string
+            default: tcp
+          port:
+            type: PortDef
+            required: false
+          name:
+            type: string
+            default: memory
+            description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+            required: true
+          category:
+            type: string
+            default: compute
+            description: Category of the metric, for an example, compute, disk, network, storage and etc.
+            required: false
+          url_path:
+            type: string
+            required: false
+      PID_0.instance:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: Existence of instance
+        occurrences:
+        - 1
+        - UNBOUNDED
+        properties:
+          initiator:
+            type: string
+            default: source
+          network_name:
+            type: string
+            default: PRIVATE
+            required: false
+          description:
+            type: string
+            description: Description of the metric
+            required: false
+          type:
+            type: string
+            default: Gauge
+            description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+            required: true
+          secure:
+            type: boolean
+            default: false
+          ports:
+            type: map
+            required: false
+            entry_schema:
+              type: PortSpec
+          port_name:
+            type: string
+            required: false
+          unit:
+            type: string
+            default: instance
+            description: Unit of the metric value
+            required: true
+          protocol:
+            type: string
+            default: tcp
+          port:
+            type: PortDef
+            required: false
+          name:
+            type: string
+            default: instance
+            description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+            required: true
+          category:
+            type: string
+            default: compute
+            description: Category of the metric, for an example, compute, disk, network, storage and etc.
+            required: false
+          url_path:
+            type: string
+            required: false
+      FEU_0.instance:type:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: Existence of instance <type> (OpenStack types)
+        occurrences:
+        - 1
+        - UNBOUNDED
+        properties:
+          initiator:
+            type: string
+            default: source
+          network_name:
+            type: string
+            default: PRIVATE
+            required: false
+          description:
+            type: string
+            description: Description of the metric
+            required: false
+          type:
+            type: string
+            default: Gauge
+            description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+            required: true
+          secure:
+            type: boolean
+            default: false
+          ports:
+            type: map
+            required: false
+            entry_schema:
+              type: PortSpec
+          port_name:
+            type: string
+            required: false
+          unit:
+            type: string
+            default: instance
+            description: Unit of the metric value
+            required: true
+          protocol:
+            type: string
+            default: tcp
+          port:
+            type: PortDef
+            required: false
+          name:
+            type: string
+            default: instance:type
+            description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+            required: true
+          category:
+            type: string
+            default: compute
+            description: Category of the metric, for an example, compute, disk, network, storage and etc.
+            required: false
+          url_path:
+            type: string
+            required: false
+      data_2_network.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      PID_0.scalable:
+        type: tosca.capabilities.Scalable
+        occurrences:
+        - 1
+        - UNBOUNDED
+        properties:
+          min_instances:
+            type: integer
+            default: 1
+          max_instances:
+            type: integer
+            default: 1
+          default_instances:
+            type: integer
+      RSU_fabric_port.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      data_1_network.attachment:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      FEU_0.scalable:
+        type: tosca.capabilities.Scalable
+        occurrences:
+        - 1
+        - UNBOUNDED
+        properties:
+          min_instances:
+            type: integer
+            default: 1
+          max_instances:
+            type: integer
+            default: 1
+          default_instances:
+            type: integer
+      RSU_0.memory.usage:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: Volume of RAM used by the instance from the amount of its allocated memory
+        occurrences:
+        - 1
+        - UNBOUNDED
+        properties:
+          initiator:
+            type: string
+            default: source
+          network_name:
+            type: string
+            default: PRIVATE
+            required: false
+          description:
+            type: string
+            description: Description of the metric
+            required: false
+          type:
+            type: string
+            default: Gauge
+            description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+            required: true
+          secure:
+            type: boolean
+            default: false
+          ports:
+            type: map
+            required: false
+            entry_schema:
+              type: PortSpec
+          port_name:
+            type: string
+            required: false
+          unit:
+            type: string
+            default: MB
+            description: Unit of the metric value
+            required: true
+          protocol:
+            type: string
+            default: tcp
+          port:
+            type: PortDef
+            required: false
+          name:
+            type: string
+            default: memory.usage
+            description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+            required: true
+          category:
+            type: string
+            default: compute
+            description: Category of the metric, for an example, compute, disk, network, storage and etc.
+            required: false
+          url_path:
+            type: string
+            required: false
+      FEU_0.instance:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: Existence of instance
+        occurrences:
+        - 1
+        - UNBOUNDED
+        properties:
+          initiator:
+            type: string
+            default: source
+          network_name:
+            type: string
+            default: PRIVATE
+            required: false
+          description:
+            type: string
+            description: Description of the metric
+            required: false
+          type:
+            type: string
+            default: Gauge
+            description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+            required: true
+          secure:
+            type: boolean
+            default: false
+          ports:
+            type: map
+            required: false
+            entry_schema:
+              type: PortSpec
+          port_name:
+            type: string
+            required: false
+          unit:
+            type: string
+            default: instance
+            description: Unit of the metric value
+            required: true
+          protocol:
+            type: string
+            default: tcp
+          port:
+            type: PortDef
+            required: false
+          name:
+            type: string
+            default: instance
+            description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+            required: true
+          category:
+            type: string
+            default: compute
+            description: Category of the metric, for an example, compute, disk, network, storage and etc.
+            required: false
+          url_path:
+            type: string
+            required: false
+      RSU_data_2_port.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      OMU_0.endpoint:
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences:
+        - 1
+        - UNBOUNDED
+        properties:
+          port_name:
+            type: string
+            required: false
+          protocol:
+            type: string
+            default: tcp
+          port:
+            type: PortDef
+            required: false
+          initiator:
+            type: string
+            default: source
+          network_name:
+            type: string
+            default: PRIVATE
+            required: false
+          secure:
+            type: boolean
+            default: true
+          ports:
+            type: map
+            required: false
+            entry_schema:
+              type: PortSpec
+          url_path:
+            type: string
+            required: false
+      PID_fabric_port.attachment:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      PID_0.memory:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: Volume of RAM allocated to the instance
+        occurrences:
+        - 1
+        - UNBOUNDED
+        properties:
+          initiator:
+            type: string
+            default: source
+          network_name:
+            type: string
+            default: PRIVATE
+            required: false
+          description:
+            type: string
+            description: Description of the metric
+            required: false
+          type:
+            type: string
+            default: Gauge
+            description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+            required: true
+          secure:
+            type: boolean
+            default: false
+          ports:
+            type: map
+            required: false
+            entry_schema:
+              type: PortSpec
+          port_name:
+            type: string
+            required: false
+          unit:
+            type: string
+            default: MB
+            description: Unit of the metric value
+            required: true
+          protocol:
+            type: string
+            default: tcp
+          port:
+            type: PortDef
+            required: false
+          name:
+            type: string
+            default: memory
+            description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+            required: true
+          category:
+            type: string
+            default: compute
+            description: Category of the metric, for an example, compute, disk, network, storage and etc.
+            required: false
+          url_path:
+            type: string
+            required: false
+      om_network.link:
+        type: tosca.capabilities.network.Linkable
+        occurrences:
+        - 0
+        - UNBOUNDED
+      RSU_0.cpu:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: CPU time used
+        occurrences:
+        - 1
+        - UNBOUNDED
+        properties:
+          initiator:
+            type: string
+            default: source
+          network_name:
+            type: string
+            default: PRIVATE
+            required: false
+          description:
+            type: string
+            description: Description of the metric
+            required: false
+          type:
+            type: string
+            default: Cumulative
+            description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+            required: true
+          secure:
+            type: boolean
+            default: false
+          ports:
+            type: map
+            required: false
+            entry_schema:
+              type: PortSpec
+          port_name:
+            type: string
+            required: false
+          unit:
+            type: string
+            default: ns
+            description: Unit of the metric value
+            required: true
+          protocol:
+            type: string
+            default: tcp
+          port:
+            type: PortDef
+            required: false
+          name:
+            type: string
+            default: cpu
+            description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+            required: true
+          category:
+            type: string
+            default: compute
+            description: Category of the metric, for an example, compute, disk, network, storage and etc.
+            required: false
+          url_path:
+            type: string
+            required: false
+      FEU_signal_2_port.attachment:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      OMU_0.instance:type:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: Existence of instance <type> (OpenStack types)
+        occurrences:
+        - 1
+        - UNBOUNDED
+        properties:
+          initiator:
+            type: string
+            default: source
+          network_name:
+            type: string
+            default: PRIVATE
+            required: false
+          description:
+            type: string
+            description: Description of the metric
+            required: false
+          type:
+            type: string
+            default: Gauge
+            description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+            required: true
+          secure:
+            type: boolean
+            default: false
+          ports:
+            type: map
+            required: false
+            entry_schema:
+              type: PortSpec
+          port_name:
+            type: string
+            required: false
+          unit:
+            type: string
+            default: instance
+            description: Unit of the metric value
+            required: true
+          protocol:
+            type: string
+            default: tcp
+          port:
+            type: PortDef
+            required: false
+          name:
+            type: string
+            default: instance:type
+            description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+            required: true
+          category:
+            type: string
+            default: compute
+            description: Category of the metric, for an example, compute, disk, network, storage and etc.
+            required: false
+          url_path:
+            type: string
+            required: false
+      RSU_base_port.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      FEU_fabric_port.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      fabric_network.attachment:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      PID_0.cpu_util:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: Average CPU utilization
+        occurrences:
+        - 1
+        - UNBOUNDED
+        properties:
+          initiator:
+            type: string
+            default: source
+          network_name:
+            type: string
+            default: PRIVATE
+            required: false
+          description:
+            type: string
+            description: Description of the metric
+            required: false
+          type:
+            type: string
+            default: Gauge
+            description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+            required: true
+          secure:
+            type: boolean
+            default: false
+          ports:
+            type: map
+            required: false
+            entry_schema:
+              type: PortSpec
+          port_name:
+            type: string
+            required: false
+          unit:
+            type: string
+            default: '%'
+            description: Unit of the metric value
+            required: true
+          protocol:
+            type: string
+            default: tcp
+          port:
+            type: PortDef
+            required: false
+          name:
+            type: string
+            default: cpu_util
+            description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+            required: true
+          category:
+            type: string
+            default: compute
+            description: Category of the metric, for an example, compute, disk, network, storage and etc.
+            required: false
+          url_path:
+            type: string
+            required: false
+      OMU_0.memory:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: Volume of RAM allocated to the instance
+        occurrences:
+        - 1
+        - UNBOUNDED
+        properties:
+          initiator:
+            type: string
+            default: source
+          network_name:
+            type: string
+            default: PRIVATE
+            required: false
+          description:
+            type: string
+            description: Description of the metric
+            required: false
+          type:
+            type: string
+            default: Gauge
+            description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+            required: true
+          secure:
+            type: boolean
+            default: false
+          ports:
+            type: map
+            required: false
+            entry_schema:
+              type: PortSpec
+          port_name:
+            type: string
+            required: false
+          unit:
+            type: string
+            default: MB
+            description: Unit of the metric value
+            required: true
+          protocol:
+            type: string
+            default: tcp
+          port:
+            type: PortDef
+            required: false
+          name:
+            type: string
+            default: memory
+            description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+            required: true
+          category:
+            type: string
+            default: compute
+            description: Category of the metric, for an example, compute, disk, network, storage and etc.
+            required: false
+          url_path:
+            type: string
+            required: false
+      RSU_0.cpu.delta:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: CPU time used since previous datapoint
+        occurrences:
+        - 1
+        - UNBOUNDED
+        properties:
+          initiator:
+            type: string
+            default: source
+          network_name:
+            type: string
+            default: PRIVATE
+            required: false
+          description:
+            type: string
+            description: Description of the metric
+            required: false
+          type:
+            type: string
+            default: Delta
+            description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+            required: true
+          secure:
+            type: boolean
+            default: false
+          ports:
+            type: map
+            required: false
+            entry_schema:
+              type: PortSpec
+          port_name:
+            type: string
+            required: false
+          unit:
+            type: string
+            default: ns
+            description: Unit of the metric value
+            required: true
+          protocol:
+            type: string
+            default: tcp
+          port:
+            type: PortDef
+            required: false
+          name:
+            type: string
+            default: cpu.delta
+            description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+            required: true
+          category:
+            type: string
+            default: compute
+            description: Category of the metric, for an example, compute, disk, network, storage and etc.
+            required: false
+          url_path:
+            type: string
+            required: false
+      RSU_0.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      OMU_fabric_port.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      RSU_0.instance:type:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: Existence of instance <type> (OpenStack types)
+        occurrences:
+        - 1
+        - UNBOUNDED
+        properties:
+          initiator:
+            type: string
+            default: source
+          network_name:
+            type: string
+            default: PRIVATE
+            required: false
+          description:
+            type: string
+            description: Description of the metric
+            required: false
+          type:
+            type: string
+            default: Gauge
+            description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+            required: true
+          secure:
+            type: boolean
+            default: false
+          ports:
+            type: map
+            required: false
+            entry_schema:
+              type: PortSpec
+          port_name:
+            type: string
+            required: false
+          unit:
+            type: string
+            default: instance
+            description: Unit of the metric value
+            required: true
+          protocol:
+            type: string
+            default: tcp
+          port:
+            type: PortDef
+            required: false
+          name:
+            type: string
+            default: instance:type
+            description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+            required: true
+          category:
+            type: string
+            default: compute
+            description: Category of the metric, for an example, compute, disk, network, storage and etc.
+            required: false
+          url_path:
+            type: string
+            required: false
+      PID_0.memory.resident:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: Volume of RAM used by the instance on the physical machine
+        occurrences:
+        - 1
+        - UNBOUNDED
+        properties:
+          initiator:
+            type: string
+            default: source
+          network_name:
+            type: string
+            default: PRIVATE
+            required: false
+          description:
+            type: string
+            description: Description of the metric
+            required: false
+          type:
+            type: string
+            default: Gauge
+            description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+            required: true
+          secure:
+            type: boolean
+            default: false
+          ports:
+            type: map
+            required: false
+            entry_schema:
+              type: PortSpec
+          port_name:
+            type: string
+            required: false
+          unit:
+            type: string
+            default: MB
+            description: Unit of the metric value
+            required: true
+          protocol:
+            type: string
+            default: tcp
+          port:
+            type: PortDef
+            required: false
+          name:
+            type: string
+            default: memory.resident
+            description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+            required: true
+          category:
+            type: string
+            default: compute
+            description: Category of the metric, for an example, compute, disk, network, storage and etc.
+            required: false
+          url_path:
+            type: string
+            required: false
+      RSU_0.endpoint:
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences:
+        - 1
+        - UNBOUNDED
+        properties:
+          port_name:
+            type: string
+            required: false
+          protocol:
+            type: string
+            default: tcp
+          port:
+            type: PortDef
+            required: false
+          initiator:
+            type: string
+            default: source
+          network_name:
+            type: string
+            default: PRIVATE
+            required: false
+          secure:
+            type: boolean
+            default: true
+          ports:
+            type: map
+            required: false
+            entry_schema:
+              type: PortSpec
+          url_path:
+            type: string
+            required: false
+      OMU_0.instance:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: Existence of instance
+        occurrences:
+        - 1
+        - UNBOUNDED
+        properties:
+          initiator:
+            type: string
+            default: source
+          network_name:
+            type: string
+            default: PRIVATE
+            required: false
+          description:
+            type: string
+            description: Description of the metric
+            required: false
+          type:
+            type: string
+            default: Gauge
+            description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+            required: true
+          secure:
+            type: boolean
+            default: false
+          ports:
+            type: map
+            required: false
+            entry_schema:
+              type: PortSpec
+          port_name:
+            type: string
+            required: false
+          unit:
+            type: string
+            default: instance
+            description: Unit of the metric value
+            required: true
+          protocol:
+            type: string
+            default: tcp
+          port:
+            type: PortDef
+            required: false
+          name:
+            type: string
+            default: instance
+            description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+            required: true
+          category:
+            type: string
+            default: compute
+            description: Category of the metric, for an example, compute, disk, network, storage and etc.
+            required: false
+          url_path:
+            type: string
+            required: false
+      RSU_0.vcpus:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: Average disk latency
+        occurrences:
+        - 1
+        - UNBOUNDED
+        properties:
+          initiator:
+            type: string
+            default: source
+          network_name:
+            type: string
+            default: PRIVATE
+            required: false
+          description:
+            type: string
+            description: Description of the metric
+            required: false
+          type:
+            type: string
+            default: Gauge
+            description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+            required: true
+          secure:
+            type: boolean
+            default: false
+          ports:
+            type: map
+            required: false
+            entry_schema:
+              type: PortSpec
+          port_name:
+            type: string
+            required: false
+          unit:
+            type: string
+            default: ms
+            description: Unit of the metric value
+            required: true
+          protocol:
+            type: string
+            default: tcp
+          port:
+            type: PortDef
+            required: false
+          name:
+            type: string
+            default: vcpus
+            description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+            required: true
+          category:
+            type: string
+            default: compute
+            description: Category of the metric, for an example, compute, disk, network, storage and etc.
+            required: false
+          url_path:
+            type: string
+            required: false
+      PID_0.instance:type:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: Existence of instance <type> (OpenStack types)
+        occurrences:
+        - 1
+        - UNBOUNDED
+        properties:
+          initiator:
+            type: string
+            default: source
+          network_name:
+            type: string
+            default: PRIVATE
+            required: false
+          description:
+            type: string
+            description: Description of the metric
+            required: false
+          type:
+            type: string
+            default: Gauge
+            description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+            required: true
+          secure:
+            type: boolean
+            default: false
+          ports:
+            type: map
+            required: false
+            entry_schema:
+              type: PortSpec
+          port_name:
+            type: string
+            required: false
+          unit:
+            type: string
+            default: instance
+            description: Unit of the metric value
+            required: true
+          protocol:
+            type: string
+            default: tcp
+          port:
+            type: PortDef
+            required: false
+          name:
+            type: string
+            default: instance:type
+            description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+            required: true
+          category:
+            type: string
+            default: compute
+            description: Category of the metric, for an example, compute, disk, network, storage and etc.
+            required: false
+          url_path:
+            type: string
+            required: false
+      FEU_0.memory.resident:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: Volume of RAM used by the instance on the physical machine
+        occurrences:
+        - 1
+        - UNBOUNDED
+        properties:
+          initiator:
+            type: string
+            default: source
+          network_name:
+            type: string
+            default: PRIVATE
+            required: false
+          description:
+            type: string
+            description: Description of the metric
+            required: false
+          type:
+            type: string
+            default: Gauge
+            description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+            required: true
+          secure:
+            type: boolean
+            default: false
+          ports:
+            type: map
+            required: false
+            entry_schema:
+              type: PortSpec
+          port_name:
+            type: string
+            required: false
+          unit:
+            type: string
+            default: MB
+            description: Unit of the metric value
+            required: true
+          protocol:
+            type: string
+            default: tcp
+          port:
+            type: PortDef
+            required: false
+          name:
+            type: string
+            default: memory.resident
+            description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+            required: true
+          category:
+            type: string
+            default: compute
+            description: Category of the metric, for an example, compute, disk, network, storage and etc.
+            required: false
+          url_path:
+            type: string
+            required: false
+      data_2_network.link:
+        type: tosca.capabilities.network.Linkable
+        occurrences:
+        - 0
+        - UNBOUNDED
+      FEU_0.cpu:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: CPU time used
+        occurrences:
+        - 1
+        - UNBOUNDED
+        properties:
+          initiator:
+            type: string
+            default: source
+          network_name:
+            type: string
+            default: PRIVATE
+            required: false
+          description:
+            type: string
+            description: Description of the metric
+            required: false
+          type:
+            type: string
+            default: Cumulative
+            description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+            required: true
+          secure:
+            type: boolean
+            default: false
+          ports:
+            type: map
+            required: false
+            entry_schema:
+              type: PortSpec
+          port_name:
+            type: string
+            required: false
+          unit:
+            type: string
+            default: ns
+            description: Unit of the metric value
+            required: true
+          protocol:
+            type: string
+            default: tcp
+          port:
+            type: PortDef
+            required: false
+          name:
+            type: string
+            default: cpu
+            description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+            required: true
+          category:
+            type: string
+            default: compute
+            description: Category of the metric, for an example, compute, disk, network, storage and etc.
+            required: false
+          url_path:
+            type: string
+            required: false
+      PID_0.vcpus:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: Average disk latency
+        occurrences:
+        - 1
+        - UNBOUNDED
+        properties:
+          initiator:
+            type: string
+            default: source
+          network_name:
+            type: string
+            default: PRIVATE
+            required: false
+          description:
+            type: string
+            description: Description of the metric
+            required: false
+          type:
+            type: string
+            default: Gauge
+            description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+            required: true
+          secure:
+            type: boolean
+            default: false
+          ports:
+            type: map
+            required: false
+            entry_schema:
+              type: PortSpec
+          port_name:
+            type: string
+            required: false
+          unit:
+            type: string
+            default: ms
+            description: Unit of the metric value
+            required: true
+          protocol:
+            type: string
+            default: tcp
+          port:
+            type: PortDef
+            required: false
+          name:
+            type: string
+            default: vcpus
+            description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+            required: true
+          category:
+            type: string
+            default: compute
+            description: Category of the metric, for an example, compute, disk, network, storage and etc.
+            required: false
+          url_path:
+            type: string
+            required: false
+      signal_2_network.attachment:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      OMU_fabric_port.attachment:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      FEU_0.endpoint:
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences:
+        - 1
+        - UNBOUNDED
+        properties:
+          port_name:
+            type: string
+            required: false
+          protocol:
+            type: string
+            default: tcp
+          port:
+            type: PortDef
+            required: false
+          initiator:
+            type: string
+            default: source
+          network_name:
+            type: string
+            default: PRIVATE
+            required: false
+          secure:
+            type: boolean
+            default: true
+          ports:
+            type: map
+            required: false
+            entry_schema:
+              type: PortSpec
+          url_path:
+            type: string
+            required: false
+      data_2_network.attachment:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      OMU_om_port.attachment:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      OMU_0.binding:
+        type: tosca.capabilities.network.Bindable
+        occurrences:
+        - 0
+        - UNBOUNDED
+      OMU_0.memory.resident:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: Volume of RAM used by the instance on the physical machine
+        occurrences:
+        - 1
+        - UNBOUNDED
+        properties:
+          initiator:
+            type: string
+            default: source
+          network_name:
+            type: string
+            default: PRIVATE
+            required: false
+          description:
+            type: string
+            description: Description of the metric
+            required: false
+          type:
+            type: string
+            default: Gauge
+            description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+            required: true
+          secure:
+            type: boolean
+            default: false
+          ports:
+            type: map
+            required: false
+            entry_schema:
+              type: PortSpec
+          port_name:
+            type: string
+            required: false
+          unit:
+            type: string
+            default: MB
+            description: Unit of the metric value
+            required: true
+          protocol:
+            type: string
+            default: tcp
+          port:
+            type: PortDef
+            required: false
+          name:
+            type: string
+            default: memory.resident
+            description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+            required: true
+          category:
+            type: string
+            default: compute
+            description: Category of the metric, for an example, compute, disk, network, storage and etc.
+            required: false
+          url_path:
+            type: string
+            required: false
+      FEU_base_port.attachment:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      OMU_0.memory.usage:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: Volume of RAM used by the instance from the amount of its allocated memory
+        occurrences:
+        - 1
+        - UNBOUNDED
+        properties:
+          initiator:
+            type: string
+            default: source
+          network_name:
+            type: string
+            default: PRIVATE
+            required: false
+          description:
+            type: string
+            description: Description of the metric
+            required: false
+          type:
+            type: string
+            default: Gauge
+            description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+            required: true
+          secure:
+            type: boolean
+            default: false
+          ports:
+            type: map
+            required: false
+            entry_schema:
+              type: PortSpec
+          port_name:
+            type: string
+            required: false
+          unit:
+            type: string
+            default: MB
+            description: Unit of the metric value
+            required: true
+          protocol:
+            type: string
+            default: tcp
+          port:
+            type: PortDef
+            required: false
+          name:
+            type: string
+            default: memory.usage
+            description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+            required: true
+          category:
+            type: string
+            default: compute
+            description: Category of the metric, for an example, compute, disk, network, storage and etc.
+            required: false
+          url_path:
+            type: string
+            required: false
+      FEU_signal_1_port.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      PID_base_port.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      PID_boss_port.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      FEU_0.cpu_util:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: Average CPU utilization
+        occurrences:
+        - 1
+        - UNBOUNDED
+        properties:
+          initiator:
+            type: string
+            default: source
+          network_name:
+            type: string
+            default: PRIVATE
+            required: false
+          description:
+            type: string
+            description: Description of the metric
+            required: false
+          type:
+            type: string
+            default: Gauge
+            description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+            required: true
+          secure:
+            type: boolean
+            default: false
+          ports:
+            type: map
+            required: false
+            entry_schema:
+              type: PortSpec
+          port_name:
+            type: string
+            required: false
+          unit:
+            type: string
+            default: '%'
+            description: Unit of the metric value
+            required: true
+          protocol:
+            type: string
+            default: tcp
+          port:
+            type: PortDef
+            required: false
+          name:
+            type: string
+            default: cpu_util
+            description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+            required: true
+          category:
+            type: string
+            default: compute
+            description: Category of the metric, for an example, compute, disk, network, storage and etc.
+            required: false
+          url_path:
+            type: string
+            required: false
+      OMU_base_port.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      RSU_base_port.attachment:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      FEU_0.memory:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: Volume of RAM allocated to the instance
+        occurrences:
+        - 1
+        - UNBOUNDED
+        properties:
+          initiator:
+            type: string
+            default: source
+          network_name:
+            type: string
+            default: PRIVATE
+            required: false
+          description:
+            type: string
+            description: Description of the metric
+            required: false
+          type:
+            type: string
+            default: Gauge
+            description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+            required: true
+          secure:
+            type: boolean
+            default: false
+          ports:
+            type: map
+            required: false
+            entry_schema:
+              type: PortSpec
+          port_name:
+            type: string
+            required: false
+          unit:
+            type: string
+            default: MB
+            description: Unit of the metric value
+            required: true
+          protocol:
+            type: string
+            default: tcp
+          port:
+            type: PortDef
+            required: false
+          name:
+            type: string
+            default: memory
+            description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+            required: true
+          category:
+            type: string
+            default: compute
+            description: Category of the metric, for an example, compute, disk, network, storage and etc.
+            required: false
+          url_path:
+            type: string
+            required: false
+      RSU_data_2_port.attachment:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      OMU_0.os:
+        type: tosca.capabilities.OperatingSystem
+        occurrences:
+        - 1
+        - UNBOUNDED
+        properties:
+          distribution:
+            type: string
+            required: false
+          type:
+            type: string
+            required: false
+          version:
+            type: version
+            required: false
+          architecture:
+            type: string
+            required: false
+      boss_network.link:
+        type: tosca.capabilities.network.Linkable
+        occurrences:
+        - 0
+        - UNBOUNDED
+      FEU_data_1_port.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      base_network.link:
+        type: tosca.capabilities.network.Linkable
+        occurrences:
+        - 0
+        - UNBOUNDED
+      PID_0.endpoint:
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences:
+        - 1
+        - UNBOUNDED
+        properties:
+          port_name:
+            type: string
+            required: false
+          protocol:
+            type: string
+            default: tcp
+          port:
+            type: PortDef
+            required: false
+          initiator:
+            type: string
+            default: source
+          network_name:
+            type: string
+            default: PRIVATE
+            required: false
+          secure:
+            type: boolean
+            default: true
+          ports:
+            type: map
+            required: false
+            entry_schema:
+              type: PortSpec
+          url_path:
+            type: string
+            required: false
+      FEU_0.os:
+        type: tosca.capabilities.OperatingSystem
+        occurrences:
+        - 1
+        - UNBOUNDED
+        properties:
+          distribution:
+            type: string
+            required: false
+          type:
+            type: string
+            required: false
+          version:
+            type: version
+            required: false
+          architecture:
+            type: string
+            required: false
+      RSU_0.scalable:
+        type: tosca.capabilities.Scalable
+        occurrences:
+        - 1
+        - UNBOUNDED
+        properties:
+          min_instances:
+            type: integer
+            default: 1
+          max_instances:
+            type: integer
+            default: 1
+          default_instances:
+            type: integer
+      RSU_0.cpu_util:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: Average CPU utilization
+        occurrences:
+        - 1
+        - UNBOUNDED
+        properties:
+          initiator:
+            type: string
+            default: source
+          network_name:
+            type: string
+            default: PRIVATE
+            required: false
+          description:
+            type: string
+            description: Description of the metric
+            required: false
+          type:
+            type: string
+            default: Gauge
+            description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+            required: true
+          secure:
+            type: boolean
+            default: false
+          ports:
+            type: map
+            required: false
+            entry_schema:
+              type: PortSpec
+          port_name:
+            type: string
+            required: false
+          unit:
+            type: string
+            default: '%'
+            description: Unit of the metric value
+            required: true
+          protocol:
+            type: string
+            default: tcp
+          port:
+            type: PortDef
+            required: false
+          name:
+            type: string
+            default: cpu_util
+            description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+            required: true
+          category:
+            type: string
+            default: compute
+            description: Category of the metric, for an example, compute, disk, network, storage and etc.
+            required: false
+          url_path:
+            type: string
+            required: false
+      RSU_fabric_port.attachment:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      FEU_base_port.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      FEU_0.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      boss_network.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      FEU_data_1_port.attachment:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      PID_0.binding:
+        type: tosca.capabilities.network.Bindable
+        occurrences:
+        - 0
+        - UNBOUNDED
+      PID_0.cpu:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: CPU time used
+        occurrences:
+        - 1
+        - UNBOUNDED
+        properties:
+          initiator:
+            type: string
+            default: source
+          network_name:
+            type: string
+            default: PRIVATE
+            required: false
+          description:
+            type: string
+            description: Description of the metric
+            required: false
+          type:
+            type: string
+            default: Cumulative
+            description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+            required: true
+          secure:
+            type: boolean
+            default: false
+          ports:
+            type: map
+            required: false
+            entry_schema:
+              type: PortSpec
+          port_name:
+            type: string
+            required: false
+          unit:
+            type: string
+            default: ns
+            description: Unit of the metric value
+            required: true
+          protocol:
+            type: string
+            default: tcp
+          port:
+            type: PortDef
+            required: false
+          name:
+            type: string
+            default: cpu
+            description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+            required: true
+          category:
+            type: string
+            default: compute
+            description: Category of the metric, for an example, compute, disk, network, storage and etc.
+            required: false
+          url_path:
+            type: string
+            required: false
+      FEU_0.binding:
+        type: tosca.capabilities.network.Bindable
+        occurrences:
+        - 0
+        - UNBOUNDED
+      PID_fabric_port.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      signal_1_network.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      PID_om_port.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      data_1_network.link:
+        type: tosca.capabilities.network.Linkable
+        occurrences:
+        - 0
+        - UNBOUNDED
+      OMU_0.cpu_util:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: Average CPU utilization
+        occurrences:
+        - 1
+        - UNBOUNDED
+        properties:
+          initiator:
+            type: string
+            default: source
+          network_name:
+            type: string
+            default: PRIVATE
+            required: false
+          description:
+            type: string
+            description: Description of the metric
+            required: false
+          type:
+            type: string
+            default: Gauge
+            description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+            required: true
+          secure:
+            type: boolean
+            default: false
+          ports:
+            type: map
+            required: false
+            entry_schema:
+              type: PortSpec
+          port_name:
+            type: string
+            required: false
+          unit:
+            type: string
+            default: '%'
+            description: Unit of the metric value
+            required: true
+          protocol:
+            type: string
+            default: tcp
+          port:
+            type: PortDef
+            required: false
+          name:
+            type: string
+            default: cpu_util
+            description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+            required: true
+          category:
+            type: string
+            default: compute
+            description: Category of the metric, for an example, compute, disk, network, storage and etc.
+            required: false
+          url_path:
+            type: string
+            required: false
+      fabric_network.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      OMU_base_port.attachment:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      PID_0.memory.usage:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: Volume of RAM used by the instance from the amount of its allocated memory
+        occurrences:
+        - 1
+        - UNBOUNDED
+        properties:
+          initiator:
+            type: string
+            default: source
+          network_name:
+            type: string
+            default: PRIVATE
+            required: false
+          description:
+            type: string
+            description: Description of the metric
+            required: false
+          type:
+            type: string
+            default: Gauge
+            description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+            required: true
+          secure:
+            type: boolean
+            default: false
+          ports:
+            type: map
+            required: false
+            entry_schema:
+              type: PortSpec
+          port_name:
+            type: string
+            required: false
+          unit:
+            type: string
+            default: MB
+            description: Unit of the metric value
+            required: true
+          protocol:
+            type: string
+            default: tcp
+          port:
+            type: PortDef
+            required: false
+          name:
+            type: string
+            default: memory.usage
+            description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+            required: true
+          category:
+            type: string
+            default: compute
+            description: Category of the metric, for an example, compute, disk, network, storage and etc.
+            required: false
+          url_path:
+            type: string
+            required: false
+      RSU_0.host:
+        type: tosca.capabilities.Container
+        occurrences:
+        - 1
+        - UNBOUNDED
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
+        properties:
+          num_cpus:
+            type: integer
+            required: false
+          disk_size:
+            type: scalar-unit.size
+            required: false
+          cpu_frequency:
+            type: scalar-unit.frequency
+            required: false
+          mem_size:
+            type: scalar-unit.size
+            required: false
+      signal_1_network.attachment:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      OMU_om_port.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      PID_0.host:
+        type: tosca.capabilities.Container
+        occurrences:
+        - 1
+        - UNBOUNDED
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
+        properties:
+          num_cpus:
+            type: integer
+            required: false
+          disk_size:
+            type: scalar-unit.size
+            required: false
+          cpu_frequency:
+            type: scalar-unit.frequency
+            required: false
+          mem_size:
+            type: scalar-unit.size
+            required: false
+      signal_1_network.link:
+        type: tosca.capabilities.network.Linkable
+        occurrences:
+        - 0
+        - UNBOUNDED
+      signal_2_network.link:
+        type: tosca.capabilities.network.Linkable
+        occurrences:
+        - 0
+        - UNBOUNDED
+      RSU_data_1_port.attachment:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      RSU_0.os:
+        type: tosca.capabilities.OperatingSystem
+        occurrences:
+        - 1
+        - UNBOUNDED
+        properties:
+          distribution:
+            type: string
+            required: false
+          type:
+            type: string
+            required: false
+          version:
+            type: version
+            required: false
+          architecture:
+            type: string
+            required: false
+      OMU_0.vcpus:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: Average disk latency
+        occurrences:
+        - 1
+        - UNBOUNDED
+        properties:
+          initiator:
+            type: string
+            default: source
+          network_name:
+            type: string
+            default: PRIVATE
+            required: false
+          description:
+            type: string
+            description: Description of the metric
+            required: false
+          type:
+            type: string
+            default: Gauge
+            description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+            required: true
+          secure:
+            type: boolean
+            default: false
+          ports:
+            type: map
+            required: false
+            entry_schema:
+              type: PortSpec
+          port_name:
+            type: string
+            required: false
+          unit:
+            type: string
+            default: ms
+            description: Unit of the metric value
+            required: true
+          protocol:
+            type: string
+            default: tcp
+          port:
+            type: PortDef
+            required: false
+          name:
+            type: string
+            default: vcpus
+            description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+            required: true
+          category:
+            type: string
+            default: compute
+            description: Category of the metric, for an example, compute, disk, network, storage and etc.
+            required: false
+          url_path:
+            type: string
+            required: false
+      base_network.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      RSU_0.memory.resident:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: Volume of RAM used by the instance on the physical machine
+        occurrences:
+        - 1
+        - UNBOUNDED
+        properties:
+          initiator:
+            type: string
+            default: source
+          network_name:
+            type: string
+            default: PRIVATE
+            required: false
+          description:
+            type: string
+            description: Description of the metric
+            required: false
+          type:
+            type: string
+            default: Gauge
+            description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+            required: true
+          secure:
+            type: boolean
+            default: false
+          ports:
+            type: map
+            required: false
+            entry_schema:
+              type: PortSpec
+          port_name:
+            type: string
+            required: false
+          unit:
+            type: string
+            default: MB
+            description: Unit of the metric value
+            required: true
+          protocol:
+            type: string
+            default: tcp
+          port:
+            type: PortDef
+            required: false
+          name:
+            type: string
+            default: memory.resident
+            description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+            required: true
+          category:
+            type: string
+            default: compute
+            description: Category of the metric, for an example, compute, disk, network, storage and etc.
+            required: false
+          url_path:
+            type: string
+            required: false
+      OMU_0.host:
+        type: tosca.capabilities.Container
+        occurrences:
+        - 1
+        - UNBOUNDED
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
+        properties:
+          num_cpus:
+            type: integer
+            required: false
+          disk_size:
+            type: scalar-unit.size
+            required: false
+          cpu_frequency:
+            type: scalar-unit.frequency
+            required: false
+          mem_size:
+            type: scalar-unit.size
+            required: false
+      fabric_network.link:
+        type: tosca.capabilities.network.Linkable
+        occurrences:
+        - 0
+        - UNBOUNDED
+      PID_base_port.attachment:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      OMU_0.scalable:
+        type: tosca.capabilities.Scalable
+        occurrences:
+        - 1
+        - UNBOUNDED
+        properties:
+          min_instances:
+            type: integer
+            default: 1
+          max_instances:
+            type: integer
+            default: 1
+          default_instances:
+            type: integer
+      FEU_0.cpu.delta:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: CPU time used since previous datapoint
+        occurrences:
+        - 1
+        - UNBOUNDED
+        properties:
+          initiator:
+            type: string
+            default: source
+          network_name:
+            type: string
+            default: PRIVATE
+            required: false
+          description:
+            type: string
+            description: Description of the metric
+            required: false
+          type:
+            type: string
+            default: Delta
+            description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+            required: true
+          secure:
+            type: boolean
+            default: false
+          ports:
+            type: map
+            required: false
+            entry_schema:
+              type: PortSpec
+          port_name:
+            type: string
+            required: false
+          unit:
+            type: string
+            default: ns
+            description: Unit of the metric value
+            required: true
+          protocol:
+            type: string
+            default: tcp
+          port:
+            type: PortDef
+            required: false
+          name:
+            type: string
+            default: cpu.delta
+            description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+            required: true
+          category:
+            type: string
+            default: compute
+            description: Category of the metric, for an example, compute, disk, network, storage and etc.
+            required: false
+          url_path:
+            type: string
+            required: false
+      FEU_signal_1_port.attachment:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      FEU_data_2_port.attachment:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      OMU_0.cpu:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: CPU time used
+        occurrences:
+        - 1
+        - UNBOUNDED
+        properties:
+          initiator:
+            type: string
+            default: source
+          network_name:
+            type: string
+            default: PRIVATE
+            required: false
+          description:
+            type: string
+            description: Description of the metric
+            required: false
+          type:
+            type: string
+            default: Cumulative
+            description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+            required: true
+          secure:
+            type: boolean
+            default: false
+          ports:
+            type: map
+            required: false
+            entry_schema:
+              type: PortSpec
+          port_name:
+            type: string
+            required: false
+          unit:
+            type: string
+            default: ns
+            description: Unit of the metric value
+            required: true
+          protocol:
+            type: string
+            default: tcp
+          port:
+            type: PortDef
+            required: false
+          name:
+            type: string
+            default: cpu
+            description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+            required: true
+          category:
+            type: string
+            default: compute
+            description: Category of the metric, for an example, compute, disk, network, storage and etc.
+            required: false
+          url_path:
+            type: string
+            required: false
+      PID_om_port.attachment:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      OMU_0.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      FEU_0.vcpus:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: Average disk latency
+        occurrences:
+        - 1
+        - UNBOUNDED
+        properties:
+          initiator:
+            type: string
+            default: source
+          network_name:
+            type: string
+            default: PRIVATE
+            required: false
+          description:
+            type: string
+            description: Description of the metric
+            required: false
+          type:
+            type: string
+            default: Gauge
+            description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+            required: true
+          secure:
+            type: boolean
+            default: false
+          ports:
+            type: map
+            required: false
+            entry_schema:
+              type: PortSpec
+          port_name:
+            type: string
+            required: false
+          unit:
+            type: string
+            default: ms
+            description: Unit of the metric value
+            required: true
+          protocol:
+            type: string
+            default: tcp
+          port:
+            type: PortDef
+            required: false
+          name:
+            type: string
+            default: vcpus
+            description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+            required: true
+          category:
+            type: string
+            default: compute
+            description: Category of the metric, for an example, compute, disk, network, storage and etc.
+            required: false
+          url_path:
+            type: string
+            required: false
+      boss_network.attachment:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      signal_2_network.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      FEU_0.host:
+        type: tosca.capabilities.Container
+        occurrences:
+        - 1
+        - UNBOUNDED
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
+        properties:
+          num_cpus:
+            type: integer
+            required: false
+          disk_size:
+            type: scalar-unit.size
+            required: false
+          cpu_frequency:
+            type: scalar-unit.frequency
+            required: false
+          mem_size:
+            type: scalar-unit.size
+            required: false
+      om_network.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      RSU_data_1_port.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      FEU_fabric_port.attachment:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      PID_0.cpu.delta:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: CPU time used since previous datapoint
+        occurrences:
+        - 1
+        - UNBOUNDED
+        properties:
+          initiator:
+            type: string
+            default: source
+          network_name:
+            type: string
+            default: PRIVATE
+            required: false
+          description:
+            type: string
+            description: Description of the metric
+            required: false
+          type:
+            type: string
+            default: Delta
+            description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+            required: true
+          secure:
+            type: boolean
+            default: false
+          ports:
+            type: map
+            required: false
+            entry_schema:
+              type: PortSpec
+          port_name:
+            type: string
+            required: false
+          unit:
+            type: string
+            default: ns
+            description: Unit of the metric value
+            required: true
+          protocol:
+            type: string
+            default: tcp
+          port:
+            type: PortDef
+            required: false
+          name:
+            type: string
+            default: cpu.delta
+            description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+            required: true
+          category:
+            type: string
+            default: compute
+            description: Category of the metric, for an example, compute, disk, network, storage and etc.
+            required: false
+          url_path:
+            type: string
+            required: false
+      RSU_0.binding:
+        type: tosca.capabilities.network.Bindable
+        occurrences:
+        - 0
+        - UNBOUNDED
+      FEU_signal_2_port.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      PID_0.os:
+        type: tosca.capabilities.OperatingSystem
+        occurrences:
+        - 1
+        - UNBOUNDED
+        properties:
+          distribution:
+            type: string
+            required: false
+          type:
+            type: string
+            required: false
+          version:
+            type: version
+            required: false
+          architecture:
+            type: string
+            required: false
+      PID_0.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      FEU_0.memory.usage:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: Volume of RAM used by the instance from the amount of its allocated memory
+        occurrences:
+        - 1
+        - UNBOUNDED
+        properties:
+          initiator:
+            type: string
+            default: source
+          network_name:
+            type: string
+            default: PRIVATE
+            required: false
+          description:
+            type: string
+            description: Description of the metric
+            required: false
+          type:
+            type: string
+            default: Gauge
+            description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+            required: true
+          secure:
+            type: boolean
+            default: false
+          ports:
+            type: map
+            required: false
+            entry_schema:
+              type: PortSpec
+          port_name:
+            type: string
+            required: false
+          unit:
+            type: string
+            default: MB
+            description: Unit of the metric value
+            required: true
+          protocol:
+            type: string
+            default: tcp
+          port:
+            type: PortDef
+            required: false
+          name:
+            type: string
+            default: memory.usage
+            description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+            required: true
+          category:
+            type: string
+            default: compute
+            description: Category of the metric, for an example, compute, disk, network, storage and etc.
+            required: false
+          url_path:
+            type: string
+            required: false
+      PID_boss_port.attachment:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      FEU_data_2_port.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      om_network.attachment:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      RSU_0.instance:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: Existence of instance
+        occurrences:
+        - 1
+        - UNBOUNDED
+        properties:
+          initiator:
+            type: string
+            default: source
+          network_name:
+            type: string
+            default: PRIVATE
+            required: false
+          description:
+            type: string
+            description: Description of the metric
+            required: false
+          type:
+            type: string
+            default: Gauge
+            description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+            required: true
+          secure:
+            type: boolean
+            default: false
+          ports:
+            type: map
+            required: false
+            entry_schema:
+              type: PortSpec
+          port_name:
+            type: string
+            required: false
+          unit:
+            type: string
+            default: instance
+            description: Unit of the metric value
+            required: true
+          protocol:
+            type: string
+            default: tcp
+          port:
+            type: PortDef
+            required: false
+          name:
+            type: string
+            default: instance
+            description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+            required: true
+          category:
+            type: string
+            default: compute
+            description: Category of the metric, for an example, compute, disk, network, storage and etc.
+            required: false
+          url_path:
+            type: string
+            required: false
+      data_1_network.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      OMU_0.cpu.delta:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: CPU time used since previous datapoint
+        occurrences:
+        - 1
+        - UNBOUNDED
+        properties:
+          initiator:
+            type: string
+            default: source
+          network_name:
+            type: string
+            default: PRIVATE
+            required: false
+          description:
+            type: string
+            description: Description of the metric
+            required: false
+          type:
+            type: string
+            default: Delta
+            description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc.
+            required: true
+          secure:
+            type: boolean
+            default: false
+          ports:
+            type: map
+            required: false
+            entry_schema:
+              type: PortSpec
+          port_name:
+            type: string
+            required: false
+          unit:
+            type: string
+            default: ns
+            description: Unit of the metric value
+            required: true
+          protocol:
+            type: string
+            default: tcp
+          port:
+            type: PortDef
+            required: false
+          name:
+            type: string
+            default: cpu.delta
+            description: Ceilometer metric type name to monitor. (The name ceilometer is using)
+            required: true
+          category:
+            type: string
+            default: compute
+            description: Category of the metric, for an example, compute, disk, network, storage and etc.
+            required: false
+          url_path:
+            type: string
+            required: false
+    requirements:
+      FEU_0.local_storage:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
+      RSU_0.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      OMU_fabric_port.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      OMU_om_port.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      om_network.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      RSU_0.local_storage:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
+      OMU_0.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      FEU_signal_2_port.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      OMU_0.local_storage:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
+      PID_fabric_port.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      PID_0.local_storage:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
+      PID_om_port.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      PID_0.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      RSU_fabric_port.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      PID_base_port.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      FEU_data_1_port.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      RSU_data_2_port.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      RSU_base_port.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      signal_2_network.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      PID_boss_port.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      fabric_network.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      data_2_network.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      data_1_network.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      boss_network.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      FEU_0.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      FEU_signal_1_port.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      FEU_data_2_port.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      RSU_data_1_port.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      FEU_fabric_port.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      signal_1_network.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      OMU_base_port.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      FEU_base_port.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      base_network.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertParameters/in/TOSCA-Metadata/TOSCA.meta b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertParameters/in/TOSCA-Metadata/TOSCA.meta
new file mode 100644 (file)
index 0000000..1d3cb35
--- /dev/null
@@ -0,0 +1,4 @@
+TOSCA-Meta-File-Version: 1.0
+CSAR-Version: 1.1
+Created-By: Carlos Santana
+Entry-Definitions: Definitions/resource-Vhss-template.yml
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertParameters/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertParameters/out/MainServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..8dbe051
--- /dev/null
@@ -0,0 +1,627 @@
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  template_name: Main
+  resourceVendor: vEPC_LicenseModel_v2
+  name: vHSS_vEPC_v2
+  description: 'vHSS '
+  invariantUUID: 1aaefda9-109a-421f-ad7d-2a7b3100a424
+  UUID: 7a308278-ab71-4bc8-ae45-2779c5f625dc
+  type: VF
+  category: Network L2-3
+  subcategory: Gateway
+  resourceVendorRelease: '1.0'
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+topology_template:
+  inputs:
+    base_net_cidr:
+      type: string
+      description: The CIDR of the base network
+      default: 192.168.10.0/24
+    fabric_net_id:
+      type: string
+      description: The ID of the fabric network
+      default: test1_fabric_net
+    data_2_net_cidr:
+      type: string
+      description: The CIDR of the PCRF external data 2 network
+      default: 10.4.0.0/16
+    RSU_data_2_ip:
+      type: string
+      description: RSU IP address that is assigned to the vHSS to communicate with the RSU
+      default: 10.4.0.1
+    public_net_id:
+      type: string
+      description: Public network that enables remote connection to VNF
+      default: 00000000-0000-0000-0000-000000000000
+    om_net_id:
+      type: string
+      description: The ID of the PCRF om network
+      default: test1_om_net
+    signal_1_net_cidr:
+      type: string
+      description: The CIDR of the PCRF external signal 1 network
+      default: 10.1.0.0/16
+    OMU_om_ip:
+      type: string
+      description: OM IP address that is assigned to the vHSS to communicate with the OMU
+      default: 192.168.30.100
+    dcae_collector_ip:
+      type: string
+      description: IP address of the DCAE collector
+      default: 10.0.4.102
+    data_1_net_id:
+      type: string
+      description: The ID of the PCRF external data 1 network
+      default: test1_data_1
+    FEU_name_0:
+      type: string
+      description: Name of the FEU
+      default: huaweiPCRFl01FEU01
+    data_2_net_id:
+      type: string
+      description: The ID of the PCRF external data 2 network
+      default: test1_data_2
+    signal_1_net_id:
+      type: string
+      description: The ID of the PCRF external signal 1 network
+      default: test1_signal_1
+    PID_name_0:
+      type: string
+      description: Name of the PID
+      default: huaweiPCRFl01PID01
+    demo_artifacts_version:
+      type: string
+      description: Artifacts (jar, tar.gz) version used in demo vnfs
+      default: 1.0.0-SNAPSHOT
+    boss_net_cidr:
+      type: string
+      description: The CIDR of the PCRF external boss network
+      default: 10.6.0.0/16
+    vHSS_image_name:
+      type: string
+      description: Image to be used for compute instance
+      default: Ubuntu 14.04 LTS (Trusty Tahr) (PVHVM)
+    key_name:
+      type: string
+      description: Public/Private key pair name
+      default: vHSS_key
+    OMU_name_0:
+      type: string
+      description: Name of the OMU
+      default: huaweiPCRFl01omu01
+    boss_net_id:
+      type: string
+      description: The ID of the PCRF external boss network
+      default: test1_boss
+    OMU_fabric_ip:
+      type: string
+      description: Private IP address that is assigned to the vHSS to communicate with the OMU
+      default: 192.168.20.100
+    vf_module_id:
+      type: string
+      description: The vHSS Module ID is provided by ECOMP
+      default: vHSS
+    repo_url_blob:
+      type: string
+      description: URL of the repository that hosts the demo packages
+      default: https://nexus.openecomp.org/content/repositories/raw
+    FEU_base_ip:
+      type: string
+      description: FEU IP address that is assigned to the vHSS to communicate with the FEU
+      default: 192.168.10.201
+    RSU_base_ip:
+      type: string
+      description: RSU IP address that is assigned to the vHSS to communicate with the RSU
+      default: 192.168.10.205
+    RSU_fabric_ip:
+      type: string
+      description: RSU IP address that is assigned to the vHSS to communicate with the RSU
+      default: 192.168.20.205
+    RSU_name_0:
+      type: string
+      description: Name of the RSU
+      default: huaweiPCRFl01RSU01
+    FEU_signal_1_ip:
+      type: string
+      description: FEU IP address that is assigned to the vHSS to communicate with the FEU
+      default: 10.1.0.1
+    OMU_base_ip:
+      type: string
+      description: Private IP address that is assigned to the vHSS to communicate with the vPacketGenerator
+      default: 192.168.10.100
+    om_net_cidr:
+      type: string
+      description: The CIDR of the PCRF om network
+      default: 192.168.30.0/24
+    PID_base_ip:
+      type: string
+      description: PID IP address that is assigned to the vHSS to communicate with the PID
+      default: 192.168.10.205
+    vnf_id:
+      type: string
+      description: The VNF ID is provided by ECOMP
+      default: vHSS_demo_app
+    PID_boss_ip:
+      type: string
+      description: PID IP address that is assigned to the vHSS to communicate with the PID
+      default: 10.3.0.1
+    dcae_collector_port:
+      type: string
+      description: Port of the DCAE collector
+      default: '8080'
+    FEU_data_2_ip:
+      type: string
+      description: FEU IP address that is assigned to the vHSS to communicate with the FEU
+      default: 10.4.0.1
+    vHSS_flavor_name:
+      type: string
+      description: Type of instance (flavor) to be used
+      default: 4 GB General Purpose v1
+    signal_2_net_id:
+      type: string
+      description: The ID of the PCRF external signal 2 network
+      default: test1_signal_2
+    FEU_fabric_ip:
+      type: string
+      description: FEU IP address that is assigned to the vHSS to communicate with the FEU
+      default: 192.168.20.201
+    RSU_data_1_ip:
+      type: string
+      description: RSU IP address that is assigned to the vHSS to communicate with the RSU
+      default: 10.3.0.1
+    signal_2_net_cidr:
+      type: string
+      description: The CIDR of the PCRF external signal 2 network
+      default: 10.2.0.0/16
+    data_1_net_cidr:
+      type: string
+      description: The CIDR of the PCRF external data 1 network
+      default: 10.3.0.0/16
+    pub_key:
+      type: string
+      description: Public key to be installed on the compute instance
+      default: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDQXYJYYi3/OUZXUiCYWdtc7K0m5C0dJKVxPG0eI8EWZrEHYdfYe6WoTSDJCww+1qlBSpA5ac/Ba4Wn9vh+lR1vtUKkyIC/nrYb90ReUd385Glkgzrfh5HdR5y5S2cL/Frh86lAn9r6b3iWTJD8wBwXFyoe1S2nMTOIuG4RPNvfmyCTYVh8XTCCE8HPvh3xv2r4egawG1P4Q4UDwk+hDBXThY2KS8M5/8EMyxHV0ImpLbpYCTBA6KYDIRtqmgS6iKyy8v2D1aSY5mc9J0T5t9S2Gv+VZQNWQDDKNFnxqYaAo1uEoq/i1q63XC5AD3ckXb2VT6dp23BQMdDfbHyUWfJN
+    repo_url_artifacts:
+      type: string
+      description: URL of the repository that hosts the demo packages
+      default: https://nexus.openecomp.org/content/repositories/snapshots
+    base_net_id:
+      type: string
+      description: The ID of the base network
+      default: test1_base_net
+    fabric_net_cidr:
+      type: string
+      description: The CIDR of the fabric network
+      default: 192.168.20.0/24
+    FEU_signal_2_ip:
+      type: string
+      description: FEU IP address that is assigned to the vHSS to communicate with the FEU
+      default: 10.2.0.1
+    PID_fabric_ip:
+      type: string
+      description: PID IP address that is assigned to the vHSS to communicate with the PID
+      default: 192.168.20.205
+    PID_om_ip:
+      type: string
+      description: PID IP address that is assigned to the vHSS to communicate with the PID
+      default: 10.4.0.1
+    FEU_data_1_ip:
+      type: string
+      description: FEU IP address that is assigned to the vHSS to communicate with the FEU
+      default: 10.3.0.1
+  node_templates:
+    OMU_fabric_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        fixed_ips:
+        - subnet: fabric_network
+          ip_address:
+            get_input: OMU_fabric_ip
+        network: fabric_network
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: OMU_0
+          relationship: tosca.relationships.network.BindsTo
+      - link:
+          capability: tosca.capabilities.network.Linkable
+          node: fabric_network
+          relationship: tosca.relationships.network.LinksTo
+    PID_fabric_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        fixed_ips:
+        - subnet: fabric_network
+          ip_address:
+            get_input: PID_fabric_ip
+        network: fabric_network
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: PID_0
+          relationship: tosca.relationships.network.BindsTo
+      - link:
+          capability: tosca.capabilities.network.Linkable
+          node: fabric_network
+          relationship: tosca.relationships.network.LinksTo
+    RSU_fabric_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        fixed_ips:
+        - subnet: fabric_network
+          ip_address:
+            get_input: RSU_fabric_ip
+        network: fabric_network
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: RSU_0
+          relationship: tosca.relationships.network.BindsTo
+      - link:
+          capability: tosca.capabilities.network.Linkable
+          node: fabric_network
+          relationship: tosca.relationships.network.LinksTo
+    PID_om_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        fixed_ips:
+        - subnet: om_network
+          ip_address:
+            get_input: PID_om_ip
+        network: om_network
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: PID_0
+          relationship: tosca.relationships.network.BindsTo
+      - link:
+          capability: tosca.capabilities.network.Linkable
+          node: om_network
+          relationship: tosca.relationships.network.LinksTo
+    FEU_signal_2_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        fixed_ips:
+        - subnet: signal_2_network
+          ip_address:
+            get_input: FEU_signal_2_ip
+        network: signal_2_network
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: FEU_0
+          relationship: tosca.relationships.network.BindsTo
+      - link:
+          capability: tosca.capabilities.network.Linkable
+          node: signal_2_network
+          relationship: tosca.relationships.network.LinksTo
+    boss_network:
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+      properties:
+        network_name:
+          get_input: boss_net_id
+    RSU_0:
+      type: org.openecomp.resource.vfc.VhssVepcV2.abstact.nodes.heat.RSU
+      properties:
+        flavor:
+          get_input: vHSS_flavor_name
+        key_name: UNSUPPORTED_RESOURCE_my_keypair
+        image:
+          get_input: vHSS_image_name
+        metadata:
+          vf_module_id:
+            get_input: vf_module_id
+          vnf_id:
+            get_input: vnf_id
+        user_data_format: RAW
+        name:
+          get_input: RSU_name_0
+    PID_base_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        fixed_ips:
+        - subnet: base_network
+          ip_address:
+            get_input: PID_base_ip
+        network: base_network
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: PID_0
+          relationship: tosca.relationships.network.BindsTo
+      - link:
+          capability: tosca.capabilities.network.Linkable
+          node: base_network
+          relationship: tosca.relationships.network.LinksTo
+    OMU_om_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        fixed_ips:
+        - subnet: om_network
+          ip_address:
+            get_input: OMU_om_ip
+        network: om_network
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: OMU_0
+          relationship: tosca.relationships.network.BindsTo
+      - link:
+          capability: tosca.capabilities.network.Linkable
+          node: om_network
+          relationship: tosca.relationships.network.LinksTo
+    PID_0:
+      type: org.openecomp.resource.vfc.VhssVepcV2.abstact.nodes.heat.PID
+      properties:
+        flavor:
+          get_input: vHSS_flavor_name
+        key_name: UNSUPPORTED_RESOURCE_my_keypair
+        image:
+          get_input: vHSS_image_name
+        metadata:
+          vf_module_id:
+            get_input: vf_module_id
+          vnf_id:
+            get_input: vnf_id
+        user_data_format: RAW
+        name:
+          get_input: PID_name_0
+    OMU_0:
+      type: org.openecomp.resource.vfc.VhssVepcV2.abstact.nodes.heat.OMU
+      properties:
+        flavor:
+          get_input: vHSS_flavor_name
+        key_name: UNSUPPORTED_RESOURCE_my_keypair
+        image:
+          get_input: vHSS_image_name
+        metadata:
+          vf_module_id:
+            get_input: vf_module_id
+          vnf_id:
+            get_input: vnf_id
+        user_data_format: RAW
+        name:
+          get_input: OMU_name_0
+    RSU_data_2_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        fixed_ips:
+        - subnet: data_2_network
+          ip_address:
+            get_input: RSU_data_2_ip
+        network: data_2_network
+      requirements:
+      - link:
+          capability: tosca.capabilities.network.Linkable
+          node: data_2_network
+          relationship: tosca.relationships.network.LinksTo
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: RSU_0
+          relationship: tosca.relationships.network.BindsTo
+    FEU_data_1_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        fixed_ips:
+        - subnet: data_1_network
+          ip_address:
+            get_input: FEU_data_1_ip
+        network: data_1_network
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: FEU_0
+          relationship: tosca.relationships.network.BindsTo
+      - link:
+          capability: tosca.capabilities.network.Linkable
+          node: data_1_network
+          relationship: tosca.relationships.network.LinksTo
+    base_network:
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+      properties:
+        network_name:
+          get_input: base_net_id
+        subnets:
+          base_subnet:
+            cidr:
+              get_input: base_net_cidr
+    FEU_0:
+      type: org.openecomp.resource.vfc.VhssVepcV2.abstact.nodes.heat.FEU
+      properties:
+        flavor:
+          get_input: vHSS_flavor_name
+        key_name: UNSUPPORTED_RESOURCE_my_keypair
+        image:
+          get_input: vHSS_image_name
+        metadata:
+          vf_module_id:
+            get_input: vf_module_id
+          vnf_id:
+            get_input: vnf_id
+        user_data_format: RAW
+        name:
+          get_input: FEU_name_0
+    FEU_signal_1_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        fixed_ips:
+        - subnet: signal_1_network
+          ip_address:
+            get_input: FEU_signal_1_ip
+        network: signal_1_network
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: FEU_0
+          relationship: tosca.relationships.network.BindsTo
+      - link:
+          capability: tosca.capabilities.network.Linkable
+          node: signal_1_network
+          relationship: tosca.relationships.network.LinksTo
+    RSU_base_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        fixed_ips:
+        - subnet: base_network
+          ip_address:
+            get_input: RSU_base_ip
+        network: base_network
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: RSU_0
+          relationship: tosca.relationships.network.BindsTo
+      - link:
+          capability: tosca.capabilities.network.Linkable
+          node: base_network
+          relationship: tosca.relationships.network.LinksTo
+    OMU_base_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        fixed_ips:
+        - subnet: base_network
+          ip_address:
+            get_input: OMU_base_ip
+        network: base_network
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: OMU_0
+          relationship: tosca.relationships.network.BindsTo
+      - link:
+          capability: tosca.capabilities.network.Linkable
+          node: base_network
+          relationship: tosca.relationships.network.LinksTo
+    om_network:
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+      properties:
+        network_name:
+          get_input: om_net_id
+        subnets:
+          om_subnet:
+            cidr:
+              get_input: om_net_cidr
+    RSU_data_1_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        fixed_ips:
+        - subnet: data_1_network
+          ip_address:
+            get_input: RSU_data_1_ip
+        network: data_1_network
+      requirements:
+      - link:
+          capability: tosca.capabilities.network.Linkable
+          node: data_1_network
+          relationship: tosca.relationships.network.LinksTo
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: RSU_0
+          relationship: tosca.relationships.network.BindsTo
+    signal_2_network:
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+      properties:
+        network_name:
+          get_input: signal_2_net_id
+    signal_1_network:
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+      properties:
+        network_name:
+          get_input: signal_1_net_id
+    fabric_network:
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+      properties:
+        network_name:
+          get_input: fabric_net_id
+        subnets:
+          fabric_subnet:
+            cidr:
+              get_input: fabric_net_cidr
+    data_1_network:
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+      properties:
+        network_name:
+          get_input: data_1_net_id
+    data_2_network:
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+      properties:
+        network_name:
+          get_input: data_2_net_id
+    PID_boss_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        fixed_ips:
+        - subnet: boss_network
+          ip_address:
+            get_input: PID_boss_ip
+        network: boss_network
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: PID_0
+          relationship: tosca.relationships.network.BindsTo
+      - link:
+          capability: tosca.capabilities.network.Linkable
+          node: boss_network
+          relationship: tosca.relationships.network.LinksTo
+    FEU_base_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        fixed_ips:
+        - subnet: base_network
+          ip_address:
+            get_input: FEU_base_ip
+        network: base_network
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: FEU_0
+          relationship: tosca.relationships.network.BindsTo
+      - link:
+          capability: tosca.capabilities.network.Linkable
+          node: base_network
+          relationship: tosca.relationships.network.LinksTo
+    FEU_data_2_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        fixed_ips:
+        - subnet: data_2_network
+          ip_address:
+            get_input: FEU_data_2_ip
+        network: data_2_network
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: FEU_0
+          relationship: tosca.relationships.network.BindsTo
+      - link:
+          capability: tosca.capabilities.network.Linkable
+          node: data_2_network
+          relationship: tosca.relationships.network.LinksTo
+    FEU_fabric_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        fixed_ips:
+        - subnet: fabric_network
+          ip_address:
+            get_input: FEU_fabric_ip
+        network: fabric_network
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: FEU_0
+          relationship: tosca.relationships.network.BindsTo
+      - link:
+          capability: tosca.capabilities.network.Linkable
+          node: fabric_network
+          relationship: tosca.relationships.network.LinksTo
+  substitution_mappings:
+    node_type: org.openecomp.resource.vf.VhssVepcV2
+    capabilities: {
+      }
+    requirements: {
+      }