VLAN tagging - Added Consolidation Rules 85/30285/5
authorojasdubey <ojas.dubey@amdocs.com>
Mon, 5 Feb 2018 14:18:23 +0000 (19:48 +0530)
committerVitaly Emporopulo <Vitaliy.Emporopulo@amdocs.com>
Mon, 19 Feb 2018 16:08:37 +0000 (16:08 +0000)
1. Added rules for subinterface consolidation
2. Added new data types for supporting
   subinterface consolidation
3. Added unit tests
4. Updated license text
5. Updated code based on review comments

Change-Id: I7c0d7a4747029c15212c3474280dd8fc6d623ccc
Issue-ID: SDC-998
Signed-off-by: ojasdubey <ojas.dubey@amdocs.com>
Signed-off-by: vempo <vitaliy.emporopulo@amdocs.com>
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/PortTemplateConsolidationData.java
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/SubInterfaceTemplateConsolidationData.java [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationService.java
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/SubInterfaceConsolidationDataTestInfo.java [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/TestUtils.java
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationServiceTest.java
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/BaseFullTranslationTest.java
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/consolidation/translatedfiles/pre_condition/different_subinterface_types/MainServiceTemplate.yaml [new file with mode: 0644]

index c9b59f9..0eacd4d 100644 (file)
@@ -1,5 +1,24 @@
+/*
+ * Copyright © 2016-2018 European Support Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 package org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation;
 
+import com.google.common.collect.ArrayListMultimap;
+import com.google.common.collect.ListMultimap;
+import com.google.common.collect.Multimaps;
 import java.util.List;
 
 
@@ -8,23 +27,45 @@ import java.util.List;
  */
 public class PortTemplateConsolidationData extends EntityConsolidationData {
 
-  private List<String> subPortIds; //sub ports which point to this port
+  // key - subport type - for ResourceGroup it is the nested file name
+  // value - List of subports of that type in the port
+    private final ListMultimap<String, SubInterfaceTemplateConsolidationData> subInterfaceConsolidationData =
+        Multimaps.synchronizedListMultimap(ArrayListMultimap.create());
+
+  public void addSubInterfaceConsolidationData(String subPortType,
+                                               SubInterfaceTemplateConsolidationData
+                                                   subInterfaceTemplateConsolidationData) {
+    this.subInterfaceConsolidationData.put(subPortType, subInterfaceTemplateConsolidationData);
+  }
+
+  public boolean hasSameSubInterfaceTypes(PortTemplateConsolidationData other) {
+    return other != null && this.subInterfaceConsolidationData.keySet().equals(
+        other.subInterfaceConsolidationData.keySet());
+  }
+
+    public void copyMappedInto(ListMultimap<String, SubInterfaceTemplateConsolidationData> subInterfaceTypeToEntity) {
+    subInterfaceTypeToEntity.putAll(this.subInterfaceConsolidationData);
+  }
+
+    public void copyFlatInto(List<SubInterfaceTemplateConsolidationData> subInterfaceTemplateConsolidationDataList) {
+        subInterfaceTemplateConsolidationDataList.addAll(subInterfaceConsolidationData.values());
+    }
+
+  public boolean isNumberOfSubInterfacesPerTypeSimilar(PortTemplateConsolidationData other) {
+
+    if (this.subInterfaceConsolidationData.isEmpty() &&
+        other.subInterfaceConsolidationData.isEmpty()) {
+      return true;
+    }
 
-  /**
-   * Gets sub port ids.
-   *
-   * @return the sub port ids
-   */
-  public List<String> getSubPortIds() {
-    return subPortIds;
+    return !this.subInterfaceConsolidationData.isEmpty()
+        && !other.subInterfaceConsolidationData.isEmpty()
+        && this.subInterfaceConsolidationData.keySet().stream().allMatch(subInterfaceType ->
+        calculateSize(other.subInterfaceConsolidationData.get(subInterfaceType)) ==
+            calculateSize(this.subInterfaceConsolidationData.get(subInterfaceType)));
   }
 
-  /**
-   * Sets sub port ids.
-   *
-   * @param subPortIds the sub port ids
-   */
-  public void setSubPortIds(List<String> subPortIds) {
-    this.subPortIds = subPortIds;
+  private int calculateSize(List<SubInterfaceTemplateConsolidationData> subInterfaces) {
+    return subInterfaces == null ? 0 : subInterfaces.size();
   }
 }
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/SubInterfaceTemplateConsolidationData.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/SubInterfaceTemplateConsolidationData.java
new file mode 100644 (file)
index 0000000..9a6826d
--- /dev/null
@@ -0,0 +1,51 @@
+/*
+ * Copyright © 2016-2018 European Support Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation;
+
+public class SubInterfaceTemplateConsolidationData extends EntityConsolidationData {
+
+  //Value of the property count in the resource group representing the sub-interface
+  private Object resourceGroupCount;
+  //Network role of the sub-interface
+  private String networkRole;
+  //Parent port node template id
+  private String parentPortNodeTemplateId;
+
+  public Object getResourceGroupCount() {
+    return resourceGroupCount;
+  }
+
+  public void setResourceGroupCount(Object resourceGroupCount) {
+    this.resourceGroupCount = resourceGroupCount;
+  }
+
+  public String getNetworkRole() {
+    return networkRole;
+  }
+
+  public void setNetworkRole(String networkRole) {
+    this.networkRole = networkRole;
+  }
+
+  public String getParentPortNodeTemplateId() {
+    return parentPortNodeTemplateId;
+  }
+
+  public void setParentPortNodeTemplateId(String parentPortNodeTemplateId) {
+    this.parentPortNodeTemplateId = parentPortNodeTemplateId;
+  }
+}
index 3fef3f9..bc5a3c7 100644 (file)
@@ -1,7 +1,26 @@
+/*
+ * Copyright © 2016-2018 European Support Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 package org.openecomp.sdc.translator.services.heattotosca;
 
+import com.google.common.collect.ArrayListMultimap;
+import com.google.common.collect.ListMultimap;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.collections4.MapUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.openecomp.sdc.common.errors.CoreException;
 import org.openecomp.sdc.tosca.datatypes.model.NodeTemplate;
 import org.openecomp.sdc.tosca.datatypes.model.ServiceTemplate;
@@ -21,6 +40,7 @@ import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolida
 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.NestedTemplateConsolidationData;
 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.PortTemplateConsolidationData;
 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.RequirementAssignmentData;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.SubInterfaceTemplateConsolidationData;
 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.TypeComputeConsolidationData;
 import org.openecomp.sdc.translator.services.heattotosca.errors.DuplicateResourceIdsInDifferentFilesErrorBuilder;
 
@@ -34,7 +54,9 @@ import java.util.List;
 import java.util.Map;
 import java.util.Objects;
 import java.util.Set;
+import java.util.function.Function;
 import java.util.function.Predicate;
+import java.util.stream.Collectors;
 
 public class ConsolidationService {
 
@@ -165,7 +187,8 @@ public class ConsolidationService {
               consolidationData);
 
       if (!(checkGetAttrOutFromEntityToPortIsLegal(portTemplateConsolidationDataList, portTypeToIds)
-          && checkGetAttrOutFromPortToComputeIsLegal(portTemplateConsolidationDataList,
+          && checkGetAttrOutFromConsolidationEntityToEntityNotFromSameTypeIsLegal(
+          portTemplateConsolidationDataList,
           computeNodeTemplateIds))) {
         return false;
       }
@@ -178,6 +201,9 @@ public class ConsolidationService {
                                                          Map<String, List<String>> portTypeToIds) {
 
     for (String portType : portTypeToIds.keySet()) {
+      if (CollectionUtils.isEmpty(entities)) {
+        continue;
+      }
       Set<GetAttrFuncData> startingGetAttrFunc =
           getEntityGetAttrFuncAsSet(portType,
               (EntityConsolidationData) entities.iterator().next());
@@ -194,24 +220,27 @@ public class ConsolidationService {
     return true;
   }
 
-  private boolean checkGetAttrOutFromPortToComputeIsLegal(
-      List<PortTemplateConsolidationData> portTemplateConsolidationDataList,
-      Collection<String> computeNodeTemplateIds) {
-    PortTemplateConsolidationData startingPortTemplate =
-        portTemplateConsolidationDataList.get(0);
-    Map<String, Set<GetAttrFuncData>> startingComputeGetAttrOutFuncData =
-        getComputeGetAttrOutFuncData(startingPortTemplate.getNodesGetAttrOut(),
-            computeNodeTemplateIds);
-
-    for (int i = 1; i < portTemplateConsolidationDataList.size(); i++) {
-      PortTemplateConsolidationData currentPortTemplate =
-          portTemplateConsolidationDataList.get(i);
-      Map<String, Set<GetAttrFuncData>> currentComputeGetAttrOutFuncData =
-          getComputeGetAttrOutFuncData(currentPortTemplate.getNodesGetAttrOut(),
-              computeNodeTemplateIds);
-
-      if (!isGetAttrRelationToComputeSimilarBetweenEntities(startingComputeGetAttrOutFuncData,
-          currentComputeGetAttrOutFuncData)) {
+  private boolean checkGetAttrOutFromConsolidationEntityToEntityNotFromSameTypeIsLegal(
+      List entityConsolidationDataList,
+      Collection<String> consolidationEntityNodeTemplateIds) {
+    if (CollectionUtils.isEmpty(entityConsolidationDataList)) {
+      return true;
+    }
+    EntityConsolidationData startingEntityTemplate =
+        (EntityConsolidationData) entityConsolidationDataList.get(0);
+    Map<String, Set<GetAttrFuncData>> startingGetAttrOutFuncData =
+        getConsolidationEntityGetAttrOutFuncData(startingEntityTemplate.getNodesGetAttrOut(),
+            consolidationEntityNodeTemplateIds);
+
+    for (int i = 1; i < entityConsolidationDataList.size(); i++) {
+      EntityConsolidationData currentEntityTemplate =
+          (EntityConsolidationData) entityConsolidationDataList.get(i);
+      Map<String, Set<GetAttrFuncData>> currentGetAttrOutFuncData =
+          getConsolidationEntityGetAttrOutFuncData(currentEntityTemplate.getNodesGetAttrOut(),
+              consolidationEntityNodeTemplateIds);
+
+      if (!isGetAttrRelationToEntitySimilarBetweenEntities(startingGetAttrOutFuncData,
+          currentGetAttrOutFuncData)) {
         return false;
       }
     }
@@ -219,7 +248,7 @@ public class ConsolidationService {
     return true;
   }
 
-  private boolean isGetAttrRelationToComputeSimilarBetweenEntities(
+  private boolean isGetAttrRelationToEntitySimilarBetweenEntities(
       Map<String, Set<GetAttrFuncData>> firstMap,
       Map<String, Set<GetAttrFuncData>> secondMap) {
     if (MapUtils.isEmpty(firstMap) != MapUtils.isEmpty(secondMap)) {
@@ -231,6 +260,90 @@ public class ConsolidationService {
 
   }
 
+  private boolean checkSubInterfaceConsolidationPreCondition(ServiceTemplate serviceTemplate,
+                                                             ConsolidationData consolidationData,
+                                                             TypeComputeConsolidationData typeComputeConsolidationData) {
+    FilePortConsolidationData filePortConsolidationData =
+        consolidationData.getPortConsolidationData()
+            .getFilePortConsolidationData(ToscaUtil.getServiceTemplateFileName(serviceTemplate));
+
+    if (Objects.isNull(filePortConsolidationData)) {
+      return true;
+    }
+
+    Map<String, List<String>> portTypeToPortIds = UnifiedCompositionUtil
+        .collectAllPortsFromEachTypesFromComputes(
+            typeComputeConsolidationData.getAllComputeTemplateConsolidationData());
+
+    Collection<String> computeNodeTemplateIds =
+        typeComputeConsolidationData.getAllComputeNodeTemplateIds();
+
+    for (List<String> portIdsFromSameType : portTypeToPortIds.values()) {
+      List<PortTemplateConsolidationData> portTemplateConsolidationDataList =
+          getAllPortTemplateConsolidationData(portIdsFromSameType, filePortConsolidationData);
+
+      if (!areSubInterfacePreConditionRulesValid(portTypeToPortIds, computeNodeTemplateIds,
+          portTemplateConsolidationDataList, portTemplateConsolidationDataList.get(0))) {
+        return false;
+      }
+    }
+    return true;
+  }
+
+  private boolean areSubInterfacePreConditionRulesValid(Map<String, List<String>> portTypeToPortIds,
+                                                        Collection<String> computeNodeTemplateIds,
+                                                        List<PortTemplateConsolidationData> portTemplateConsolidationDataList,
+                                                         PortTemplateConsolidationData subInterfaceConsolidationData) {
+    return areSubInterfaceTypesSimilarBetweenPorts(portTemplateConsolidationDataList,
+        subInterfaceConsolidationData)
+        && isNumberOfSubInterfacesPerTypeSimilar(portTemplateConsolidationDataList,
+        subInterfaceConsolidationData)
+        && isGetAttrFromSubInterfaceToOtherEntitiesLegal(computeNodeTemplateIds,
+        portTypeToPortIds, portTemplateConsolidationDataList);
+  }
+
+  private boolean isGetAttrFromSubInterfaceToOtherEntitiesLegal(
+      Collection<String> computeNodeTemplateIds,
+      Map<String, List<String>> portTypeToPortIds,
+      List<PortTemplateConsolidationData> portTemplateConsolidationDataList) {
+
+    ListMultimap<String, SubInterfaceTemplateConsolidationData> subInterfacesFromSameTypeFromPorts =
+        collectAllSubInterfacesFromSameTypeFromPorts(portTemplateConsolidationDataList);
+
+    List<SubInterfaceTemplateConsolidationData> subInterfaceList = new ArrayList<>(subInterfacesFromSameTypeFromPorts
+        .values());
+    return areGetAttrRelationshipsBetweenSubInterfaceToConsolidationEntitiesValid(
+        computeNodeTemplateIds, portTypeToPortIds, portTemplateConsolidationDataList, subInterfaceList);
+  }
+
+  private boolean areGetAttrRelationshipsBetweenSubInterfaceToConsolidationEntitiesValid(
+      Collection<String> computeNodeTemplateIds, Map<String, List<String>> portTypeToPortIds,
+      List<PortTemplateConsolidationData> portTemplateConsolidationDataList,
+      List<SubInterfaceTemplateConsolidationData> subInterfaceList) {
+    return checkGetAttrOutFromEntityToPortIsLegal(subInterfaceList, portTypeToPortIds)
+        && checkGetAttrOutFromConsolidationEntityToEntityNotFromSameTypeIsLegal(
+        portTemplateConsolidationDataList, getSubInterfaceIdsFromSameType(subInterfaceList))
+        && checkGetAttrOutFromConsolidationEntityToEntityNotFromSameTypeIsLegal(
+        subInterfaceList, computeNodeTemplateIds);
+  }
+
+  private boolean areSubInterfaceTypesSimilarBetweenPorts(
+      List<PortTemplateConsolidationData> portTemplateConsolidationDataList,
+      PortTemplateConsolidationData subInterfaceConsolidationData) {
+
+    return portTemplateConsolidationDataList.stream().allMatch(
+        element -> element.hasSameSubInterfaceTypes(subInterfaceConsolidationData));
+  }
+
+  private boolean isNumberOfSubInterfacesPerTypeSimilar(
+      List<PortTemplateConsolidationData> portTemplateConsolidationDataList,
+      PortTemplateConsolidationData subInterfaceConsolidationData) {
+
+    return portTemplateConsolidationDataList.stream()
+        .allMatch(element -> element.isNumberOfSubInterfacesPerTypeSimilar(subInterfaceConsolidationData));
+  }
+
+
   private Set<GetAttrFuncData> getEntityGetAttrFuncAsSet(
       String portType,
       EntityConsolidationData entityConsolidationData) {
@@ -252,7 +365,7 @@ public class ConsolidationService {
     return getAttrFuncDataFromPortsWithSameType;
   }
 
-  private Map<String, Set<GetAttrFuncData>> getComputeGetAttrOutFuncData(
+  private Map<String, Set<GetAttrFuncData>> getConsolidationEntityGetAttrOutFuncData(
       Map<String, List<GetAttrFuncData>> nodesGetAttrOut,
       Collection<String> computeNodeTemplateIds) {
     Map<String, Set<GetAttrFuncData>> computeGetAttrFuncData = new HashMap<>();
@@ -275,13 +388,13 @@ public class ConsolidationService {
       ServiceTemplate serviceTemplate,
       TypeComputeConsolidationData typeComputeConsolidationData,
       ConsolidationData consolidationData) {
-    return checkGetAttrRelationsBetweenComputesOfSameType(typeComputeConsolidationData)
-        || checkGetAttrRelationsBetweenPortsOfTheSameType(serviceTemplate,
+    return areThereGetAttrRelationsBetweenComputesOfSameType(typeComputeConsolidationData)
+        || areThereGetAttrRelationsBetweenPortsOfTheSameType(serviceTemplate,
         typeComputeConsolidationData, consolidationData);
 
   }
 
-  private boolean checkGetAttrRelationsBetweenComputesOfSameType(
+  private boolean areThereGetAttrRelationsBetweenComputesOfSameType(
       TypeComputeConsolidationData typeComputeConsolidationData) {
 
     Collection<ComputeTemplateConsolidationData> computeTemplateConsolidationEntities =
@@ -290,10 +403,11 @@ public class ConsolidationService {
         typeComputeConsolidationData.getAllComputeNodeTemplateIds();
 
     return checkGetAttrRelationsForEntityConsolidationData(
-        computeTemplateConsolidationEntities, computeNodeTemplateIds);
+        computeTemplateConsolidationEntities, computeNodeTemplateIds,
+        EntityConsolidationData::getNodesGetAttrIn);
   }
 
-  private boolean checkGetAttrRelationsBetweenPortsOfTheSameType(
+  private boolean areThereGetAttrRelationsBetweenPortsOfTheSameType(
       ServiceTemplate serviceTemplate,
       TypeComputeConsolidationData typeComputeConsolidationData,
       ConsolidationData consolidationData) {
@@ -311,7 +425,7 @@ public class ConsolidationService {
       List<PortTemplateConsolidationData> portTemplateConsolidationDataOfSameType =
           getAllPortTemplateConsolidationData(portsOfTheSameTypeIds, filePortConsolidationData);
       if (!checkGetAttrRelationsForEntityConsolidationData(portTemplateConsolidationDataOfSameType,
-          portsOfTheSameTypeIds)) {
+          portsOfTheSameTypeIds, EntityConsolidationData::getNodesGetAttrIn)) {
         return false;
       }
     }
@@ -319,6 +433,17 @@ public class ConsolidationService {
     return true;
   }
 
+  private boolean areThereGetAttrRelationsBetweenSubInterfacesOfSameType(
+      List<String> subInterfacesIdsFromSameType,
+      List<SubInterfaceTemplateConsolidationData> subInterfaceList) {
+
+    return checkGetAttrRelationsForEntityConsolidationData(subInterfaceList,
+        subInterfacesIdsFromSameType, EntityConsolidationData::getNodesGetAttrIn)
+        || checkGetAttrRelationsForEntityConsolidationData(subInterfaceList,
+        subInterfacesIdsFromSameType, EntityConsolidationData::getNodesGetAttrOut);
+
+  }
+
   private List<PortTemplateConsolidationData> getAllPortTemplateConsolidationData(
       List<String> portsIds,
       FilePortConsolidationData filePortConsolidationData) {
@@ -335,21 +460,19 @@ public class ConsolidationService {
     return portTemplateConsolidationDataOfSameType;
   }
 
-  private boolean checkGetAttrRelationsForEntityConsolidationData(
-      Collection entities,
-      Collection<String> nodeTemplateIdsOfTheSameType) {
+  private boolean checkGetAttrRelationsForEntityConsolidationData(Collection entities,
+                                                                  Collection<String> nodeTemplateIdsOfTheSameType,
+                                                                  Function<EntityConsolidationData, Map<String, List<GetAttrFuncData>>> getAttrValuesMethod) {
     for (Object entity : entities) {
-      EntityConsolidationData currentEntity = (EntityConsolidationData) entity;
-      Set<String> getAttrInNodeIds =
-          currentEntity.getNodesGetAttrIn() == null ? new HashSet<>()
-              : currentEntity.getNodesGetAttrIn().keySet();
-      for (String nodeId : getAttrInNodeIds) {
-        if (nodeTemplateIdsOfTheSameType.contains(nodeId)) {
-          return true;
-        }
+      Map<String, List<GetAttrFuncData>> getAttrValue =
+          getAttrValuesMethod.apply((EntityConsolidationData) entity);
+      Set<String> getAttrNodeIds =
+          getAttrValue == null ? new HashSet<>()
+              : getAttrValue.keySet();
+      if (getAttrNodeIds.stream().anyMatch(nodeTemplateIdsOfTheSameType::contains)) {
+        return true;
       }
     }
-
     return false;
   }
 
@@ -404,22 +527,20 @@ public class ConsolidationService {
   private boolean compareNodeConnectivity(
       Map<String, List<RequirementAssignmentData>> firstEntityMap,
       Map<String, List<RequirementAssignmentData>> secondEntityMap) {
+
     if (MapUtils.isEmpty(firstEntityMap)
         && MapUtils.isEmpty(secondEntityMap)) {
       return true;
     }
-    if (!MapUtils.isEmpty(firstEntityMap)
-        && !MapUtils.isEmpty(secondEntityMap)) {
-      return firstEntityMap.keySet().equals(secondEntityMap.keySet());
-    }
-    return false;
+    return !MapUtils.isEmpty(firstEntityMap) && !MapUtils.isEmpty(secondEntityMap)
+        && firstEntityMap.keySet().equals(secondEntityMap.keySet());
   }
 
   private boolean checkGroupIdsRelations(EntityConsolidationData startingEntity,
                                          EntityConsolidationData currentEntity) {
-    return CollectionUtils.isEmpty(startingEntity.getGroupIds()) &&
-        CollectionUtils.isEmpty(currentEntity.getGroupIds()) ||
-        startingEntity.getGroupIds().equals(currentEntity.getGroupIds());
+    return CollectionUtils.isEmpty(startingEntity.getGroupIds())
+        && CollectionUtils.isEmpty(currentEntity.getGroupIds())
+        || startingEntity.getGroupIds().equals(currentEntity.getGroupIds());
 
   }
 
@@ -507,7 +628,8 @@ public class ConsolidationService {
           collectAllPortsTemplateConsolidationData(
               portIds, serviceTemplateName, consolidationData);
 
-      if (!checkEntityConsolidationDataRelations(portTemplateConsolidationDataList)) {
+      if (!checkEntityConsolidationDataRelations(portTemplateConsolidationDataList)
+          || !checkSubInterfaceRules(portTemplateConsolidationDataList)) {
         return false;
       }
     }
@@ -515,10 +637,68 @@ public class ConsolidationService {
     return true;
   }
 
-  private List<PortTemplateConsolidationData>
-  collectAllPortsTemplateConsolidationData(List<String> portIds,
-                                           String serviceTemplateName,
-                                           ConsolidationData consolidationData) {
+  private boolean checkSubInterfaceRules(List<PortTemplateConsolidationData>
+                                             portTemplateConsolidationDataList) {
+    ListMultimap<String, SubInterfaceTemplateConsolidationData> subInterfaceTypeToEntity =
+        collectAllSubInterfacesFromSameTypeFromPorts(portTemplateConsolidationDataList);
+    List<SubInterfaceTemplateConsolidationData> subInterfaceList = new ArrayList<>(subInterfaceTypeToEntity.values());
+    return areSubInterfacePropertiesAndRelationsValid(subInterfaceList);
+  }
+
+  private boolean areSubInterfacePropertiesAndRelationsValid(
+      List<SubInterfaceTemplateConsolidationData> subInterfaceList) {
+    return isResourceGroupPropertiesSimilarBetweenSubPorts(subInterfaceList)
+        && checkSubInterfaceRelations(subInterfaceList)
+        && !areThereGetAttrRelationsBetweenSubInterfacesOfSameType(
+        getSubInterfaceIdsFromSameType(subInterfaceList), subInterfaceList);
+  }
+
+  private boolean checkSubInterfaceRelations(List<SubInterfaceTemplateConsolidationData>
+                                                 subInterfaceList) {
+    return CollectionUtils.isEmpty(subInterfaceList)
+        || checkEntityConsolidationDataRelations(subInterfaceList);
+  }
+
+  private boolean isResourceGroupPropertiesSimilarBetweenSubPorts(
+      List<SubInterfaceTemplateConsolidationData> subInterfaceList) {
+    if (CollectionUtils.isEmpty(subInterfaceList)) {
+      return true;
+    }
+
+    SubInterfaceTemplateConsolidationData startingSubInterface = subInterfaceList.get(0);
+    for (SubInterfaceTemplateConsolidationData subInterface : subInterfaceList) {
+      if (!startingSubInterface.getResourceGroupCount().equals(subInterface.getResourceGroupCount())
+          || !StringUtils.equals(startingSubInterface.getNetworkRole(), subInterface.getNetworkRole())) {
+        return false;
+      }
+    }
+
+    return true;
+  }
+
+  private List<String> getSubInterfaceIdsFromSameType(List<SubInterfaceTemplateConsolidationData>
+                                                          subInterfaceList) {
+    if (CollectionUtils.isEmpty(subInterfaceList)) {
+      return new ArrayList<>();
+    }
+
+    return subInterfaceList.stream().map(SubInterfaceTemplateConsolidationData::getNodeTemplateId)
+        .collect(Collectors.toList());
+  }
+
+  private ListMultimap<String, SubInterfaceTemplateConsolidationData> collectAllSubInterfacesFromSameTypeFromPorts(
+      List<PortTemplateConsolidationData> portTemplateConsolidationDataList) {
+    ListMultimap<String, SubInterfaceTemplateConsolidationData>  subInterfaceTypeToEntity = ArrayListMultimap.create();
+    for (PortTemplateConsolidationData portTemplateConsolidationData : portTemplateConsolidationDataList) {
+      portTemplateConsolidationData.copyMappedInto(subInterfaceTypeToEntity);
+    }
+
+    return subInterfaceTypeToEntity;
+  }
+
+  private List<PortTemplateConsolidationData> collectAllPortsTemplateConsolidationData(List<String> portIds,
+                                                                                       String serviceTemplateName,
+                                                                                       ConsolidationData consolidationData) {
 
     FilePortConsolidationData filePortConsolidationData =
         consolidationData.getPortConsolidationData()
@@ -580,8 +760,7 @@ public class ConsolidationService {
             new DuplicateResourceIdsInDifferentFilesErrorBuilder(entityNodeTemplateIds.get(i))
                 .build());
       }
-      if (propertyExistCondition !=
-          isPropertyExistInNodeTemplate(propertyToCheck, currentNodeTemplate)) {
+      if (propertyExistCondition != isPropertyExistInNodeTemplate(propertyToCheck, currentNodeTemplate)) {
         return false;
       }
     }
@@ -628,8 +807,8 @@ public class ConsolidationService {
   }
 
   private boolean isPropertyExistInNodeTemplate(String propertyToCheck, NodeTemplate nodeTemplate) {
-    return !(nodeTemplate.getProperties() == null ||
-        nodeTemplate.getProperties().get(propertyToCheck) == null);
+    return !(nodeTemplate.getProperties() == null
+       || nodeTemplate.getProperties().get(propertyToCheck) == null);
   }
 
   void substitutionServiceTemplateConsolidation(String substituteNodeTemplateId,
@@ -727,12 +906,17 @@ public class ConsolidationService {
       FilePortConsolidationData filePortConsolidationData =
           consolidationData.getPortConsolidationData().getFilePortConsolidationData(ToscaUtil
               .getServiceTemplateFileName(serviceTemplate));
-
+      List<SubInterfaceTemplateConsolidationData> subInterfaceTemplateConsolidationDataList =
+          new ArrayList<>();
       for (List<String> portList : portCollection) {
         for (String portId : portList) {
           if (!Objects.isNull(filePortConsolidationData)) {
-            unifiedCompositionData.addPortTemplateConsolidationData(
-                (filePortConsolidationData.getPortTemplateConsolidationData(portId)));
+            PortTemplateConsolidationData portTemplateConsolidationData =
+                filePortConsolidationData.getPortTemplateConsolidationData(portId);
+            unifiedCompositionData.addPortTemplateConsolidationData(portTemplateConsolidationData);
+            if (portTemplateConsolidationData != null) {
+              portTemplateConsolidationData.copyFlatInto(subInterfaceTemplateConsolidationDataList);
+            }
           }
         }
       }
@@ -773,7 +957,9 @@ public class ConsolidationService {
         && isNumberOfPortFromEachTypeLegal(typeComputeConsolidationData)
         && isPortTypesEqualsBetweenComputeNodes(typeComputeConsolidationData)
         && checkGetAttrBetweenConsolidationDataEntitiesNotFromSameType(serviceTemplate,
-        typeComputeConsolidationData, consolidationData));
+        typeComputeConsolidationData, consolidationData)
+        && checkSubInterfaceConsolidationPreCondition(serviceTemplate, consolidationData,
+        typeComputeConsolidationData));
 
   }
 
@@ -788,7 +974,8 @@ public class ConsolidationService {
         getNumberOfPortsPerCompute(typeComputeConsolidationData
             .getAllComputeTemplateConsolidationData().iterator().next());
 
-    for (ComputeTemplateConsolidationData compute : typeComputeConsolidationData.getAllComputeTemplateConsolidationData()) {
+    for (ComputeTemplateConsolidationData compute : typeComputeConsolidationData
+        .getAllComputeTemplateConsolidationData()) {
       if (getNumberOfPortsPerCompute(compute) != startingNumberOfPorts) {
         return false;
       }
@@ -821,9 +1008,11 @@ public class ConsolidationService {
 
   private boolean isPortTypesEqualsBetweenComputeNodes(
       TypeComputeConsolidationData typeComputeConsolidationData) {
-    Set<String> staringPortIds = getPortsIds(typeComputeConsolidationData.getAllComputeTemplateConsolidationData().iterator().next());
+    Set<String> staringPortIds = getPortsIds(
+        typeComputeConsolidationData.getAllComputeTemplateConsolidationData().iterator().next());
 
-    for (ComputeTemplateConsolidationData compute : typeComputeConsolidationData.getAllComputeTemplateConsolidationData()) {
+    for (ComputeTemplateConsolidationData compute : typeComputeConsolidationData
+        .getAllComputeTemplateConsolidationData()) {
       Set<String> currentPortIds = getPortsIds(compute);
       if (!currentPortIds.equals(staringPortIds)) {
         return false;
@@ -887,5 +1076,6 @@ public class ConsolidationService {
 
     return propertiesThatNeedToHaveSameUsage;
   }
+
 }
 
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/SubInterfaceConsolidationDataTestInfo.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/SubInterfaceConsolidationDataTestInfo.java
new file mode 100644 (file)
index 0000000..2092eb7
--- /dev/null
@@ -0,0 +1,86 @@
+package org.openecomp.sdc.translator;
+
+import org.apache.commons.lang3.tuple.Pair;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.ConsolidationData;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.GetAttrFuncData;
+
+import java.util.List;
+
+public class SubInterfaceConsolidationDataTestInfo {
+  private final String serviceTemplateFileName;
+  private final String portNodeTemplateId;
+  private final String subInterfaceType;
+  private final int resourceGroupCount;
+  private final String networkRole;
+  private final String subInterfaceId;
+  private final List<String> nodesConnectedIn;
+  private final List<String> nodesConnectedOut;
+  private final List<String> nodesGetAttrIn;
+  private final List<Pair<String, GetAttrFuncData>> nodesGetAttrOut;
+  private final ConsolidationData consolidationData;
+
+  public SubInterfaceConsolidationDataTestInfo(String serviceTemplateFileName,
+                                               String portNodeTemplateId, String subInterfaceType,
+                                               int resourceGroupCount, String networkRole,
+                                               String subInterfaceId, List<String> nodesConnectedIn,
+                                               List<String> nodesConnectedOut,
+                                               List<String> nodesGetAttrIn,
+                                               List<Pair<String, GetAttrFuncData>> nodesGetAttrOut,
+                                               ConsolidationData consolidationData) {
+    this.serviceTemplateFileName = serviceTemplateFileName;
+    this.portNodeTemplateId = portNodeTemplateId;
+    this.subInterfaceType = subInterfaceType;
+    this.resourceGroupCount = resourceGroupCount;
+    this.networkRole = networkRole;
+    this.subInterfaceId = subInterfaceId;
+    this.nodesConnectedIn = nodesConnectedIn;
+    this.nodesConnectedOut = nodesConnectedOut;
+    this.nodesGetAttrIn = nodesGetAttrIn;
+    this.nodesGetAttrOut = nodesGetAttrOut;
+    this.consolidationData = consolidationData;
+  }
+
+  public String getServiceTemplateFileName() {
+    return serviceTemplateFileName;
+  }
+
+  public String getPortNodeTemplateId() {
+    return portNodeTemplateId;
+  }
+
+  public String getSubInterfaceType() {
+    return subInterfaceType;
+  }
+
+  public int getResourceGroupCount() {
+    return resourceGroupCount;
+  }
+
+  public String getNetworkRole() {
+    return networkRole;
+  }
+
+  public String getSubInterfaceId() {
+    return subInterfaceId;
+  }
+
+  public List<String> getNodesConnectedIn() {
+    return nodesConnectedIn;
+  }
+
+  public List<String> getNodesConnectedOut() {
+    return nodesConnectedOut;
+  }
+
+  public List<String> getNodesGetAttrIn() {
+    return nodesGetAttrIn;
+  }
+
+  public List<Pair<String, GetAttrFuncData>> getNodesGetAttrOut() {
+    return nodesGetAttrOut;
+  }
+
+  public ConsolidationData getConsolidationData() {
+    return consolidationData;
+  }
+}
index c7d3931..1f7167c 100644 (file)
@@ -1,21 +1,17 @@
-/*-
- * ============LICENSE_START=======================================================
- * SDC
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
+/*
+ * Copyright © 2016-2017 European Support Limited
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
- * ============LICENSE_END=========================================================
  */
 
 package org.openecomp.sdc.translator;
@@ -48,6 +44,7 @@ import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolida
 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.NestedTemplateConsolidationData;
 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.PortTemplateConsolidationData;
 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.RequirementAssignmentData;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.SubInterfaceTemplateConsolidationData;
 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.TypeComputeConsolidationData;
 
 import java.io.File;
@@ -103,13 +100,14 @@ public class TestUtils {
 
   /**
    * Get tosca service template models for the files in a directory
+   *
    * @param baseDirPath base directory for the tosca file
    * @return Map of <ServiceTemplateFilename, ServiceTemplate> for the files in this directory
    */
-  public static Map<String, ServiceTemplate> getServiceTemplates(String baseDirPath){
+  private static Map<String, ServiceTemplate> getServiceTemplates(String baseDirPath) {
     Map<String, ServiceTemplate> serviceTemplateMap = new HashMap<>();
     ToscaExtensionYamlUtil toscaExtensionYamlUtil = new ToscaExtensionYamlUtil();
-    baseDirPath = "."+baseDirPath+"/";
+    baseDirPath = "." + baseDirPath + "/";
     try {
       String[] fileList = {};
       URL filesDirUrl = TestUtils.class.getClassLoader().getResource(baseDirPath);
@@ -118,16 +116,16 @@ public class TestUtils {
       } else {
         Assert.fail("Invalid expected output files directory");
       }
-      for (int i = 0; i < fileList.length; i++) {
+      for (String fileName : fileList) {
 
-        URL resource = TestUtils.class.getClassLoader().getResource(baseDirPath + fileList[i]);
+        URL resource = TestUtils.class.getClassLoader().getResource(baseDirPath + fileName);
         ServiceTemplate serviceTemplate = FileUtils.readViaInputStream(resource,
-                        stream -> toscaExtensionYamlUtil.yamlToObject(stream, ServiceTemplate.class));
+            stream -> toscaExtensionYamlUtil.yamlToObject(stream, ServiceTemplate.class));
 
-        serviceTemplateMap.put(fileList[i], serviceTemplate);
+        serviceTemplateMap.put(fileName, serviceTemplate);
       }
     } catch (Exception e) {
-      logger.debug("",e);
+      logger.debug("", e);
       Assert.fail(e.getMessage());
     }
     return serviceTemplateMap;
@@ -135,14 +133,15 @@ public class TestUtils {
 
   /**
    * Get tosca service template models
+   *
    * @param expectedResultMap Map of filename and payload of the expected result files
    * @return Map of <ServiceTemplateFilename, ServiceTemplate> for the files in this directory
    */
   public static Map<String, ServiceTemplate> getServiceTemplates(Map<String, byte[]>
-                                                                     expectedResultMap){
+                                                                     expectedResultMap) {
     Map<String, ServiceTemplate> serviceTemplateMap = new HashMap<>();
     ToscaExtensionYamlUtil toscaExtensionYamlUtil = new ToscaExtensionYamlUtil();
-    for(String fileName : expectedResultMap.keySet()){
+    for (String fileName : expectedResultMap.keySet()) {
       ServiceTemplate serviceTemplate = toscaExtensionYamlUtil.yamlToObject
           (new String(expectedResultMap.get(fileName)), ServiceTemplate.class);
       serviceTemplateMap.put(fileName, serviceTemplate);
@@ -181,11 +180,12 @@ public class TestUtils {
         try (InputStream yamlFile = new FileInputStream(file)) {
           serviceTemplateFromYaml =
               toscaExtensionYamlUtil.yamlToObject(yamlFile, ServiceTemplate.class);
-          createConcreteRequirementObjectsInServiceTemplate(serviceTemplateFromYaml, toscaExtensionYamlUtil);
+          createConcreteRequirementObjectsInServiceTemplate(serviceTemplateFromYaml,
+              toscaExtensionYamlUtil);
           try {
             yamlFile.close();
           } catch (IOException ignore) {
-            logger.debug("",ignore);
+            logger.debug("", ignore);
           }
         } catch (FileNotFoundException e) {
           throw e;
@@ -226,12 +226,13 @@ public class TestUtils {
       try (InputStream yamlFile = new FileInputStream(file)) {
         ServiceTemplate serviceTemplateFromYaml =
             toscaExtensionYamlUtil.yamlToObject(yamlFile, ServiceTemplate.class);
-        createConcreteRequirementObjectsInServiceTemplate(serviceTemplateFromYaml, toscaExtensionYamlUtil);
+        createConcreteRequirementObjectsInServiceTemplate(serviceTemplateFromYaml,
+            toscaExtensionYamlUtil);
         serviceTemplates.put(file.getName(), serviceTemplateFromYaml);
         try {
           yamlFile.close();
         } catch (IOException ignore) {
-          logger.debug("",ignore);
+          logger.debug("", ignore);
         }
       } catch (FileNotFoundException e) {
         throw e;
@@ -242,9 +243,9 @@ public class TestUtils {
   }
 
   private static void createConcreteRequirementObjectsInServiceTemplate(ServiceTemplate
-                                                                          serviceTemplateFromYaml,
-                                                                      ToscaExtensionYamlUtil
-                                                                          toscaExtensionYamlUtil) {
+                                                                            serviceTemplateFromYaml,
+                                                                        ToscaExtensionYamlUtil
+                                                                            toscaExtensionYamlUtil) {
 
     if (serviceTemplateFromYaml == null
         || serviceTemplateFromYaml.getTopology_template() == null
@@ -262,7 +263,7 @@ public class TestUtils {
       if (requirements != null) {
         ListIterator<Map<String, RequirementAssignment>> reqListIterator = requirements
             .listIterator();
-        while (reqListIterator.hasNext()){
+        while (reqListIterator.hasNext()) {
           Map<String, RequirementAssignment> requirement = reqListIterator.next();
           Map<String, RequirementAssignment> concreteRequirement = new HashMap<>();
           for (Map.Entry<String, RequirementAssignment> reqEntry : requirement.entrySet()) {
@@ -290,14 +291,39 @@ public class TestUtils {
                                                           List<List<String>> groupIds,
                                                           List<List<String>> getAttrInIds,
                                                           List<List<Pair<String, GetAttrFuncData>>> getAttrOutFuncDataList,
-                                                          ConsolidationData consolidationData){
-    for(int i = 0; i < portNodeTemplateIds.size(); i++){
+                                                          ConsolidationData consolidationData) {
+    for (int i = 0; i < portNodeTemplateIds.size(); i++) {
       updatePortConsolidationData(serviceTemplateName, portNodeTemplateIds.get(i),
           nodesConnectedInIds.get(i), nodesConnectedOutIds.get(i),
-          groupIds.get(i), getAttrInIds.get(i),getAttrOutFuncDataList.get(i), consolidationData);
+          groupIds.get(i), getAttrInIds.get(i), getAttrOutFuncDataList.get(i), consolidationData);
     }
   }
 
+  public static void addPortSubInterface(
+      SubInterfaceConsolidationDataTestInfo subInterfaceConsolidationDataTestInfo) {
+    PortTemplateConsolidationData portTemplateConsolidationData =
+        subInterfaceConsolidationDataTestInfo.getConsolidationData().getPortConsolidationData().getFilePortConsolidationData
+            (subInterfaceConsolidationDataTestInfo.getServiceTemplateFileName()).getPortTemplateConsolidationData(
+            subInterfaceConsolidationDataTestInfo.getPortNodeTemplateId());
+
+    SubInterfaceTemplateConsolidationData subInterface =
+        new SubInterfaceTemplateConsolidationData();
+    subInterface.setNodeTemplateId(subInterfaceConsolidationDataTestInfo.getSubInterfaceId());
+    subInterface.setNetworkRole(subInterfaceConsolidationDataTestInfo.getNetworkRole());
+    subInterface.setResourceGroupCount(
+        subInterfaceConsolidationDataTestInfo.getResourceGroupCount());
+
+    updateRelationsForEntityConsolidationData(
+        subInterfaceConsolidationDataTestInfo.getNodesConnectedIn(),
+        subInterfaceConsolidationDataTestInfo.getNodesConnectedOut(), null,
+        subInterfaceConsolidationDataTestInfo.getNodesGetAttrIn(),
+        subInterfaceConsolidationDataTestInfo.getNodesGetAttrOut(), subInterface);
+
+    portTemplateConsolidationData.addSubInterfaceConsolidationData(
+        subInterfaceConsolidationDataTestInfo.getSubInterfaceType(), subInterface);
+
+  }
+
   public static void updatePortConsolidationData(String serviceTemplateFileName,
                                                  String portNodeTemplateId,
                                                  List<String> nodesConnectedInIds,
@@ -309,8 +335,9 @@ public class TestUtils {
     PortTemplateConsolidationData portTemplateConsolidationData =
         createPortTemplateConsolidationData(portNodeTemplateId);
 
-    updateRelationsForEntityConsolidationData(portNodeTemplateId, nodesConnectedInIds,
-        nodesConnectedOutIds, groupIds, getAttrInIds, getAttrOutFuncDataList, portTemplateConsolidationData);
+    updateRelationsForEntityConsolidationData(nodesConnectedInIds,
+        nodesConnectedOutIds, groupIds, getAttrInIds, getAttrOutFuncDataList,
+        portTemplateConsolidationData);
 
     consolidationData.getPortConsolidationData()
         .getFilePortConsolidationData(serviceTemplateFileName)
@@ -355,8 +382,9 @@ public class TestUtils {
     ComputeTemplateConsolidationData computeTemplateConsolidationData =
         createComputeTemplateConsolidationData(computeNodeTemplateId, portTypeToIdList, volumes);
 
-    updateRelationsForEntityConsolidationData(computeNodeTemplateId, nodeIdsConnectedIn,
-        nodeIdsConnectedOut, groupIds, getAttrInIds, getAttrOutIds, computeTemplateConsolidationData);
+    updateRelationsForEntityConsolidationData(nodeIdsConnectedIn,
+        nodeIdsConnectedOut, groupIds, getAttrInIds, getAttrOutIds,
+        computeTemplateConsolidationData);
 
     updateVolumes(computeTemplateConsolidationData, volumeIds);
 
@@ -367,27 +395,27 @@ public class TestUtils {
             computeTemplateConsolidationData);
   }
 
-  private static void updateRelationsForEntityConsolidationData(String entityNodeTemplateId,
-                                                                List<String> nodeIdsConnectedIn,
+  private static void updateRelationsForEntityConsolidationData(List<String> nodeIdsConnectedIn,
                                                                 List<String> nodeIdsConnectedOut,
                                                                 List<String> groupIds,
                                                                 List<String> getAttrInIds,
                                                                 List<Pair<String, GetAttrFuncData>> getAttrOutFuncDataList,
                                                                 EntityConsolidationData entity) {
     updateRelationsIn(entity, nodeIdsConnectedIn);
-    updateRelationsOut(entity, entityNodeTemplateId, nodeIdsConnectedOut);
+    updateRelationsOut(entity, nodeIdsConnectedOut);
     updateGetAttrIn(entity, getAttrInIds);
     updateGetAttrOut(entity, getAttrOutFuncDataList);
     entity.setGroupIds(groupIds);
   }
 
   public static void initComputeNodeTemplateIdInConsolidationData(String serviceTemplateFileName,
-                                                                   String computeNodeTypeName,
-                                                                   String computeNodeTemplateId,
-                                                                   ConsolidationData consolidationData) {
+                                                                  String computeNodeTypeName,
+                                                                  String computeNodeTemplateId,
+                                                                  ConsolidationData consolidationData) {
 
-    if(Objects.isNull(consolidationData.getComputeConsolidationData().getFileComputeConsolidationData
-        (serviceTemplateFileName))) {
+    if (Objects
+        .isNull(consolidationData.getComputeConsolidationData().getFileComputeConsolidationData
+            (serviceTemplateFileName))) {
       consolidationData.getComputeConsolidationData().setFileComputeConsolidationData
           (serviceTemplateFileName, new FileComputeConsolidationData());
     }
@@ -395,36 +423,42 @@ public class TestUtils {
         consolidationData.getComputeConsolidationData().getFileComputeConsolidationData
             (serviceTemplateFileName).getTypeComputeConsolidationData(computeNodeTypeName);
 
-    if(
-        typeComputeConsolidationData.getComputeTemplateConsolidationData(computeNodeTemplateId) == null) {
+    if (
+        typeComputeConsolidationData.getComputeTemplateConsolidationData(computeNodeTemplateId) ==
+            null) {
 
       consolidationData.getComputeConsolidationData()
           .getFileComputeConsolidationData(serviceTemplateFileName)
           .getTypeComputeConsolidationData(computeNodeTypeName)
-          .setComputeTemplateConsolidationData(computeNodeTemplateId, new ComputeTemplateConsolidationData());
+          .setComputeTemplateConsolidationData(computeNodeTemplateId,
+              new ComputeTemplateConsolidationData());
 
     }
   }
 
   public static void updateNestedConsolidationData(String serviceTemplateName,
                                                    List<String> substitutionNodeTemplateIds,
-                                                   ConsolidationData consolidationData){
-    if(Objects.isNull(consolidationData.getNestedConsolidationData())){
+                                                   ConsolidationData consolidationData) {
+    if (Objects.isNull(consolidationData.getNestedConsolidationData())) {
       consolidationData.setNestedConsolidationData(new NestedConsolidationData());
     }
 
     FileNestedConsolidationData fileNestedConsolidationData = new FileNestedConsolidationData();
-    for(String substitutionNodeTemplateId : substitutionNodeTemplateIds) {
-      NestedTemplateConsolidationData nestedTemplateConsolidationData = new NestedTemplateConsolidationData();
+    for (String substitutionNodeTemplateId : substitutionNodeTemplateIds) {
+      NestedTemplateConsolidationData nestedTemplateConsolidationData =
+          new NestedTemplateConsolidationData();
       nestedTemplateConsolidationData.setNodeTemplateId(substitutionNodeTemplateId);
-      fileNestedConsolidationData.setNestedTemplateConsolidationData(substitutionNodeTemplateId, nestedTemplateConsolidationData);
+      fileNestedConsolidationData.setNestedTemplateConsolidationData(substitutionNodeTemplateId,
+          nestedTemplateConsolidationData);
     }
-    consolidationData.getNestedConsolidationData().setFileNestedConsolidationData(serviceTemplateName, fileNestedConsolidationData);
+    consolidationData.getNestedConsolidationData()
+        .setFileNestedConsolidationData(serviceTemplateName, fileNestedConsolidationData);
   }
 
-  public static ComputeTemplateConsolidationData createComputeTemplateConsolidationData(String computeNodeTemplateId,
-                                                                                        List<Pair<String, String>> portTypeToIdList,
-                                                                                        Map<String,List<RequirementAssignmentData>> volumes) {
+  public static ComputeTemplateConsolidationData createComputeTemplateConsolidationData(
+      String computeNodeTemplateId,
+      List<Pair<String, String>> portTypeToIdList,
+      Map<String, List<RequirementAssignmentData>> volumes) {
     ComputeTemplateConsolidationData compute = new ComputeTemplateConsolidationData();
     compute.setNodeTemplateId(computeNodeTemplateId);
     if (portTypeToIdList != null) {
@@ -436,58 +470,58 @@ public class TestUtils {
     return compute;
   }
 
-  public static void updateRelationsIn(EntityConsolidationData entity,
-                                       List<String> idsPontingTome){
-    if(CollectionUtils.isEmpty(idsPontingTome)){
+  private static void updateRelationsIn(EntityConsolidationData entity,
+                                        List<String> idsPontingTome) {
+    if (CollectionUtils.isEmpty(idsPontingTome)) {
       return;
     }
 
-    for(String pointingId : idsPontingTome){
-      entity.addNodesConnectedIn(pointingId, entity.getNodeTemplateId(), new RequirementAssignment());
+    for (String pointingId : idsPontingTome) {
+      entity
+          .addNodesConnectedIn(pointingId, entity.getNodeTemplateId(), new RequirementAssignment());
     }
   }
 
-  public static void updateRelationsOut(EntityConsolidationData entity,
-                                        String nodeTemplateId,
-                                        List<String> idsToUpdate){
-    if(CollectionUtils.isEmpty(idsToUpdate)){
+  private static void updateRelationsOut(EntityConsolidationData entity,
+                                         List<String> idsToUpdate) {
+    if (CollectionUtils.isEmpty(idsToUpdate)) {
       return;
     }
 
-    for(String id : idsToUpdate){
+    for (String id : idsToUpdate) {
       entity.addNodesConnectedOut(id, id, new RequirementAssignment());
     }
   }
 
-  public static void updateGetAttrIn(EntityConsolidationData entity,
-                                     List<String> idsToUpdate){
-    if(CollectionUtils.isEmpty(idsToUpdate)){
+  private static void updateGetAttrIn(EntityConsolidationData entity,
+                                      List<String> idsToUpdate) {
+    if (CollectionUtils.isEmpty(idsToUpdate)) {
       return;
     }
 
-    for(String id : idsToUpdate){
+    for (String id : idsToUpdate) {
       entity.addNodesGetAttrIn(id, new GetAttrFuncData());
     }
   }
 
-  public static void updateGetAttrOut(EntityConsolidationData entity,
-                                      List<Pair<String, GetAttrFuncData>> getAttrOutIds){
-    if(CollectionUtils.isEmpty(getAttrOutIds)){
+  private static void updateGetAttrOut(EntityConsolidationData entity,
+                                       List<Pair<String, GetAttrFuncData>> getAttrOutIds) {
+    if (CollectionUtils.isEmpty(getAttrOutIds)) {
       return;
     }
 
-    for(Pair<String, GetAttrFuncData> getAttrOutFunc : getAttrOutIds){
+    for (Pair<String, GetAttrFuncData> getAttrOutFunc : getAttrOutIds) {
       entity.addNodesGetAttrOut(getAttrOutFunc.getLeft(), getAttrOutFunc.getRight());
     }
   }
 
-  public static void updateVolumes(ComputeTemplateConsolidationData compute,
-                                   List<String> volumeIds){
-    if(CollectionUtils.isEmpty(volumeIds)){
+  private static void updateVolumes(ComputeTemplateConsolidationData compute,
+                                    List<String> volumeIds) {
+    if (CollectionUtils.isEmpty(volumeIds)) {
       return;
     }
 
-    for(String id : volumeIds){
+    for (String id : volumeIds) {
       RequirementAssignment requirementAssignment = new RequirementAssignment();
       requirementAssignment.setNode(id);
       compute.addVolume(id, requirementAssignment);
@@ -552,9 +586,9 @@ public class TestUtils {
 
   public static void updatePortsInComputeTemplateConsolidationData(
       List<Pair<String, String>> portIdToTypeList, ComputeTemplateConsolidationData
-      compute){
+      compute) {
     compute.setPorts(new HashMap<>());
-    for(Pair<String, String> portIdToType : portIdToTypeList){
+    for (Pair<String, String> portIdToType : portIdToTypeList) {
       compute.getPorts().putIfAbsent(portIdToType.getLeft(), new ArrayList<>());
       compute.getPorts().get(portIdToType.getLeft()).add(portIdToType.getRight());
     }
@@ -607,12 +641,14 @@ public class TestUtils {
     for (Map.Entry<String, GroupDefinition> entry : groups.entrySet()) {
       String groupId = entry.getKey();
       GroupDefinition groupDefinition = entry.getValue();
-      if (groupDefinition.getType().contains("HeatStack"))
+      if (groupDefinition.getType().contains("HeatStack")) {
         continue;
+      }
       List<String> groupMembers = groupDefinition.getMembers();
       for (String member : groupMembers) {
-        if (groups.containsKey(member))
+        if (groups.containsKey(member)) {
           continue;
+        }
         if (member.equals(nodeTemplateId)) {
           entityGroups.add(groupId);
         }
@@ -656,5 +692,4 @@ public class TestUtils {
   }
 
 
-
 }
index 4af2415..63ce6b5 100644 (file)
@@ -1,11 +1,44 @@
 package org.openecomp.sdc.translator.services.heattotosca;
 
-/**
- * Created by TALIO on 3/7/2017.
- */
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+
+import org.apache.commons.lang3.tuple.ImmutablePair;
+import org.apache.commons.lang3.tuple.Pair;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Captor;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.MockitoAnnotations;
+import org.mockito.Spy;
+import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
+import org.openecomp.sdc.tosca.datatypes.model.ServiceTemplate;
+import org.openecomp.sdc.tosca.services.ToscaConstants;
+import org.openecomp.sdc.translator.SubInterfaceConsolidationDataTestInfo;
+import org.openecomp.sdc.translator.TestUtils;
+import org.openecomp.sdc.translator.datatypes.heattotosca.TranslationContext;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.UnifiedCompositionData;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.UnifiedCompositionMode;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.ConsolidationData;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.GetAttrFuncData;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
 public class ConsolidationServiceTest {
 
-  /*
+
   @Spy
   private TranslationContext translationContext = new TranslationContext();
   private static String mainST = "MainServiceTemplate.yaml";
@@ -65,7 +98,7 @@ public class ConsolidationServiceTest {
 
     translationContext.setConsolidationData(consolidationData);
     List<UnifiedCompositionMode> expectedUnifiedModes =
-        Arrays.asList(UnifiedCompositionMode.ScalingInstances);
+        Collections.singletonList(UnifiedCompositionMode.ScalingInstances);
 
     verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
   }
@@ -101,7 +134,7 @@ public class ConsolidationServiceTest {
 
     translationContext.setConsolidationData(consolidationData);
     List<UnifiedCompositionMode> expectedUnifiedModes =
-        Arrays.asList(UnifiedCompositionMode.SingleSubstitution);
+        Collections.singletonList(UnifiedCompositionMode.SingleSubstitution);
     verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
   }
 
@@ -137,7 +170,7 @@ public class ConsolidationServiceTest {
 
     translationContext.setConsolidationData(consolidationData);
     List<UnifiedCompositionMode> expectedUnifiedModes =
-        Arrays.asList(UnifiedCompositionMode.SingleSubstitution);
+        Collections.singletonList(UnifiedCompositionMode.SingleSubstitution);
     verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
   }
 
@@ -181,7 +214,7 @@ public class ConsolidationServiceTest {
 
     translationContext.setConsolidationData(consolidationData);
     List<UnifiedCompositionMode> expectedUnifiedModes =
-        Arrays.asList(UnifiedCompositionMode.SingleSubstitution);
+        Collections.singletonList(UnifiedCompositionMode.SingleSubstitution);
     verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
 
   }
@@ -230,7 +263,7 @@ public class ConsolidationServiceTest {
     translationContext.setConsolidationData(consolidationData);
 
     List<UnifiedCompositionMode> expectedUnifiedModes =
-        Arrays.asList(UnifiedCompositionMode.ScalingInstances);
+        Collections.singletonList(UnifiedCompositionMode.ScalingInstances);
     verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
   }
 
@@ -279,7 +312,7 @@ public class ConsolidationServiceTest {
 
     translationContext.setConsolidationData(consolidationData);
     List<UnifiedCompositionMode> expectedUnifiedModes =
-        Arrays.asList(UnifiedCompositionMode.SingleSubstitution);
+        Collections.singletonList(UnifiedCompositionMode.SingleSubstitution);
     verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
   }
 
@@ -376,8 +409,8 @@ public class ConsolidationServiceTest {
 
     translationContext.setConsolidationData(consolidationData);
     List<UnifiedCompositionMode> expectedUnifiedModes =
-        Arrays.asList(
-            UnifiedCompositionMode.ScalingInstances, UnifiedCompositionMode.SingleSubstitution);
+        Arrays.asList(UnifiedCompositionMode.ScalingInstances,
+            UnifiedCompositionMode.SingleSubstitution);
     verifyMainServiceTemplateConsolidation(2, expectedUnifiedModes, toscaServiceModel);
   }
 
@@ -424,7 +457,7 @@ public class ConsolidationServiceTest {
 
     translationContext.setConsolidationData(consolidationData);
     List<UnifiedCompositionMode> expectedUnifiedModes =
-        Arrays.asList(UnifiedCompositionMode.ScalingInstances);
+        Collections.singletonList(UnifiedCompositionMode.ScalingInstances);
     verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
   }
 
@@ -540,7 +573,7 @@ public class ConsolidationServiceTest {
 
     translationContext.setConsolidationData(consolidationData);
     List<UnifiedCompositionMode> expectedUnifiedModes =
-        Arrays.asList(UnifiedCompositionMode.CatalogInstance);
+        Collections.singletonList(UnifiedCompositionMode.CatalogInstance);
     verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
   }
 
@@ -584,7 +617,7 @@ public class ConsolidationServiceTest {
 
     translationContext.setConsolidationData(consolidationData);
     List<UnifiedCompositionMode> expectedUnifiedModes =
-        Arrays.asList(UnifiedCompositionMode.CatalogInstance);
+        Collections.singletonList(UnifiedCompositionMode.CatalogInstance);
     verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
   }
 
@@ -596,7 +629,8 @@ public class ConsolidationServiceTest {
         ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/one_exCP_naming_diff",
             null, null);
 
-    TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+    TestUtils
+        .initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
 
     List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
     portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
@@ -626,12 +660,12 @@ public class ConsolidationServiceTest {
 
     translationContext.setConsolidationData(consolidationData);
     List<UnifiedCompositionMode> expectedUnifiedModes =
-        Arrays.asList(UnifiedCompositionMode.CatalogInstance);
+        Collections.singletonList(UnifiedCompositionMode.CatalogInstance);
     verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
   }
 
   @Test
-  public void testFalsePortConsolidationForOneDiffExpcNaming(){
+  public void testFalsePortConsolidationForOneDiffExpcNaming() {
 
   }
 
@@ -674,7 +708,7 @@ public class ConsolidationServiceTest {
 
     translationContext.setConsolidationData(consolidationData);
     List<UnifiedCompositionMode> expectedUnifiedModes =
-        Arrays.asList(UnifiedCompositionMode.CatalogInstance);
+        Collections.singletonList(UnifiedCompositionMode.CatalogInstance);
     verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
   }
 
@@ -717,7 +751,7 @@ public class ConsolidationServiceTest {
 
     translationContext.setConsolidationData(consolidationData);
     List<UnifiedCompositionMode> expectedUnifiedModes =
-        Arrays.asList(UnifiedCompositionMode.CatalogInstance);
+        Collections.singletonList(UnifiedCompositionMode.CatalogInstance);
     verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
   }
 
@@ -760,7 +794,7 @@ public class ConsolidationServiceTest {
 
     translationContext.setConsolidationData(consolidationData);
     List<UnifiedCompositionMode> expectedUnifiedModes =
-        Arrays.asList(UnifiedCompositionMode.CatalogInstance);
+        Collections.singletonList(UnifiedCompositionMode.CatalogInstance);
     verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
   }
 
@@ -799,21 +833,24 @@ public class ConsolidationServiceTest {
 
     TestUtils.initPortConsolidationData(mainST, consolidationData);
     TestUtils.updatePortConsolidationData(mainST, "cm01_port_1",
-        Arrays.asList("node_in_1"), Arrays.asList("net_id_1"), Arrays.asList("group_id_1"), null,
+        Collections.singletonList("node_in_1"), Collections.singletonList("net_id_1"),
+        Collections.singletonList("group_id_1"), null,
         null,
         consolidationData);
     TestUtils.updatePortConsolidationData(mainST, "cm01_port_2",
-        Arrays.asList("node_in_1"), Arrays.asList("net_id_1"), Arrays.asList("group_id_1"), null,
+        Collections.singletonList("node_in_1"), Collections.singletonList("net_id_1"),
+        Collections.singletonList("group_id_1"), null,
         null,
         consolidationData);
     TestUtils.updatePortConsolidationData(mainST, "cm01_port_3",
-        Arrays.asList("node_in_1"), Arrays.asList("net_id_1"), Arrays.asList("group_id_1"), null,
+        Collections.singletonList("node_in_1"), Collections.singletonList("net_id_1"),
+        Collections.singletonList("group_id_1"), null,
         null,
         consolidationData);
 
     translationContext.setConsolidationData(consolidationData);
     List<UnifiedCompositionMode> expectedUnifiedModes =
-        Arrays.asList(UnifiedCompositionMode.ScalingInstances);
+        Collections.singletonList(UnifiedCompositionMode.ScalingInstances);
     verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
   }
 
@@ -832,8 +869,9 @@ public class ConsolidationServiceTest {
     portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
     TestUtils.updateComputeTemplateConsolidationData(
         mainST,
-        computeNodeTypeName, "server_ps01", Arrays.asList("cm01_port_1"),
-        Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id1"),
+        computeNodeTypeName, "server_ps01", Collections.singletonList("cm01_port_1"),
+        Collections.singletonList("cmaui_volume"), Collections.singletonList("cmaui_volume"),
+        Collections.singletonList("group_id1"),
         null, null,
         portTypeToIdList,
         consolidationData);
@@ -842,8 +880,9 @@ public class ConsolidationServiceTest {
     portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_2"));
     TestUtils.updateComputeTemplateConsolidationData(
         mainST,
-        computeNodeTypeName, "server_ps02", Arrays.asList("cm01_port_1"),
-        Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id1"),
+        computeNodeTypeName, "server_ps02", Collections.singletonList("cm01_port_1"),
+        Collections.singletonList("cmaui_volume"), Collections.singletonList("cmaui_volume"),
+        Collections.singletonList("group_id1"),
         null, null,
         portTypeToIdList,
         consolidationData);
@@ -852,30 +891,34 @@ public class ConsolidationServiceTest {
     portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_3"));
     TestUtils.updateComputeTemplateConsolidationData(
         mainST,
-        computeNodeTypeName, "server_ps03", Arrays.asList("cm01_port_1"),
-        Arrays.asList("cmaui_volume"),
-        Arrays.asList("cmaui_volume"), Arrays.asList("group_id1"), null, null,
+        computeNodeTypeName, "server_ps03", Collections.singletonList("cm01_port_1"),
+        Collections.singletonList("cmaui_volume"),
+        Collections.singletonList("cmaui_volume"), Collections.singletonList("group_id1"), null,
+        null,
         portTypeToIdList,
         consolidationData);
 
     TestUtils.initPortConsolidationData(mainST, consolidationData);
     TestUtils.updatePortConsolidationData(mainST, "cm01_port_1",
-        Arrays.asList("node_in_1"), Arrays.asList("net_id_1"), Arrays.asList("group_id_1"), null,
+        Collections.singletonList("node_in_1"), Collections.singletonList("net_id_1"),
+        Collections.singletonList("group_id_1"), null,
         null,
         consolidationData);
     TestUtils.updatePortConsolidationData(mainST, "cm01_port_2",
-        Arrays.asList("node_in_1"), Arrays.asList("net_id_1"), Arrays.asList("group_id_1"), null,
+        Collections.singletonList("node_in_1"), Collections.singletonList("net_id_1"),
+        Collections.singletonList("group_id_1"), null,
         null,
         consolidationData);
     TestUtils.updatePortConsolidationData(mainST, "cm01_port_3",
-        Arrays.asList("node_in_1"), Arrays.asList("net_id_1"), Arrays.asList("group_id_1"), null,
+        Collections.singletonList("node_in_1"), Collections.singletonList("net_id_1"),
+        Collections.singletonList("group_id_1"), null,
         null,
         consolidationData);
 
 
     translationContext.setConsolidationData(consolidationData);
     List<UnifiedCompositionMode> expectedUnifiedModes =
-        Arrays.asList(UnifiedCompositionMode.ScalingInstances);
+        Collections.singletonList(UnifiedCompositionMode.ScalingInstances);
     verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
   }
 
@@ -894,8 +937,10 @@ public class ConsolidationServiceTest {
     portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
     TestUtils.updateComputeTemplateConsolidationData(
         mainST,
-        computeNodeTypeName, "server_ps01", Arrays.asList("cm01_port_1"), Arrays.asList
-            ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id1"), null, null,
+        computeNodeTypeName, "server_ps01", Collections.singletonList("cm01_port_1"),
+        Collections.singletonList
+            ("cmaui_volume"), Collections.singletonList("cmaui_volume"),
+        Collections.singletonList("group_id1"), null, null,
         portTypeToIdList,
         consolidationData);
 
@@ -903,8 +948,9 @@ public class ConsolidationServiceTest {
     portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_2"));
     TestUtils.updateComputeTemplateConsolidationData(
         mainST,
-        computeNodeTypeName, "server_ps02", Arrays.asList("cm01_port_1"),
-        Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id1"),
+        computeNodeTypeName, "server_ps02", Collections.singletonList("cm01_port_1"),
+        Collections.singletonList("cmaui_volume"), Collections.singletonList("cmaui_volume"),
+        Collections.singletonList("group_id1"),
         null, null,
         portTypeToIdList,
         consolidationData);
@@ -913,8 +959,10 @@ public class ConsolidationServiceTest {
     portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_3"));
     TestUtils.updateComputeTemplateConsolidationData(
         mainST,
-        computeNodeTypeName, "server_ps03", Arrays.asList("cm01_port_2"), Arrays.asList
-            ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id1"), null, null,
+        computeNodeTypeName, "server_ps03", Collections.singletonList("cm01_port_2"),
+        Collections.singletonList
+            ("cmaui_volume"), Collections.singletonList("cmaui_volume"),
+        Collections.singletonList("group_id1"), null, null,
         portTypeToIdList,
         consolidationData);
 
@@ -925,7 +973,7 @@ public class ConsolidationServiceTest {
 
     translationContext.setConsolidationData(consolidationData);
     List<UnifiedCompositionMode> expectedUnifiedModes =
-        Arrays.asList(UnifiedCompositionMode.CatalogInstance);
+        Collections.singletonList(UnifiedCompositionMode.CatalogInstance);
     verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
   }
 
@@ -944,8 +992,10 @@ public class ConsolidationServiceTest {
     portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
     TestUtils.updateComputeTemplateConsolidationData(
         mainST,
-        computeNodeTypeName, "server_ps01", Arrays.asList("cm01_port_1"), Arrays.asList
-            ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id1"), null, null,
+        computeNodeTypeName, "server_ps01", Collections.singletonList("cm01_port_1"),
+        Collections.singletonList
+            ("cmaui_volume"), Collections.singletonList("cmaui_volume"),
+        Collections.singletonList("group_id1"), null, null,
         portTypeToIdList,
         consolidationData);
 
@@ -953,8 +1003,9 @@ public class ConsolidationServiceTest {
     portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_2"));
     TestUtils.updateComputeTemplateConsolidationData(
         mainST,
-        computeNodeTypeName, "server_ps02", Arrays.asList("cm01_port_1"),
-        Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id1"),
+        computeNodeTypeName, "server_ps02", Collections.singletonList("cm01_port_1"),
+        Collections.singletonList("cmaui_volume"), Collections.singletonList("cmaui_volume"),
+        Collections.singletonList("group_id1"),
         null, null,
         portTypeToIdList,
         consolidationData);
@@ -963,8 +1014,9 @@ public class ConsolidationServiceTest {
     portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_3"));
     TestUtils.updateComputeTemplateConsolidationData(
         mainST,
-        computeNodeTypeName, "server_ps03", Arrays.asList("cm01_port_1"),
-        Arrays.asList("cmaui_volume_1"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id1"),
+        computeNodeTypeName, "server_ps03", Collections.singletonList("cm01_port_1"),
+        Collections.singletonList("cmaui_volume_1"), Collections.singletonList("cmaui_volume"),
+        Collections.singletonList("group_id1"),
         null, null,
         portTypeToIdList,
         consolidationData);
@@ -976,7 +1028,7 @@ public class ConsolidationServiceTest {
 
     translationContext.setConsolidationData(consolidationData);
     List<UnifiedCompositionMode> expectedUnifiedModes =
-        Arrays.asList(UnifiedCompositionMode.CatalogInstance);
+        Collections.singletonList(UnifiedCompositionMode.CatalogInstance);
     verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
   }
 
@@ -995,8 +1047,10 @@ public class ConsolidationServiceTest {
     portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
     TestUtils.updateComputeTemplateConsolidationData(
         mainST,
-        computeNodeTypeName, "server_ps01", Arrays.asList("cm01_port_1"), Arrays.asList
-            ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id1"), null, null,
+        computeNodeTypeName, "server_ps01", Collections.singletonList("cm01_port_1"),
+        Collections.singletonList
+            ("cmaui_volume"), Collections.singletonList("cmaui_volume"),
+        Collections.singletonList("group_id1"), null, null,
         portTypeToIdList,
         consolidationData);
 
@@ -1004,8 +1058,9 @@ public class ConsolidationServiceTest {
     portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_2"));
     TestUtils.updateComputeTemplateConsolidationData(
         mainST,
-        computeNodeTypeName, "server_ps02", Arrays.asList("cm01_port_1"),
-        Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id1"),
+        computeNodeTypeName, "server_ps02", Collections.singletonList("cm01_port_1"),
+        Collections.singletonList("cmaui_volume"), Collections.singletonList("cmaui_volume"),
+        Collections.singletonList("group_id1"),
         null, null,
         portTypeToIdList,
         consolidationData);
@@ -1014,8 +1069,9 @@ public class ConsolidationServiceTest {
     portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_3"));
     TestUtils.updateComputeTemplateConsolidationData(
         mainST,
-        computeNodeTypeName, "server_ps03", Arrays.asList("cm01_port_1"),
-        Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume_1"), Arrays.asList("group_id1"),
+        computeNodeTypeName, "server_ps03", Collections.singletonList("cm01_port_1"),
+        Collections.singletonList("cmaui_volume"), Collections.singletonList("cmaui_volume_1"),
+        Collections.singletonList("group_id1"),
         null, null,
         portTypeToIdList,
         consolidationData);
@@ -1027,7 +1083,7 @@ public class ConsolidationServiceTest {
 
     translationContext.setConsolidationData(consolidationData);
     List<UnifiedCompositionMode> expectedUnifiedModes =
-        Arrays.asList(UnifiedCompositionMode.CatalogInstance);
+        Collections.singletonList(UnifiedCompositionMode.CatalogInstance);
     verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
   }
 
@@ -1046,8 +1102,10 @@ public class ConsolidationServiceTest {
     portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
     TestUtils.updateComputeTemplateConsolidationData(
         mainST,
-        computeNodeTypeName, "server_ps01", Arrays.asList("cm01_port_1"), Arrays.asList
-            ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"), null,
+        computeNodeTypeName, "server_ps01", Collections.singletonList("cm01_port_1"),
+        Collections.singletonList
+            ("cmaui_volume"), Collections.singletonList("cmaui_volume"),
+        Collections.singletonList("group_id_1"), null,
         null,
         portTypeToIdList,
         consolidationData);
@@ -1056,8 +1114,9 @@ public class ConsolidationServiceTest {
     portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_2"));
     TestUtils.updateComputeTemplateConsolidationData(
         mainST,
-        computeNodeTypeName, "server_ps02", Arrays.asList("cm01_port_1"),
-        Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
+        computeNodeTypeName, "server_ps02", Collections.singletonList("cm01_port_1"),
+        Collections.singletonList("cmaui_volume"), Collections.singletonList("cmaui_volume"),
+        Collections.singletonList("group_id_1"),
         null, null,
         portTypeToIdList,
         consolidationData);
@@ -1066,8 +1125,9 @@ public class ConsolidationServiceTest {
     portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_3"));
     TestUtils.updateComputeTemplateConsolidationData(
         mainST,
-        computeNodeTypeName, "server_ps03", Arrays.asList("cm01_port_1"),
-        Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_2"),
+        computeNodeTypeName, "server_ps03", Collections.singletonList("cm01_port_1"),
+        Collections.singletonList("cmaui_volume"), Collections.singletonList("cmaui_volume"),
+        Collections.singletonList("group_id_2"),
         null, null,
         portTypeToIdList,
         consolidationData);
@@ -1079,7 +1139,7 @@ public class ConsolidationServiceTest {
 
     translationContext.setConsolidationData(consolidationData);
     List<UnifiedCompositionMode> expectedUnifiedModes =
-        Arrays.asList(UnifiedCompositionMode.CatalogInstance);
+        Collections.singletonList(UnifiedCompositionMode.CatalogInstance);
     verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
   }
 
@@ -1098,8 +1158,10 @@ public class ConsolidationServiceTest {
     portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
     TestUtils.updateComputeTemplateConsolidationData(
         mainST,
-        computeNodeTypeName, "server_ps01", Arrays.asList("cm01_port_1"), Arrays.asList
-            ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"), null,
+        computeNodeTypeName, "server_ps01", Collections.singletonList("cm01_port_1"),
+        Collections.singletonList
+            ("cmaui_volume"), Collections.singletonList("cmaui_volume"),
+        Collections.singletonList("group_id_1"), null,
         null,
         portTypeToIdList,
         consolidationData);
@@ -1108,8 +1170,9 @@ public class ConsolidationServiceTest {
     portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_2"));
     TestUtils.updateComputeTemplateConsolidationData(
         mainST,
-        computeNodeTypeName, "server_ps02", Arrays.asList("cm01_port_1"),
-        Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
+        computeNodeTypeName, "server_ps02", Collections.singletonList("cm01_port_1"),
+        Collections.singletonList("cmaui_volume"), Collections.singletonList("cmaui_volume"),
+        Collections.singletonList("group_id_1"),
         null, null,
         portTypeToIdList,
         consolidationData);
@@ -1118,29 +1181,33 @@ public class ConsolidationServiceTest {
     portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_3"));
     TestUtils.updateComputeTemplateConsolidationData(
         mainST,
-        computeNodeTypeName, "server_ps03", Arrays.asList("cm01_port_1"),
-        Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
+        computeNodeTypeName, "server_ps03", Collections.singletonList("cm01_port_1"),
+        Collections.singletonList("cmaui_volume"), Collections.singletonList("cmaui_volume"),
+        Collections.singletonList("group_id_1"),
         null, null,
         portTypeToIdList,
         consolidationData);
 
     TestUtils.initPortConsolidationData(mainST, consolidationData);
     TestUtils.updatePortConsolidationData(mainST, "cm01_port_1",
-        Arrays.asList("node_in_1"), Arrays.asList("net_id_1"), Arrays.asList("group_id_1"), null,
+        Collections.singletonList("node_in_1"), Collections.singletonList("net_id_1"),
+        Collections.singletonList("group_id_1"), null,
         null,
         consolidationData);
     TestUtils.updatePortConsolidationData(mainST, "cm01_port_2",
-        Arrays.asList("node_in_1"), Arrays.asList("net_id_1"), Arrays.asList("group_id_1"), null,
+        Collections.singletonList("node_in_1"), Collections.singletonList("net_id_1"),
+        Collections.singletonList("group_id_1"), null,
         null,
         consolidationData);
     TestUtils.updatePortConsolidationData(mainST, "cm01_port_3",
-        Arrays.asList("node_in_1"), Arrays.asList("net_id_1"), Arrays.asList("group_id_1"), null,
+        Collections.singletonList("node_in_1"), Collections.singletonList("net_id_1"),
+        Collections.singletonList("group_id_1"), null,
         null,
         consolidationData);
 
     translationContext.setConsolidationData(consolidationData);
     List<UnifiedCompositionMode> expectedUnifiedModes =
-        Arrays.asList(UnifiedCompositionMode.ScalingInstances);
+        Collections.singletonList(UnifiedCompositionMode.ScalingInstances);
     verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
   }
 
@@ -1159,8 +1226,10 @@ public class ConsolidationServiceTest {
     portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
     TestUtils.updateComputeTemplateConsolidationData(
         mainST,
-        computeNodeTypeName, "server_ps01", Arrays.asList("cm01_port_1"), Arrays.asList
-            ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"), null,
+        computeNodeTypeName, "server_ps01", Collections.singletonList("cm01_port_1"),
+        Collections.singletonList
+            ("cmaui_volume"), Collections.singletonList("cmaui_volume"),
+        Collections.singletonList("group_id_1"), null,
         null,
         portTypeToIdList,
         consolidationData);
@@ -1169,8 +1238,9 @@ public class ConsolidationServiceTest {
     portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_2"));
     TestUtils.updateComputeTemplateConsolidationData(
         mainST,
-        computeNodeTypeName, "server_ps02", Arrays.asList("cm01_port_1"),
-        Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
+        computeNodeTypeName, "server_ps02", Collections.singletonList("cm01_port_1"),
+        Collections.singletonList("cmaui_volume"), Collections.singletonList("cmaui_volume"),
+        Collections.singletonList("group_id_1"),
         null, null,
         portTypeToIdList,
         consolidationData);
@@ -1179,29 +1249,33 @@ public class ConsolidationServiceTest {
     portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_3"));
     TestUtils.updateComputeTemplateConsolidationData(
         mainST,
-        computeNodeTypeName, "server_ps03", Arrays.asList("cm01_port_1"),
-        Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
+        computeNodeTypeName, "server_ps03", Collections.singletonList("cm01_port_1"),
+        Collections.singletonList("cmaui_volume"), Collections.singletonList("cmaui_volume"),
+        Collections.singletonList("group_id_1"),
         null, null,
         portTypeToIdList,
         consolidationData);
 
     TestUtils.initPortConsolidationData(mainST, consolidationData);
     TestUtils.updatePortConsolidationData(mainST, "cm01_port_1",
-        Arrays.asList("node_in_1"), Arrays.asList("net_id_1"), Arrays.asList("group_id_1"), null,
+        Collections.singletonList("node_in_1"), Collections.singletonList("net_id_1"),
+        Collections.singletonList("group_id_1"), null,
         null,
         consolidationData);
     TestUtils.updatePortConsolidationData(mainST, "cm01_port_2",
-        Arrays.asList("node_in_1"), Arrays.asList("net_id_1"), Arrays.asList("group_id_1"), null,
+        Collections.singletonList("node_in_1"), Collections.singletonList("net_id_1"),
+        Collections.singletonList("group_id_1"), null,
         null,
         consolidationData);
     TestUtils.updatePortConsolidationData(mainST, "cm01_port_3",
-        Arrays.asList("node_in_2"), Arrays.asList("net_id_1"), Arrays.asList("group_id_1"), null,
+        Collections.singletonList("node_in_2"), Collections.singletonList("net_id_1"),
+        Collections.singletonList("group_id_1"), null,
         null,
         consolidationData);
 
     translationContext.setConsolidationData(consolidationData);
     List<UnifiedCompositionMode> expectedUnifiedModes =
-        Arrays.asList(UnifiedCompositionMode.CatalogInstance);
+        Collections.singletonList(UnifiedCompositionMode.CatalogInstance);
     verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
   }
 
@@ -1220,8 +1294,10 @@ public class ConsolidationServiceTest {
     portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
     TestUtils.updateComputeTemplateConsolidationData(
         mainST,
-        computeNodeTypeName, "server_ps01", Arrays.asList("cm01_port_1"), Arrays.asList
-            ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"), null,
+        computeNodeTypeName, "server_ps01", Collections.singletonList("cm01_port_1"),
+        Collections.singletonList
+            ("cmaui_volume"), Collections.singletonList("cmaui_volume"),
+        Collections.singletonList("group_id_1"), null,
         null,
         portTypeToIdList,
         consolidationData);
@@ -1230,8 +1306,9 @@ public class ConsolidationServiceTest {
     portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_2"));
     TestUtils.updateComputeTemplateConsolidationData(
         mainST,
-        computeNodeTypeName, "server_ps02", Arrays.asList("cm01_port_1"),
-        Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
+        computeNodeTypeName, "server_ps02", Collections.singletonList("cm01_port_1"),
+        Collections.singletonList("cmaui_volume"), Collections.singletonList("cmaui_volume"),
+        Collections.singletonList("group_id_1"),
         null, null,
         portTypeToIdList,
         consolidationData);
@@ -1240,29 +1317,33 @@ public class ConsolidationServiceTest {
     portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_3"));
     TestUtils.updateComputeTemplateConsolidationData(
         mainST,
-        computeNodeTypeName, "server_ps03", Arrays.asList("cm01_port_1"),
-        Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
+        computeNodeTypeName, "server_ps03", Collections.singletonList("cm01_port_1"),
+        Collections.singletonList("cmaui_volume"), Collections.singletonList("cmaui_volume"),
+        Collections.singletonList("group_id_1"),
         null, null,
         portTypeToIdList,
         consolidationData);
 
     TestUtils.initPortConsolidationData(mainST, consolidationData);
     TestUtils.updatePortConsolidationData(mainST, "cm01_port_1",
-        Arrays.asList("node_in_1"), Arrays.asList("net_id_1"), Arrays.asList("group_id_1"), null,
+        Collections.singletonList("node_in_1"), Collections.singletonList("net_id_1"),
+        Collections.singletonList("group_id_1"), null,
         null,
         consolidationData);
     TestUtils.updatePortConsolidationData(mainST, "cm01_port_2",
-        Arrays.asList("node_in_1"), Arrays.asList("net_id_1"), Arrays.asList("group_id_1"), null,
+        Collections.singletonList("node_in_1"), Collections.singletonList("net_id_1"),
+        Collections.singletonList("group_id_1"), null,
         null,
         consolidationData);
     TestUtils.updatePortConsolidationData(mainST, "cm01_port_3",
-        Arrays.asList("node_in_1"), Arrays.asList("net_id_2"), Arrays.asList("group_id_1"), null,
+        Collections.singletonList("node_in_1"), Collections.singletonList("net_id_2"),
+        Collections.singletonList("group_id_1"), null,
         null,
         consolidationData);
 
     translationContext.setConsolidationData(consolidationData);
     List<UnifiedCompositionMode> expectedUnifiedModes =
-        Arrays.asList(UnifiedCompositionMode.CatalogInstance);
+        Collections.singletonList(UnifiedCompositionMode.CatalogInstance);
     verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
   }
 
@@ -1281,8 +1362,10 @@ public class ConsolidationServiceTest {
     portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
     TestUtils.updateComputeTemplateConsolidationData(
         mainST,
-        computeNodeTypeName, "server_ps01", Arrays.asList("cm01_port_1"), Arrays.asList
-            ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"), null,
+        computeNodeTypeName, "server_ps01", Collections.singletonList("cm01_port_1"),
+        Collections.singletonList
+            ("cmaui_volume"), Collections.singletonList("cmaui_volume"),
+        Collections.singletonList("group_id_1"), null,
         null,
         portTypeToIdList,
         consolidationData);
@@ -1291,8 +1374,9 @@ public class ConsolidationServiceTest {
     portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_2"));
     TestUtils.updateComputeTemplateConsolidationData(
         mainST,
-        computeNodeTypeName, "server_ps02", Arrays.asList("cm01_port_1"),
-        Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
+        computeNodeTypeName, "server_ps02", Collections.singletonList("cm01_port_1"),
+        Collections.singletonList("cmaui_volume"), Collections.singletonList("cmaui_volume"),
+        Collections.singletonList("group_id_1"),
         null, null,
         portTypeToIdList,
         consolidationData);
@@ -1301,29 +1385,30 @@ public class ConsolidationServiceTest {
     portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_3"));
     TestUtils.updateComputeTemplateConsolidationData(
         mainST,
-        computeNodeTypeName, "server_ps03", Arrays.asList("cm01_port_1"),
-        Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
+        computeNodeTypeName, "server_ps03", Collections.singletonList("cm01_port_1"),
+        Collections.singletonList("cmaui_volume"), Collections.singletonList("cmaui_volume"),
+        Collections.singletonList("group_id_1"),
         null, null,
         portTypeToIdList,
         consolidationData);
 
     TestUtils.initPortConsolidationData(mainST, consolidationData);
     TestUtils.updatePortConsolidationData(mainST, "cm01_port_1",
-        Arrays.asList("node_in_1"), Arrays.asList("net_id_1"),
+        Collections.singletonList("node_in_1"), Collections.singletonList("net_id_1"),
         Arrays.asList("group_id_1", "group_id_2"), null, null,
         consolidationData);
     TestUtils.updatePortConsolidationData(mainST, "cm01_port_2",
-        Arrays.asList("node_in_1"), Arrays.asList("net_id_1"),
+        Collections.singletonList("node_in_1"), Collections.singletonList("net_id_1"),
         Arrays.asList("group_id_1", "group_id_2"), null, null,
         consolidationData);
     TestUtils.updatePortConsolidationData(mainST, "cm01_port_3",
-        Arrays.asList("node_in_1"), Arrays.asList("net_id_1"),
+        Collections.singletonList("node_in_1"), Collections.singletonList("net_id_1"),
         Arrays.asList("group_id_1", "group_id_3"), null, null,
         consolidationData);
 
     translationContext.setConsolidationData(consolidationData);
     List<UnifiedCompositionMode> expectedUnifiedModes =
-        Arrays.asList(UnifiedCompositionMode.CatalogInstance);
+        Collections.singletonList(UnifiedCompositionMode.CatalogInstance);
     verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
   }
 
@@ -1343,9 +1428,11 @@ public class ConsolidationServiceTest {
 
     TestUtils.updateComputeTemplateConsolidationData(
         mainST,
-        computeNodeTypeName, "server_ps01", Arrays.asList("cm01_port_1"), Arrays.asList
-            ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
-        Arrays.asList("node_1"), null,
+        computeNodeTypeName, "server_ps01", Collections.singletonList("cm01_port_1"),
+        Collections.singletonList
+            ("cmaui_volume"), Collections.singletonList("cmaui_volume"),
+        Collections.singletonList("group_id_1"),
+        Collections.singletonList("node_1"), null,
         portTypeToIdList,
         consolidationData);
 
@@ -1353,9 +1440,10 @@ public class ConsolidationServiceTest {
     portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_2"));
     TestUtils.updateComputeTemplateConsolidationData(
         mainST,
-        computeNodeTypeName, "server_ps02", Arrays.asList("cm01_port_1"),
-        Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
-        Arrays.asList("node_2"), null,
+        computeNodeTypeName, "server_ps02", Collections.singletonList("cm01_port_1"),
+        Collections.singletonList("cmaui_volume"), Collections.singletonList("cmaui_volume"),
+        Collections.singletonList("group_id_1"),
+        Collections.singletonList("node_2"), null,
         portTypeToIdList,
         consolidationData);
 
@@ -1363,29 +1451,30 @@ public class ConsolidationServiceTest {
     portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_3"));
     TestUtils.updateComputeTemplateConsolidationData(
         mainST,
-        computeNodeTypeName, "server_ps03", Arrays.asList("cm01_port_1"),
-        Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
-        Arrays.asList("node_3"), null,
+        computeNodeTypeName, "server_ps03", Collections.singletonList("cm01_port_1"),
+        Collections.singletonList("cmaui_volume"), Collections.singletonList("cmaui_volume"),
+        Collections.singletonList("group_id_1"),
+        Collections.singletonList("node_3"), null,
         portTypeToIdList,
         consolidationData);
 
     TestUtils.initPortConsolidationData(mainST, consolidationData);
     TestUtils.updatePortConsolidationData(mainST, "cm01_port_1",
-        Arrays.asList("node_in_1"), Arrays.asList("net_id_1"),
+        Collections.singletonList("node_in_1"), Collections.singletonList("net_id_1"),
         Arrays.asList("group_id_1", "group_id_2"), null, null,
         consolidationData);
     TestUtils.updatePortConsolidationData(mainST, "cm01_port_2",
-        Arrays.asList("node_in_1"), Arrays.asList("net_id_1"),
+        Collections.singletonList("node_in_1"), Collections.singletonList("net_id_1"),
         Arrays.asList("group_id_1", "group_id_2"), null, null,
         consolidationData);
     TestUtils.updatePortConsolidationData(mainST, "cm01_port_3",
-        Arrays.asList("node_in_1"), Arrays.asList("net_id_1"),
+        Collections.singletonList("node_in_1"), Collections.singletonList("net_id_1"),
         Arrays.asList("group_id_1", "group_id_2"), null, null,
         consolidationData);
 
     translationContext.setConsolidationData(consolidationData);
     List<UnifiedCompositionMode> expectedUnifiedModes =
-        Arrays.asList(UnifiedCompositionMode.ScalingInstances);
+        Collections.singletonList(UnifiedCompositionMode.ScalingInstances);
     verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
   }
 
@@ -1405,9 +1494,11 @@ public class ConsolidationServiceTest {
 
     TestUtils.updateComputeTemplateConsolidationData(
         mainST,
-        computeNodeTypeName, "server_ps01", Arrays.asList("cm01_port_1"), Arrays.asList
-            ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
-        Arrays.asList("server_ps02"), null,
+        computeNodeTypeName, "server_ps01", Collections.singletonList("cm01_port_1"),
+        Collections.singletonList
+            ("cmaui_volume"), Collections.singletonList("cmaui_volume"),
+        Collections.singletonList("group_id_1"),
+        Collections.singletonList("server_ps02"), null,
         portTypeToIdList,
         consolidationData);
 
@@ -1415,9 +1506,10 @@ public class ConsolidationServiceTest {
     portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_2"));
     TestUtils.updateComputeTemplateConsolidationData(
         mainST,
-        computeNodeTypeName, "server_ps02", Arrays.asList("cm01_port_1"),
-        Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
-        Arrays.asList("node_1"), null,
+        computeNodeTypeName, "server_ps02", Collections.singletonList("cm01_port_1"),
+        Collections.singletonList("cmaui_volume"), Collections.singletonList("cmaui_volume"),
+        Collections.singletonList("group_id_1"),
+        Collections.singletonList("node_1"), null,
         portTypeToIdList,
         consolidationData);
 
@@ -1425,29 +1517,30 @@ public class ConsolidationServiceTest {
     portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_3"));
     TestUtils.updateComputeTemplateConsolidationData(
         mainST,
-        computeNodeTypeName, "server_ps03", Arrays.asList("cm01_port_1"),
-        Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
-        Arrays.asList("node_2"), null,
+        computeNodeTypeName, "server_ps03", Collections.singletonList("cm01_port_1"),
+        Collections.singletonList("cmaui_volume"), Collections.singletonList("cmaui_volume"),
+        Collections.singletonList("group_id_1"),
+        Collections.singletonList("node_2"), null,
         portTypeToIdList,
         consolidationData);
 
     TestUtils.initPortConsolidationData(mainST, consolidationData);
     TestUtils.updatePortConsolidationData(mainST, "cm01_port_1",
-        Arrays.asList("node_in_1"), Arrays.asList("net_id_1"),
+        Collections.singletonList("node_in_1"), Collections.singletonList("net_id_1"),
         Arrays.asList("group_id_1", "group_id_2"), null, null,
         consolidationData);
     TestUtils.updatePortConsolidationData(mainST, "cm01_port_2",
-        Arrays.asList("node_in_1"), Arrays.asList("net_id_1"),
+        Collections.singletonList("node_in_1"), Collections.singletonList("net_id_1"),
         Arrays.asList("group_id_1", "group_id_2"), null, null,
         consolidationData);
     TestUtils.updatePortConsolidationData(mainST, "cm01_port_3",
-        Arrays.asList("node_in_1"), Arrays.asList("net_id_1"),
+        Collections.singletonList("node_in_1"), Collections.singletonList("net_id_1"),
         Arrays.asList("group_id_1", "group_id_2"), null, null,
         consolidationData);
 
     translationContext.setConsolidationData(consolidationData);
     List<UnifiedCompositionMode> expectedUnifiedModes =
-        Arrays.asList(UnifiedCompositionMode.CatalogInstance);
+        Collections.singletonList(UnifiedCompositionMode.CatalogInstance);
     verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
   }
 
@@ -1467,8 +1560,10 @@ public class ConsolidationServiceTest {
 
     TestUtils.updateComputeTemplateConsolidationData(
         mainST,
-        computeNodeTypeName, "server_ps01", Arrays.asList("cm01_port_1"), Arrays.asList
-            ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"), null,
+        computeNodeTypeName, "server_ps01", Collections.singletonList("cm01_port_1"),
+        Collections.singletonList
+            ("cmaui_volume"), Collections.singletonList("cmaui_volume"),
+        Collections.singletonList("group_id_1"), null,
         null,
         portTypeToIdList,
         consolidationData);
@@ -1477,8 +1572,9 @@ public class ConsolidationServiceTest {
     portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_2"));
     TestUtils.updateComputeTemplateConsolidationData(
         mainST,
-        computeNodeTypeName, "server_ps02", Arrays.asList("cm01_port_1"),
-        Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
+        computeNodeTypeName, "server_ps02", Collections.singletonList("cm01_port_1"),
+        Collections.singletonList("cmaui_volume"), Collections.singletonList("cmaui_volume"),
+        Collections.singletonList("group_id_1"),
         null, null,
         portTypeToIdList,
         consolidationData);
@@ -1487,8 +1583,9 @@ public class ConsolidationServiceTest {
     portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_3"));
     TestUtils.updateComputeTemplateConsolidationData(
         mainST,
-        computeNodeTypeName, "server_ps03", Arrays.asList("cm01_port_1"),
-        Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
+        computeNodeTypeName, "server_ps03", Collections.singletonList("cm01_port_1"),
+        Collections.singletonList("cmaui_volume"), Collections.singletonList("cmaui_volume"),
+        Collections.singletonList("group_id_1"),
         null, null,
         portTypeToIdList,
         consolidationData);
@@ -1497,18 +1594,22 @@ public class ConsolidationServiceTest {
     List<String> portNodeTemplateIds =
         Arrays.asList("cm01_port_1", "cm01_port_2", "cm01_port_3");
     List<List<String>> nodesConnectedInIds =
-        Arrays.asList(Arrays.asList("node_in_1"), Arrays.asList("node_in_1"),
-            Arrays.asList("node_in_1"));
+        Arrays.asList(Collections.singletonList("node_in_1"),
+            Collections.singletonList("node_in_1"),
+            Collections.singletonList("node_in_1"));
     List<List<String>> nodesConnectedOutIds =
-        Arrays.asList(Arrays.asList("node_out_1"), Arrays.asList("node_out_1"),
-            Arrays.asList("node_out_1"));
+        Arrays.asList(Collections.singletonList("node_out_1"),
+            Collections.singletonList("node_out_1"),
+            Collections.singletonList("node_out_1"));
     List<List<String>> getAttrInIds =
-        Arrays.asList(Arrays.asList("get_attr_1"), Arrays.asList("get_attr_2"),
-            Arrays.asList("get_attr_3"));
+        Arrays.asList(Collections.singletonList("get_attr_1"),
+            Collections.singletonList("get_attr_2"),
+            Collections.singletonList("get_attr_3"));
     List<List<String>> groupIds =
-        Arrays.asList(Arrays.asList("group_id_1", "group_id_2"), Arrays.asList("group_id_1",
-            "group_id_2"), Arrays.asList("group_id_1", "group_id_2"));
-    List<List<Pair<String, GetAttrFuncData>>> getAttrOut = Arrays.asList(null, null, null);
+        Arrays.asList(Arrays.asList("group_id_1", "group_id_2"),
+            Arrays.asList("group_id_1", "group_id_2"), Arrays.asList("group_id_1", "group_id_2"));
+    List<List<Pair<String, GetAttrFuncData>>> getAttrOut =
+        Arrays.asList(null, null, null);
 
     TestUtils.updateMultiplePortConsolidationDatas(
         mainST, portNodeTemplateIds, nodesConnectedInIds, nodesConnectedOutIds, groupIds,
@@ -1516,7 +1617,7 @@ public class ConsolidationServiceTest {
 
     translationContext.setConsolidationData(consolidationData);
     List<UnifiedCompositionMode> expectedUnifiedModes =
-        Arrays.asList(UnifiedCompositionMode.ScalingInstances);
+        Collections.singletonList(UnifiedCompositionMode.ScalingInstances);
     verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
   }
 
@@ -1537,9 +1638,11 @@ public class ConsolidationServiceTest {
 
     TestUtils.updateComputeTemplateConsolidationData(
         mainST,
-        computeNodeTypeName, "server_ps01", Arrays.asList("cm01_port_1"), Arrays.asList
-            ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
-        Arrays.asList("node_1"), null,
+        computeNodeTypeName, "server_ps01", Collections.singletonList("cm01_port_1"),
+        Collections.singletonList
+            ("cmaui_volume"), Collections.singletonList("cmaui_volume"),
+        Collections.singletonList("group_id_1"),
+        Collections.singletonList("node_1"), null,
         portTypeToIdList,
         consolidationData);
 
@@ -1547,9 +1650,10 @@ public class ConsolidationServiceTest {
     portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_2"));
     TestUtils.updateComputeTemplateConsolidationData(
         mainST,
-        computeNodeTypeName, "server_ps02", Arrays.asList("cm01_port_1"),
-        Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
-        Arrays.asList("node_2"), null,
+        computeNodeTypeName, "server_ps02", Collections.singletonList("cm01_port_1"),
+        Collections.singletonList("cmaui_volume"), Collections.singletonList("cmaui_volume"),
+        Collections.singletonList("group_id_1"),
+        Collections.singletonList("node_2"), null,
         portTypeToIdList,
         consolidationData);
 
@@ -1557,9 +1661,10 @@ public class ConsolidationServiceTest {
     portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_3"));
     TestUtils.updateComputeTemplateConsolidationData(
         mainST,
-        computeNodeTypeName, "server_ps03", Arrays.asList("cm01_port_1"),
-        Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
-        Arrays.asList("node_3"), null,
+        computeNodeTypeName, "server_ps03", Collections.singletonList("cm01_port_1"),
+        Collections.singletonList("cmaui_volume"), Collections.singletonList("cmaui_volume"),
+        Collections.singletonList("group_id_1"),
+        Collections.singletonList("node_3"), null,
         portTypeToIdList,
         consolidationData);
 
@@ -1567,18 +1672,22 @@ public class ConsolidationServiceTest {
     List<String> portNodeTemplateIds =
         Arrays.asList("cm01_port_1", "cm01_port_2", "cm01_port_3");
     List<List<String>> nodesConnectedInIds =
-        Arrays.asList(Arrays.asList("node_in_1"), Arrays.asList("node_in_1"),
-            Arrays.asList("node_in_1"));
+        Arrays.asList(Collections.singletonList("node_in_1"),
+            Collections.singletonList("node_in_1"),
+            Collections.singletonList("node_in_1"));
     List<List<String>> nodesConnectedOutIds =
-        Arrays.asList(Arrays.asList("node_out_1"), Arrays.asList("node_out_1"),
-            Arrays.asList("node_out_1"));
+        Arrays.asList(Collections.singletonList("node_out_1"),
+            Collections.singletonList("node_out_1"),
+            Collections.singletonList("node_out_1"));
     List<List<String>> getAttrInIds =
-        Arrays.asList(Arrays.asList("get_attr_1"), Arrays.asList("get_attr_2"),
-            Arrays.asList("cm01_port_1"));
+        Arrays.asList(Collections.singletonList("get_attr_1"),
+            Collections.singletonList("get_attr_2"),
+            Collections.singletonList("cm01_port_1"));
     List<List<String>> groupIds =
-        Arrays.asList(Arrays.asList("group_id_1", "group_id_2"), Arrays.asList("group_id_1",
-            "group_id_2"), Arrays.asList("group_id_1", "group_id_2"));
-    List<List<Pair<String, GetAttrFuncData>>> getAttrOut = Arrays.asList(null, null, null);
+        Arrays.asList(Arrays.asList("group_id_1", "group_id_2"),
+            Arrays.asList("group_id_1", "group_id_2"), Arrays.asList("group_id_1", "group_id_2"));
+    List<List<Pair<String, GetAttrFuncData>>> getAttrOut =
+        Arrays.asList(null, null, null);
 
     TestUtils.updateMultiplePortConsolidationDatas(
         mainST, portNodeTemplateIds, nodesConnectedInIds, nodesConnectedOutIds, groupIds,
@@ -1586,7 +1695,7 @@ public class ConsolidationServiceTest {
 
     translationContext.setConsolidationData(consolidationData);
     List<UnifiedCompositionMode> expectedUnifiedModes =
-        Arrays.asList(UnifiedCompositionMode.CatalogInstance);
+        Collections.singletonList(UnifiedCompositionMode.CatalogInstance);
     verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
   }
 
@@ -1607,9 +1716,11 @@ public class ConsolidationServiceTest {
 
     TestUtils.updateComputeTemplateConsolidationData(
         mainST,
-        computeNodeTypeName, "server_ps01", Arrays.asList("cm01_port_1"), Arrays.asList
-            ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
-        Arrays.asList("cm01_port_1"), null,
+        computeNodeTypeName, "server_ps01", Collections.singletonList("cm01_port_1"),
+        Collections.singletonList
+            ("cmaui_volume"), Collections.singletonList("cmaui_volume"),
+        Collections.singletonList("group_id_1"),
+        Collections.singletonList("cm01_port_1"), null,
         portTypeToIdList,
         consolidationData);
 
@@ -1617,9 +1728,10 @@ public class ConsolidationServiceTest {
     portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_2"));
     TestUtils.updateComputeTemplateConsolidationData(
         mainST,
-        computeNodeTypeName, "server_ps02", Arrays.asList("cm01_port_1"),
-        Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
-        Arrays.asList("cm01_port_2"), null,
+        computeNodeTypeName, "server_ps02", Collections.singletonList("cm01_port_1"),
+        Collections.singletonList("cmaui_volume"), Collections.singletonList("cmaui_volume"),
+        Collections.singletonList("group_id_1"),
+        Collections.singletonList("cm01_port_2"), null,
         portTypeToIdList,
         consolidationData);
 
@@ -1627,9 +1739,10 @@ public class ConsolidationServiceTest {
     portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_3"));
     TestUtils.updateComputeTemplateConsolidationData(
         mainST,
-        computeNodeTypeName, "server_ps03", Arrays.asList("cm01_port_1"),
-        Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
-        Arrays.asList("cm01_port_3"), null,
+        computeNodeTypeName, "server_ps03", Collections.singletonList("cm01_port_1"),
+        Collections.singletonList("cmaui_volume"), Collections.singletonList("cmaui_volume"),
+        Collections.singletonList("group_id_1"),
+        Collections.singletonList("cm01_port_3"), null,
         portTypeToIdList,
         consolidationData);
 
@@ -1637,18 +1750,22 @@ public class ConsolidationServiceTest {
     List<String> portNodeTemplateIds =
         Arrays.asList("cm01_port_1", "cm01_port_2", "cm01_port_3");
     List<List<String>> nodesConnectedInIds =
-        Arrays.asList(Arrays.asList("node_in_1"), Arrays.asList("node_in_1"),
-            Arrays.asList("node_in_1"));
+        Arrays.asList(Collections.singletonList("node_in_1"),
+            Collections.singletonList("node_in_1"),
+            Collections.singletonList("node_in_1"));
     List<List<String>> nodesConnectedOutIds =
-        Arrays.asList(Arrays.asList("node_out_1"), Arrays.asList("node_out_1"),
-            Arrays.asList("node_out_1"));
+        Arrays.asList(Collections.singletonList("node_out_1"),
+            Collections.singletonList("node_out_1"),
+            Collections.singletonList("node_out_1"));
     List<List<String>> getAttrInIds =
-        Arrays.asList(Arrays.asList("get_attr_1"), Arrays.asList("get_attr_2"),
-            Arrays.asList("get_attr_3"));
+        Arrays.asList(Collections.singletonList("get_attr_1"),
+            Collections.singletonList("get_attr_2"),
+            Collections.singletonList("get_attr_3"));
     List<List<String>> groupIds =
-        Arrays.asList(Arrays.asList("group_id_1", "group_id_2"), Arrays.asList("group_id_1",
-            "group_id_2"), Arrays.asList("group_id_1", "group_id_2"));
-    List<List<Pair<String, GetAttrFuncData>>> getAttrOut = Arrays.asList(null, null, null);
+        Arrays.asList(Arrays.asList("group_id_1", "group_id_2"),
+            Arrays.asList("group_id_1", "group_id_2"), Arrays.asList("group_id_1", "group_id_2"));
+    List<List<Pair<String, GetAttrFuncData>>> getAttrOut =
+        Arrays.asList(null, null, null);
 
     TestUtils.updateMultiplePortConsolidationDatas(
         mainST, portNodeTemplateIds, nodesConnectedInIds, nodesConnectedOutIds, groupIds,
@@ -1656,7 +1773,7 @@ public class ConsolidationServiceTest {
 
     translationContext.setConsolidationData(consolidationData);
     List<UnifiedCompositionMode> expectedUnifiedModes =
-        Arrays.asList(UnifiedCompositionMode.ScalingInstances);
+        Collections.singletonList(UnifiedCompositionMode.ScalingInstances);
     verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
   }
 
@@ -1676,10 +1793,13 @@ public class ConsolidationServiceTest {
     portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
     TestUtils.updateComputeTemplateConsolidationData(
         mainST,
-        computeNodeTypeName, "server_ps01", Arrays.asList("cm01_port_1"), Arrays.asList
-            ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
-        Arrays.asList("cm01_port_1"),
-        Arrays.asList(new ImmutablePair<String, GetAttrFuncData>("cm01_port_1", getAttrFuncData)),
+        computeNodeTypeName, "server_ps01", Collections.singletonList("cm01_port_1"),
+        Collections.singletonList
+            ("cmaui_volume"), Collections.singletonList("cmaui_volume"),
+        Collections.singletonList("group_id_1"),
+        Collections.singletonList("cm01_port_1"),
+        Collections.singletonList(
+            new ImmutablePair<>("cm01_port_1", getAttrFuncData)),
         portTypeToIdList,
         consolidationData);
 
@@ -1687,10 +1807,12 @@ public class ConsolidationServiceTest {
     portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_2"));
     TestUtils.updateComputeTemplateConsolidationData(
         mainST,
-        computeNodeTypeName, "server_ps02", Arrays.asList("cm01_port_1"),
-        Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
-        Arrays.asList("cm01_port_1"),
-        Arrays.asList(new ImmutablePair<String, GetAttrFuncData>("cm01_port_1", getAttrFuncData)),
+        computeNodeTypeName, "server_ps02", Collections.singletonList("cm01_port_1"),
+        Collections.singletonList("cmaui_volume"), Collections.singletonList("cmaui_volume"),
+        Collections.singletonList("group_id_1"),
+        Collections.singletonList("cm01_port_1"),
+        Collections.singletonList(
+            new ImmutablePair<>("cm01_port_1", getAttrFuncData)),
         portTypeToIdList,
         consolidationData);
 
@@ -1698,30 +1820,35 @@ public class ConsolidationServiceTest {
     portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_3"));
     TestUtils.updateComputeTemplateConsolidationData(
         mainST,
-        computeNodeTypeName, "server_ps03", Arrays.asList("cm01_port_1"),
-        Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
-        Arrays.asList("cm01_port_1"),
-        Arrays.asList(new ImmutablePair<String, GetAttrFuncData>("cm01_port_1", getAttrFuncData)),
+        computeNodeTypeName, "server_ps03", Collections.singletonList("cm01_port_1"),
+        Collections.singletonList("cmaui_volume"), Collections.singletonList("cmaui_volume"),
+        Collections.singletonList("group_id_1"),
+        Collections.singletonList("cm01_port_1"),
+        Collections.singletonList(
+            new ImmutablePair<>("cm01_port_1", getAttrFuncData)),
         portTypeToIdList,
         consolidationData);
 
     TestUtils.initPortConsolidationData(mainST, consolidationData);
     TestUtils.updatePortConsolidationData(mainST, "cm01_port_1",
-        Arrays.asList("node_in_1"), Arrays.asList("net_id_1"),
-        Arrays.asList("group_id_1", "group_id_2"), Arrays.asList("sm01_port_2"), null,
+        Collections.singletonList("node_in_1"), Collections.singletonList("net_id_1"),
+        Arrays.asList("group_id_1", "group_id_2"),
+        Collections.singletonList("sm01_port_2"), null,
         consolidationData);
     TestUtils.updatePortConsolidationData(mainST, "cm01_port_2",
-        Arrays.asList("node_in_1"), Arrays.asList("net_id_1"),
-        Arrays.asList("group_id_1", "group_id_2"), Arrays.asList("sm01_port_1"), null,
+        Collections.singletonList("node_in_1"), Collections.singletonList("net_id_1"),
+        Arrays.asList("group_id_1", "group_id_2"),
+        Collections.singletonList("sm01_port_1"), null,
         consolidationData);
     TestUtils.updatePortConsolidationData(mainST, "cm01_port_3",
-        Arrays.asList("node_in_1"), Arrays.asList("net_id_1"),
-        Arrays.asList("group_id_1", "group_id_2"), Arrays.asList("rm01_port_1"), null,
+        Collections.singletonList("node_in_1"), Collections.singletonList("net_id_1"),
+        Arrays.asList("group_id_1", "group_id_2"),
+        Collections.singletonList("rm01_port_1"), null,
         consolidationData);
 
     translationContext.setConsolidationData(consolidationData);
     List<UnifiedCompositionMode> expectedUnifiedModes =
-        Arrays.asList(UnifiedCompositionMode.ScalingInstances);
+        Collections.singletonList(UnifiedCompositionMode.ScalingInstances);
     verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
   }
 
@@ -1742,10 +1869,13 @@ public class ConsolidationServiceTest {
     portTypeToIdList.add(new ImmutablePair<>("sm01_port", "sm01_port_1"));
     TestUtils.updateComputeTemplateConsolidationData(
         mainST,
-        computeNodeTypeName, "server_ps01", Arrays.asList("cm01_port_1"), Arrays.asList
-            ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
-        Arrays.asList("cm01_port_1"),
-        Arrays.asList(new ImmutablePair<String, GetAttrFuncData>("cm01_port_1", getAttrFuncData)),
+        computeNodeTypeName, "server_ps01", Collections.singletonList("cm01_port_1"),
+        Collections.singletonList
+            ("cmaui_volume"), Collections.singletonList("cmaui_volume"),
+        Collections.singletonList("group_id_1"),
+        Collections.singletonList("cm01_port_1"),
+        Collections.singletonList(
+            new ImmutablePair<>("cm01_port_1", getAttrFuncData)),
         portTypeToIdList,
         consolidationData);
 
@@ -1754,10 +1884,12 @@ public class ConsolidationServiceTest {
     portTypeToIdList.add(new ImmutablePair<>("sm01_port", "sm01_port_2"));
     TestUtils.updateComputeTemplateConsolidationData(
         mainST,
-        computeNodeTypeName, "server_ps02", Arrays.asList("cm01_port_1"),
-        Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
-        Arrays.asList("cm01_port_1"),
-        Arrays.asList(new ImmutablePair<String, GetAttrFuncData>("cm01_port_1", getAttrFuncData)),
+        computeNodeTypeName, "server_ps02", Collections.singletonList("cm01_port_1"),
+        Collections.singletonList("cmaui_volume"), Collections.singletonList("cmaui_volume"),
+        Collections.singletonList("group_id_1"),
+        Collections.singletonList("cm01_port_1"),
+        Collections.singletonList(
+            new ImmutablePair<>("cm01_port_1", getAttrFuncData)),
         portTypeToIdList,
         consolidationData);
 
@@ -1766,37 +1898,49 @@ public class ConsolidationServiceTest {
     portTypeToIdList.add(new ImmutablePair<>("sm01_port", "sm01_port_3"));
     TestUtils.updateComputeTemplateConsolidationData(
         mainST,
-        computeNodeTypeName, "server_ps03", Arrays.asList("cm01_port_1"),
-        Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
-        Arrays.asList("cm01_port_1"),
-        Arrays.asList(new ImmutablePair<String, GetAttrFuncData>("sm01_port_1", getAttrFuncData)),
+        computeNodeTypeName, "server_ps03", Collections.singletonList("cm01_port_1"),
+        Collections.singletonList("cmaui_volume"), Collections.singletonList("cmaui_volume"),
+        Collections.singletonList("group_id_1"),
+        Collections.singletonList("cm01_port_1"),
+        Collections.singletonList(
+            new ImmutablePair<>("sm01_port_1", getAttrFuncData)),
         portTypeToIdList,
         consolidationData);
 
     TestUtils.initPortConsolidationData(mainST, consolidationData);
 
     List<String> portNodeTemplateIds =
-        Arrays.asList("cm01_port_1", "cm01_port_2", "cm01_port_3", "sm01_port_1", "sm01_port_2",
+        Arrays.asList("cm01_port_1", "cm01_port_2", "cm01_port_3", "sm01_port_1",
+            "sm01_port_2",
             "sm01_port_3");
     List<List<String>> nodesConnectedInIds =
-        Arrays.asList(Arrays.asList("node_in_1"), Arrays.asList("node_in_1"), Arrays.asList
-                ("node_in_1"), Arrays.asList("node_in_1"), Arrays.asList("node_in_1"),
-            Arrays.asList("node_in_1"));
+        Arrays.asList(Collections.singletonList("node_in_1"),
+            Collections.singletonList("node_in_1"), Collections.singletonList
+                ("node_in_1"), Collections.singletonList("node_in_1"),
+            Collections.singletonList("node_in_1"),
+            Collections.singletonList("node_in_1"));
     List<List<String>> nodesConnectedOutIds =
-        Arrays.asList(Arrays.asList("node_out_1"), Arrays.asList("node_out_1"), Arrays.asList
-                ("node_out_1"), Arrays.asList("node_out_1"), Arrays.asList("node_out_1"),
-            Arrays.asList("node_out_1"));
+        Arrays.asList(Collections.singletonList("node_out_1"),
+            Collections.singletonList("node_out_1"), Collections.singletonList
+                ("node_out_1"), Collections.singletonList("node_out_1"),
+            Collections.singletonList("node_out_1"),
+            Collections.singletonList("node_out_1"));
     List<List<String>> getAttrInIds =
-        Arrays.asList(Arrays.asList("get_attr_1"), Arrays.asList("get_attr_2"), Arrays.asList
-                ("get_attr_3"), Arrays.asList("get_attr_1"), Arrays.asList("get_attr_2"),
-            Arrays.asList("get_attr_3"));
+        Arrays.asList(Collections.singletonList("get_attr_1"),
+            Collections.singletonList("get_attr_2"), Collections.singletonList
+                ("get_attr_3"), Collections.singletonList("get_attr_1"),
+            Collections.singletonList("get_attr_2"),
+            Collections.singletonList("get_attr_3"));
     List<List<String>> groupIds =
-        Arrays.asList(Arrays.asList("group_id_1", "group_id_2"), Arrays.asList("group_id_1",
-            "group_id_2"), Arrays.asList("group_id_1", "group_id_2"),
-            Arrays.asList("group_id_1", "group_id_2"), Arrays.asList("group_id_1",
+        Arrays.asList(Arrays.asList("group_id_1", "group_id_2"),
+            Arrays.asList("group_id_1",
+                "group_id_2"), Arrays.asList("group_id_1", "group_id_2"),
+            Arrays.asList("group_id_1", "group_id_2"),
+            Arrays.asList("group_id_1",
                 "group_id_2"), Arrays.asList("group_id_1", "group_id_2"));
-    List<List<Pair<String, GetAttrFuncData>>> getAttrOut = Arrays.asList(null, null, null, null,
-        null, null);
+    List<List<Pair<String, GetAttrFuncData>>> getAttrOut =
+        Arrays.asList(null, null, null, null,
+            null, null);
 
     TestUtils.updateMultiplePortConsolidationDatas(mainST, portNodeTemplateIds,
         nodesConnectedInIds, nodesConnectedOutIds, groupIds, getAttrInIds, getAttrOut,
@@ -1804,7 +1948,7 @@ public class ConsolidationServiceTest {
 
     translationContext.setConsolidationData(consolidationData);
     List<UnifiedCompositionMode> expectedUnifiedModes =
-        Arrays.asList(UnifiedCompositionMode.SingleSubstitution);
+        Collections.singletonList(UnifiedCompositionMode.SingleSubstitution);
     verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
   }
 
@@ -1824,9 +1968,11 @@ public class ConsolidationServiceTest {
     portTypeToIdList.add(new ImmutablePair<>("sm01_port", "sm01_port_1"));
     TestUtils.updateComputeTemplateConsolidationData(
         mainST,
-        computeNodeTypeName, "server_ps01", Arrays.asList("cm01_port_1"), Arrays.asList
-            ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
-        Arrays.asList("cm01_port_1"), null,
+        computeNodeTypeName, "server_ps01", Collections.singletonList("cm01_port_1"),
+        Collections.singletonList
+            ("cmaui_volume"), Collections.singletonList("cmaui_volume"),
+        Collections.singletonList("group_id_1"),
+        Collections.singletonList("cm01_port_1"), null,
         portTypeToIdList,
         consolidationData);
 
@@ -1835,9 +1981,10 @@ public class ConsolidationServiceTest {
     portTypeToIdList.add(new ImmutablePair<>("sm01_port", "sm01_port_2"));
     TestUtils.updateComputeTemplateConsolidationData(
         mainST,
-        computeNodeTypeName, "server_ps02", Arrays.asList("cm01_port_1"),
-        Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
-        Arrays.asList("cm01_port_1"), null,
+        computeNodeTypeName, "server_ps02", Collections.singletonList("cm01_port_1"),
+        Collections.singletonList("cmaui_volume"), Collections.singletonList("cmaui_volume"),
+        Collections.singletonList("group_id_1"),
+        Collections.singletonList("cm01_port_1"), null,
         portTypeToIdList,
         consolidationData);
 
@@ -1846,9 +1993,10 @@ public class ConsolidationServiceTest {
     portTypeToIdList.add(new ImmutablePair<>("sm01_port", "sm01_port_3"));
     TestUtils.updateComputeTemplateConsolidationData(
         mainST,
-        computeNodeTypeName, "server_ps03", Arrays.asList("cm01_port_1"),
-        Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
-        Arrays.asList("cm01_port_1"), null,
+        computeNodeTypeName, "server_ps03", Collections.singletonList("cm01_port_1"),
+        Collections.singletonList("cmaui_volume"), Collections.singletonList("cmaui_volume"),
+        Collections.singletonList("group_id_1"),
+        Collections.singletonList("cm01_port_1"), null,
         portTypeToIdList,
         consolidationData);
 
@@ -1856,30 +2004,43 @@ public class ConsolidationServiceTest {
 
     GetAttrFuncData getAttrFuncData = new GetAttrFuncData("name", "s1_name");
     List<String> portNodeTemplateIds =
-        Arrays.asList("cm01_port_1", "cm01_port_2", "cm01_port_3", "sm01_port_1", "sm01_port_2",
+        Arrays.asList("cm01_port_1", "cm01_port_2", "cm01_port_3", "sm01_port_1",
+            "sm01_port_2",
             "sm01_port_3");
     List<List<String>> nodesConnectedInIds =
-        Arrays.asList(Arrays.asList("node_in_1"), Arrays.asList("node_in_1"), Arrays.asList
-                ("node_in_1"), Arrays.asList("node_in_1"), Arrays.asList("node_in_1"),
-            Arrays.asList("node_in_1"));
+        Arrays.asList(Collections.singletonList("node_in_1"),
+            Collections.singletonList("node_in_1"), Collections.singletonList
+                ("node_in_1"), Collections.singletonList("node_in_1"),
+            Collections.singletonList("node_in_1"),
+            Collections.singletonList("node_in_1"));
     List<List<String>> nodesConnectedOutIds =
-        Arrays.asList(Arrays.asList("node_out_1"), Arrays.asList("node_out_1"), Arrays.asList
-                ("node_out_1"), Arrays.asList("node_out_1"), Arrays.asList("node_out_1"),
-            Arrays.asList("node_out_1"));
+        Arrays.asList(Collections.singletonList("node_out_1"),
+            Collections.singletonList("node_out_1"), Collections.singletonList
+                ("node_out_1"), Collections.singletonList("node_out_1"),
+            Collections.singletonList("node_out_1"),
+            Collections.singletonList("node_out_1"));
     List<List<String>> getAttrInIds =
         Arrays.asList(null, null, null, null, null, null);
     List<List<String>> groupIds =
-        Arrays.asList(Arrays.asList("group_id_1", "group_id_2"), Arrays.asList("group_id_1",
-            "group_id_2"), Arrays.asList("group_id_1", "group_id_2"),
-            Arrays.asList("group_id_1", "group_id_2"), Arrays.asList("group_id_1",
+        Arrays.asList(Arrays.asList("group_id_1", "group_id_2"),
+            Arrays.asList("group_id_1",
+                "group_id_2"), Arrays.asList("group_id_1", "group_id_2"),
+            Arrays.asList("group_id_1", "group_id_2"),
+            Arrays.asList("group_id_1",
                 "group_id_2"), Arrays.asList("group_id_1", "group_id_2"));
     List<List<Pair<String, GetAttrFuncData>>> getAttrOut = Arrays.asList(
-        Arrays.asList(new ImmutablePair<String, GetAttrFuncData>("sm01_port_1", getAttrFuncData)),
-        Arrays.asList(new ImmutablePair<String, GetAttrFuncData>("sm01_port_2", getAttrFuncData)),
-        Arrays.asList(new ImmutablePair<String, GetAttrFuncData>("sm01_port_3", getAttrFuncData)),
-        Arrays.asList(new ImmutablePair<String, GetAttrFuncData>("cm01_port_1", getAttrFuncData)),
-        Arrays.asList(new ImmutablePair<String, GetAttrFuncData>("cm01_port_2", getAttrFuncData)),
-        Arrays.asList(new ImmutablePair<String, GetAttrFuncData>("cm01_port_3", getAttrFuncData)));
+        Collections.singletonList(
+            new ImmutablePair<>("sm01_port_1", getAttrFuncData)),
+        Collections.singletonList(
+            new ImmutablePair<>("sm01_port_2", getAttrFuncData)),
+        Collections.singletonList(
+            new ImmutablePair<>("sm01_port_3", getAttrFuncData)),
+        Collections.singletonList(
+            new ImmutablePair<>("cm01_port_1", getAttrFuncData)),
+        Collections.singletonList(
+            new ImmutablePair<>("cm01_port_2", getAttrFuncData)),
+        Collections.singletonList(
+            new ImmutablePair<>("cm01_port_3", getAttrFuncData)));
 
     TestUtils.updateMultiplePortConsolidationDatas(mainST, portNodeTemplateIds,
         nodesConnectedInIds, nodesConnectedOutIds, groupIds, getAttrInIds, getAttrOut,
@@ -1887,7 +2048,7 @@ public class ConsolidationServiceTest {
 
     translationContext.setConsolidationData(consolidationData);
     List<UnifiedCompositionMode> expectedUnifiedModes =
-        Arrays.asList(UnifiedCompositionMode.ScalingInstances);
+        Collections.singletonList(UnifiedCompositionMode.ScalingInstances);
     verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
   }
 
@@ -1907,9 +2068,11 @@ public class ConsolidationServiceTest {
     portTypeToIdList.add(new ImmutablePair<>("sm01_port", "sm01_port_1"));
     TestUtils.updateComputeTemplateConsolidationData(
         mainST,
-        computeNodeTypeName, "server_ps01", Arrays.asList("cm01_port_1"), Arrays.asList
-            ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
-        Arrays.asList("cm01_port_1"), null,
+        computeNodeTypeName, "server_ps01", Collections.singletonList("cm01_port_1"),
+        Collections.singletonList
+            ("cmaui_volume"), Collections.singletonList("cmaui_volume"),
+        Collections.singletonList("group_id_1"),
+        Collections.singletonList("cm01_port_1"), null,
         portTypeToIdList,
         consolidationData);
 
@@ -1918,9 +2081,10 @@ public class ConsolidationServiceTest {
     portTypeToIdList.add(new ImmutablePair<>("sm01_port", "sm01_port_2"));
     TestUtils.updateComputeTemplateConsolidationData(
         mainST,
-        computeNodeTypeName, "server_ps02", Arrays.asList("cm01_port_1"),
-        Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
-        Arrays.asList("cm01_port_1"), null,
+        computeNodeTypeName, "server_ps02", Collections.singletonList("cm01_port_1"),
+        Collections.singletonList("cmaui_volume"), Collections.singletonList("cmaui_volume"),
+        Collections.singletonList("group_id_1"),
+        Collections.singletonList("cm01_port_1"), null,
         portTypeToIdList,
         consolidationData);
 
@@ -1929,9 +2093,10 @@ public class ConsolidationServiceTest {
     portTypeToIdList.add(new ImmutablePair<>("sm01_port", "sm01_port_3"));
     TestUtils.updateComputeTemplateConsolidationData(
         mainST,
-        computeNodeTypeName, "server_ps03", Arrays.asList("cm01_port_1"),
-        Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
-        Arrays.asList("cm01_port_1"), null,
+        computeNodeTypeName, "server_ps03", Collections.singletonList("cm01_port_1"),
+        Collections.singletonList("cmaui_volume"), Collections.singletonList("cmaui_volume"),
+        Collections.singletonList("group_id_1"),
+        Collections.singletonList("cm01_port_1"), null,
         portTypeToIdList,
         consolidationData);
 
@@ -1939,30 +2104,42 @@ public class ConsolidationServiceTest {
 
     GetAttrFuncData getAttrFuncData = new GetAttrFuncData("name", "s1_name");
     List<String> portNodeTemplateIds =
-        Arrays.asList("cm01_port_1", "cm01_port_2", "cm01_port_3", "sm01_port_1", "sm01_port_2",
+        Arrays.asList("cm01_port_1", "cm01_port_2", "cm01_port_3", "sm01_port_1",
+            "sm01_port_2",
             "sm01_port_3");
     List<List<String>> nodesConnectedInIds =
-        Arrays.asList(Arrays.asList("node_in_1"), Arrays.asList("node_in_1"), Arrays.asList
-                ("node_in_1"), Arrays.asList("node_in_1"), Arrays.asList("node_in_1"),
-            Arrays.asList("node_in_1"));
+        Arrays.asList(Collections.singletonList("node_in_1"),
+            Collections.singletonList("node_in_1"), Collections.singletonList
+                ("node_in_1"), Collections.singletonList("node_in_1"),
+            Collections.singletonList("node_in_1"),
+            Collections.singletonList("node_in_1"));
     List<List<String>> nodesConnectedOutIds =
-        Arrays.asList(Arrays.asList("node_out_1"), Arrays.asList("node_out_1"), Arrays.asList
-                ("node_out_1"), Arrays.asList("node_out_1"), Arrays.asList("node_out_1"),
-            Arrays.asList("node_out_1"));
+        Arrays.asList(Collections.singletonList("node_out_1"),
+            Collections.singletonList("node_out_1"), Collections.singletonList
+                ("node_out_1"), Collections.singletonList("node_out_1"),
+            Collections.singletonList("node_out_1"),
+            Collections.singletonList("node_out_1"));
     List<List<String>> getAttrInIds =
         Arrays.asList(null, null, null, null, null, null);
     List<List<String>> groupIds =
-        Arrays.asList(Arrays.asList("group_id_1", "group_id_2"), Arrays.asList("group_id_1",
-            "group_id_2"), Arrays.asList("group_id_1", "group_id_2"),
-            Arrays.asList("group_id_1", "group_id_2"), Arrays.asList("group_id_1",
+        Arrays.asList(Arrays.asList("group_id_1", "group_id_2"),
+            Arrays.asList("group_id_1", "group_id_2"), Arrays.asList("group_id_1", "group_id_2"),
+            Arrays.asList("group_id_1", "group_id_2"),
+            Arrays.asList("group_id_1",
                 "group_id_2"), Arrays.asList("group_id_1", "group_id_2"));
     List<List<Pair<String, GetAttrFuncData>>> getAttrOut = Arrays.asList(
-        Arrays.asList(new ImmutablePair<String, GetAttrFuncData>("server_ps01", getAttrFuncData)),
-        Arrays.asList(new ImmutablePair<String, GetAttrFuncData>("server_ps01", getAttrFuncData)),
-        Arrays.asList(new ImmutablePair<String, GetAttrFuncData>("sm01_port_3", getAttrFuncData)),
-        Arrays.asList(new ImmutablePair<String, GetAttrFuncData>("cm01_port_1", getAttrFuncData)),
-        Arrays.asList(new ImmutablePair<String, GetAttrFuncData>("cm01_port_2", getAttrFuncData)),
-        Arrays.asList(new ImmutablePair<String, GetAttrFuncData>("cm01_port_3", getAttrFuncData)));
+        Collections.singletonList(
+            new ImmutablePair<>("server_ps01", getAttrFuncData)),
+        Collections.singletonList(
+            new ImmutablePair<>("server_ps01", getAttrFuncData)),
+        Collections.singletonList(
+            new ImmutablePair<>("sm01_port_3", getAttrFuncData)),
+        Collections.singletonList(
+            new ImmutablePair<>("cm01_port_1", getAttrFuncData)),
+        Collections.singletonList(
+            new ImmutablePair<>("cm01_port_2", getAttrFuncData)),
+        Collections.singletonList(
+            new ImmutablePair<>("cm01_port_3", getAttrFuncData)));
 
     TestUtils.updateMultiplePortConsolidationDatas(mainST, portNodeTemplateIds,
         nodesConnectedInIds, nodesConnectedOutIds, groupIds, getAttrInIds, getAttrOut,
@@ -1970,7 +2147,7 @@ public class ConsolidationServiceTest {
 
     translationContext.setConsolidationData(consolidationData);
     List<UnifiedCompositionMode> expectedUnifiedModes =
-        Arrays.asList(UnifiedCompositionMode.SingleSubstitution);
+        Collections.singletonList(UnifiedCompositionMode.SingleSubstitution);
     verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
   }
 
@@ -1981,7 +2158,7 @@ public class ConsolidationServiceTest {
     String nestedServiceTemplateName = "nested-pcm_v0.1ServiceTemplate.yaml";
 
     ConsolidationData consolidationData = new ConsolidationData();
-    TestUtils.updateNestedConsolidationData(mainSTName, Arrays.asList("server_pcm_001"),
+    TestUtils.updateNestedConsolidationData(mainSTName, Collections.singletonList("server_pcm_001"),
         consolidationData);
     TestUtils.initComputeNodeTypeInConsolidationData(mainSTName,
         "org.openecomp.resource.vfc.nodes.heat" +
@@ -2014,7 +2191,7 @@ public class ConsolidationServiceTest {
     String nestedServiceTemplateName = "nested-pcm_v0.1ServiceTemplate.yaml";
 
     ConsolidationData consolidationData = new ConsolidationData();
-    TestUtils.updateNestedConsolidationData(mainSTName, Arrays.asList("server_pcm_001"),
+    TestUtils.updateNestedConsolidationData(mainSTName, Collections.singletonList("server_pcm_001"),
         consolidationData);
     TestUtils.initComputeNodeTypeInConsolidationData(mainSTName,
         "org.openecomp.resource.vfc.nodes.heat" +
@@ -2026,7 +2203,7 @@ public class ConsolidationServiceTest {
         "org.openecomp.resource.vfc.nodes.heat" +
             ".pcm_server", consolidationData);
 
-    TestUtils.updateNestedConsolidationData(mainSTName, Arrays.asList("server_oam_001"),
+    TestUtils.updateNestedConsolidationData(mainSTName, Collections.singletonList("server_oam_001"),
         consolidationData);
     TestUtils.initComputeNodeTypeInConsolidationData(mainSTName,
         "org.openecomp.resource.vfc.nodes.heat" +
@@ -2056,7 +2233,7 @@ public class ConsolidationServiceTest {
     String nestedServiceTemplateName = "nested-pcm_v0.1ServiceTemplate.yaml";
 
     ConsolidationData consolidationData = new ConsolidationData();
-    TestUtils.updateNestedConsolidationData(mainSTName, Arrays.asList("server_pcm_001"),
+    TestUtils.updateNestedConsolidationData(mainSTName, Collections.singletonList("server_pcm_001"),
         consolidationData);
     TestUtils.initComputeNodeTypeInConsolidationData(nestedServiceTemplateName,
         "org.openecomp.resource.vfc.nodes.heat" +
@@ -2069,7 +2246,8 @@ public class ConsolidationServiceTest {
             ".heat.pcm_server", "pcm_server_1", consolidationData);
 
     TestUtils
-        .updateNestedConsolidationData(nestedServiceTemplateName, Arrays.asList("server_pcm_002"),
+        .updateNestedConsolidationData(nestedServiceTemplateName,
+            Collections.singletonList("server_pcm_002"),
             consolidationData);
     TestUtils.initComputeNodeTemplateIdInConsolidationData(nestedServiceTemplateName,
         "org.openecomp.resource.vfc.nodes" +
@@ -2081,7 +2259,8 @@ public class ConsolidationServiceTest {
     addMockServiceTemplateToContext(nestedServiceTemplateName, "nested-pcm_v0.1");
 
     Mockito.doNothing().when(consolidationService).serviceTemplateConsolidation
-        (translationContext.getTranslatedServiceTemplates().get(nestedServiceTemplateName), translationContext);
+        (translationContext.getTranslatedServiceTemplates().get(nestedServiceTemplateName),
+            translationContext);
     verifySubstitutionServiceTemplateConsolidation
         (1, translationContext.getTranslatedServiceTemplates().get(mainSTName),
             translationContext.getTranslatedServiceTemplates().get(nestedServiceTemplateName),
@@ -2095,7 +2274,7 @@ public class ConsolidationServiceTest {
     String nestedServiceTemplateName = "nested-pcm_v0.1ServiceTemplate.yaml";
 
     ConsolidationData consolidationData = new ConsolidationData();
-    TestUtils.updateNestedConsolidationData(mainSTName, Arrays.asList("server_pcm_001"),
+    TestUtils.updateNestedConsolidationData(mainSTName, Collections.singletonList("server_pcm_001"),
         consolidationData);
     TestUtils.initComputeNodeTypeInConsolidationData(mainSTName,
         "org.openecomp.resource.vfc.nodes.heat" +
@@ -2110,7 +2289,8 @@ public class ConsolidationServiceTest {
             ".heat.pcm_server", "pcm_server", consolidationData);
 
     TestUtils
-        .updateNestedConsolidationData(nestedServiceTemplateName, Arrays.asList("nested_resource"),
+        .updateNestedConsolidationData(nestedServiceTemplateName,
+            Collections.singletonList("nested_resource"),
             consolidationData);
 
     translationContext.setConsolidationData(consolidationData);
@@ -2124,6 +2304,300 @@ public class ConsolidationServiceTest {
             UnifiedCompositionMode.SingleSubstitution);
   }
 
+  @Test
+  public void testConsolidationPreConditionFalseDiffSubportTypes() throws IOException {
+    translationContext = new TranslationContext();
+    String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
+    ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
+        ("/mock/services/heattotosca/consolidation/translatedfiles/pre_condition/different_subinterface_types",
+            null, null);
+
+    ConsolidationData consolidationData = new ConsolidationData();
+    generateComputeAndPortConsolidationData(computeNodeTypeName, consolidationData);
+
+    TestUtils
+        .addPortSubInterface(
+            new SubInterfaceConsolidationDataTestInfo(mainST, "cm01_port_1", "nested1.yaml", 2,
+                "role_1", "interface_1", null, null, null, null, consolidationData));
+    TestUtils
+        .addPortSubInterface(
+            new SubInterfaceConsolidationDataTestInfo(mainST, "cm01_port_2", "nested2.yaml", 2,
+                "role_2", "interface_2", null, null, null, null, consolidationData));
+    testConsolidation(1, toscaServiceModel, consolidationData, Collections.singletonList(UnifiedCompositionMode.SingleSubstitution));
+  }
+
+  private void generateComputeAndPortConsolidationData(String computeNodeTypeName,
+                                                       ConsolidationData consolidationData) {
+    TestUtils
+        .initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+
+    updateComputeConsolidationData("server_ps01", computeNodeTypeName, "cm01_port",
+        "cm01_port_1", consolidationData);
+
+    updateComputeConsolidationData("server_ps02", computeNodeTypeName, "cm01_port",
+        "cm01_port_2", consolidationData);
+
+    TestUtils.initPortConsolidationData(mainST, consolidationData);
+    TestUtils.updatePortConsolidationData(mainST, "cm01_port_1",
+        null, null, null, null, null,
+        consolidationData);
+    TestUtils.updatePortConsolidationData(mainST, "cm01_port_2",
+        null, null, null, null, null,
+        consolidationData);
+  }
+
+  @Test
+  public void testConsolidationPreConditionFalseDiffSubportNumber() throws IOException {
+    translationContext = new TranslationContext();
+    String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
+    ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
+        ("/mock/services/heattotosca/consolidation/translatedfiles/pre_condition/different_subinterface_types",
+            null, null);
+
+    ConsolidationData consolidationData = new ConsolidationData();
+    generateComputeAndPortConsolidationData(computeNodeTypeName, consolidationData);
+
+    TestUtils
+        .addPortSubInterface(
+            new SubInterfaceConsolidationDataTestInfo(mainST, "cm01_port_1", "nested1.yaml", 2,
+                "role_1", "interface_1", null, null, null, null, consolidationData));
+    TestUtils
+        .addPortSubInterface(
+            new SubInterfaceConsolidationDataTestInfo(mainST, "cm01_port_2", "nested1.yaml", 2,
+                "role_2", "interface_2", null, null, null, null, consolidationData));
+    TestUtils
+        .addPortSubInterface(
+            new SubInterfaceConsolidationDataTestInfo(mainST, "cm01_port_2", "nested1.yaml", 2,
+                "role_3", "interface_3", null, null, null, null, consolidationData));
+
+    testConsolidation(1, toscaServiceModel,
+        consolidationData, Collections.singletonList(UnifiedCompositionMode.SingleSubstitution));
+  }
+
+  @Test
+  public void testConsolidationRuleFalseDifferentCountInResourceGroup() throws IOException {
+    translationContext = new TranslationContext();
+    String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
+    ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
+        ("/mock/services/heattotosca/consolidation/translatedfiles/pre_condition/different_subinterface_types",
+            null, null);
+
+    ConsolidationData consolidationData = new ConsolidationData();
+    generateComputeAndPortConsolidationData(computeNodeTypeName, consolidationData);
+
+    TestUtils
+        .addPortSubInterface(
+            new SubInterfaceConsolidationDataTestInfo(mainST, "cm01_port_1", "nested1.yaml", 2,
+                "role_1", "interface_1", null, null, null, null, consolidationData));
+    TestUtils
+        .addPortSubInterface(
+            new SubInterfaceConsolidationDataTestInfo(mainST, "cm01_port_2", "nested1.yaml", 3,
+                "role_1", "interface_2", null, null, null, null, consolidationData));
+
+    testConsolidation(1, toscaServiceModel,
+        consolidationData, Collections.singletonList(UnifiedCompositionMode.CatalogInstance));
+  }
+
+  @Test
+  public void testConsolidationRuleFalseDifferentNodesConnectedInToResourceGroup()
+      throws IOException {
+    translationContext = new TranslationContext();
+    String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
+    ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
+        ("/mock/services/heattotosca/consolidation/translatedfiles/pre_condition/different_subinterface_types",
+            null, null);
+
+    ConsolidationData consolidationData = new ConsolidationData();
+    generateComputeAndPortConsolidationData(computeNodeTypeName, consolidationData);
+
+    TestUtils
+        .addPortSubInterface(
+            new SubInterfaceConsolidationDataTestInfo(mainST, "cm01_port_1", "nested1.yaml", 2,
+                "role_1", "interface_1", Collections.singletonList("node_1"), null, null, null,
+                consolidationData));
+    TestUtils
+        .addPortSubInterface(
+            new SubInterfaceConsolidationDataTestInfo(mainST, "cm01_port_2", "nested1.yaml", 2,
+                "role_1", "interface_2", Collections.singletonList("node_2"), null, null, null,
+                consolidationData));
+
+    testConsolidation(1, toscaServiceModel, consolidationData, Collections.singletonList(UnifiedCompositionMode.CatalogInstance));
+  }
+
+  @Test
+  public void testConsolidationRuleFalseDifferentNodesConnectedOutFromResourceGroup()
+      throws IOException {
+    translationContext = new TranslationContext();
+    String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
+    ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
+        ("/mock/services/heattotosca/consolidation/translatedfiles/pre_condition/different_subinterface_types",
+            null, null);
+
+    ConsolidationData consolidationData = new ConsolidationData();
+    generateComputeAndPortConsolidationData(computeNodeTypeName, consolidationData);
+
+    TestUtils
+        .addPortSubInterface(
+            new SubInterfaceConsolidationDataTestInfo(mainST, "cm01_port_1", "nested1.yaml", 2,
+                "role_1", "interface_1", null, Collections.singletonList("node_1"), null, null,
+                consolidationData));
+    TestUtils
+        .addPortSubInterface(
+            new SubInterfaceConsolidationDataTestInfo(mainST, "cm01_port_2", "nested1.yaml", 2,
+                "role_1", "interface_2", null, Collections.singletonList("node_2"), null, null,
+                consolidationData));
+
+    testConsolidation(1, toscaServiceModel, consolidationData, Collections.singletonList(UnifiedCompositionMode.CatalogInstance));
+  }
+
+  @Test
+  public void testConsolidationRuleFalseGetAttrInBetweenSubInterfacesOfSameType()
+      throws IOException {
+    translationContext = new TranslationContext();
+    String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
+    ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
+        ("/mock/services/heattotosca/consolidation/translatedfiles/pre_condition/different_subinterface_types",
+            null, null);
+
+    ConsolidationData consolidationData = new ConsolidationData();
+    generateComputeAndPortConsolidationData(computeNodeTypeName, consolidationData);
+
+    TestUtils
+        .addPortSubInterface(
+            new SubInterfaceConsolidationDataTestInfo(mainST, "cm01_port_1", "nested1.yaml", 2,
+                "role_1", "interface_1", null, null, Collections.singletonList("in_node_1"), null,
+                consolidationData));
+    TestUtils
+        .addPortSubInterface(
+            new SubInterfaceConsolidationDataTestInfo(mainST, "cm01_port_2", "nested1.yaml", 2,
+                "role_1", "interface_2", null, null, Collections.singletonList("interface_1"), null,
+                consolidationData));
+
+    testConsolidation(1, toscaServiceModel, consolidationData, Collections.singletonList(UnifiedCompositionMode.CatalogInstance));
+  }
+
+  @Test
+  public void testConsolidationRuleFalseGetAttrOutBetweenSubInterfacesOfSameType()
+      throws IOException {
+    translationContext = new TranslationContext();
+    String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
+    ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
+        ("/mock/services/heattotosca/consolidation/translatedfiles/pre_condition/different_subinterface_types",
+            null, null);
+
+    ConsolidationData consolidationData = new ConsolidationData();
+    TestUtils
+        .initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+
+    updateComputeConsolidationData("server_ps01", computeNodeTypeName, "cm01_port",
+        "cm01_port_1", consolidationData);
+    updateComputeConsolidationData("server_ps02", computeNodeTypeName, "cm01_port",
+        "cm01_port_2", consolidationData);
+
+    GetAttrFuncData getAttrFuncData = new GetAttrFuncData("name", "c1_name");
+    Pair<String, GetAttrFuncData> getAttrOutInvalid1 =
+        new ImmutablePair<>("interface_1", getAttrFuncData);
+    Pair<String, GetAttrFuncData> getAttrOutInvalid2 =
+        new ImmutablePair<>("interface_2", getAttrFuncData);
+
+    TestUtils.initPortConsolidationData(mainST, consolidationData);
+    TestUtils.updatePortConsolidationData(mainST, "cm01_port_1",
+        null, null, null, null, null,
+        consolidationData);
+    TestUtils.updatePortConsolidationData(mainST, "cm01_port_2",
+        null, null, null, null, null,
+        consolidationData);
+
+    TestUtils
+        .addPortSubInterface(
+            new SubInterfaceConsolidationDataTestInfo(mainST, "cm01_port_1", "nested1.yaml", 2,
+                "role_1", "interface_1", null, null, null,
+                Collections.singletonList(getAttrOutInvalid1), consolidationData));
+    TestUtils
+        .addPortSubInterface(
+            new SubInterfaceConsolidationDataTestInfo(mainST, "cm01_port_2", "nested1.yaml", 2,
+                "role_1", "interface_2", null, null, null,
+                Collections.singletonList(getAttrOutInvalid2), consolidationData));
+
+    testConsolidation(1, toscaServiceModel, consolidationData, Collections.singletonList(UnifiedCompositionMode.CatalogInstance));
+  }
+
+  @Test
+  public void testConsolidationRuleFalseDifferentRoleInResourceGroup() throws IOException {
+    translationContext = new TranslationContext();
+    String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
+    ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
+        ("/mock/services/heattotosca/consolidation/translatedfiles/pre_condition/different_subinterface_types",
+            null, null);
+
+    ConsolidationData consolidationData = new ConsolidationData();
+    generateComputeAndPortConsolidationData(computeNodeTypeName, consolidationData);
+
+    TestUtils
+        .addPortSubInterface(
+            new SubInterfaceConsolidationDataTestInfo(mainST, "cm01_port_1", "nested1.yaml", 2,
+                "role_1", "interface_1", null, null, null, null, consolidationData));
+    TestUtils
+        .addPortSubInterface(
+            new SubInterfaceConsolidationDataTestInfo(mainST, "cm01_port_2", "nested1.yaml", 2,
+                "role_2", "interface_2", null, null, null, null, consolidationData));
+
+    testConsolidation(1, toscaServiceModel, consolidationData, Collections.singletonList(UnifiedCompositionMode.CatalogInstance));
+  }
+
+  @Test
+  public void testConsolidationRuleTrueForSubInterfaces() throws IOException {
+    translationContext = new TranslationContext();
+    String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
+    ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
+        ("/mock/services/heattotosca/consolidation/translatedfiles/pre_condition/different_subinterface_types",
+            null, null);
+
+    ConsolidationData consolidationData = new ConsolidationData();
+    generateComputeAndPortConsolidationData(computeNodeTypeName, consolidationData);
+
+    TestUtils
+        .addPortSubInterface(
+            new SubInterfaceConsolidationDataTestInfo(mainST, "cm01_port_1", "nested1.yaml", 2,
+                "role_1", "interface_1", Collections.singletonList("node_1"),
+                Collections.singletonList("node_1"), null, null, consolidationData));
+    TestUtils
+        .addPortSubInterface(
+            new SubInterfaceConsolidationDataTestInfo(mainST, "cm01_port_2", "nested1.yaml", 2,
+                "role_1", "interface_2", Collections.singletonList("node_1"),
+                Collections.singletonList("node_1"), null, null, consolidationData));
+
+    testConsolidation(1, toscaServiceModel, consolidationData, Collections.singletonList(UnifiedCompositionMode.ScalingInstances));
+  }
+
+  private void testConsolidation(int times, ToscaServiceModel toscaServiceModel,
+                                 ConsolidationData consolidationData,
+                                 List<UnifiedCompositionMode> expectedUnifiedModes) {
+    Mockito.doNothing().when(unifiedCompositionServiceMock).createUnifiedComposition(
+        any(),
+        any(),
+        any(),
+        any(),
+        any());
+    translationContext.setConsolidationData(consolidationData);
+    verifyMainServiceTemplateConsolidation(times, expectedUnifiedModes, toscaServiceModel);
+  }
+
+  private void updateComputeConsolidationData(String computeNodeTemplateId,
+                                              String computeNodeTypeName,
+                                              String portType,
+                                              String portNodeTemplateId,
+                                              ConsolidationData consolidationData) {
+    List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+    portTypeToIdList.add(new ImmutablePair<>(portType, portNodeTemplateId));
+
+    TestUtils.updateComputeTemplateConsolidationData(
+        mainST,
+        computeNodeTypeName, computeNodeTemplateId,
+        null, null, null, null, null, null,
+        portTypeToIdList, consolidationData);
+  }
+
 
   private void verifyMainServiceTemplateConsolidation(int times,
                                                       List<UnifiedCompositionMode> expectedUnifiedCompositionModes,
@@ -2176,5 +2650,4 @@ public class ConsolidationServiceTest {
         .put(serviceTemplateFileName, serviceTemplate);
   }
 
-  */
 }
index 19f4d59..17383a9 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright © 2016-2017 European Support Limited
+ * Copyright © 2016-2018 European Support Limited
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,6 +16,8 @@
 
 package org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation;
 
+import static org.junit.Assert.assertEquals;
+
 import org.apache.commons.collections4.MapUtils;
 import org.junit.AfterClass;
 import org.junit.Assert;
@@ -51,8 +53,6 @@ import java.util.Set;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipInputStream;
 
-import static org.junit.Assert.assertEquals;
-
 
 public class BaseFullTranslationTest {
 
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/consolidation/translatedfiles/pre_condition/different_subinterface_types/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/consolidation/translatedfiles/pre_condition/different_subinterface_types/MainServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..d575e26
--- /dev/null
@@ -0,0 +1,207 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: Main
+imports:
+- CommonGlobalTypes:
+    file: CommonGlobalTypesServiceTemplate.yaml
+- NovaServerGlobalTypes:
+    file: NovaServerGlobalTypesServiceTemplate.yaml
+- NeutronPortGlobalTypes:
+    file: NeutronPortGlobalTypesServiceTemplate.yaml
+- NeutronSecurityRulesGlobalTypes:
+    file: NeutronSecurityRulesGlobalTypesServiceTemplate.yaml
+- NeutronNetGlobalTypes:
+    file: NeutronNetGlobalTypesServiceTemplate.yaml
+- CinderVolumeGlobalTypes:
+    file: CinderVolumeGlobalTypesServiceTemplate.yaml
+- ContrailVirtualNetworkGlobalType:
+    file: ContrailVirtualNetworkGlobalTypeServiceTemplate.yaml
+- ContrailNetworkRuleGlobalType:
+    file: ContrailNetworkRuleGlobalTypeServiceTemplate.yaml
+- AbstractSubstituteGlobalTypes:
+    file: AbstractSubstituteGlobalTypesServiceTemplate.yaml
+- ContrailV2VirtualMachineInterfaceGlobalType:
+    file: ContrailV2VirtualMachineInterfaceGlobalTypeServiceTemplate.yaml
+- ContrailComputeGlobalTypes:
+    file: ContrailComputeGlobalTypesServiceTemplate.yaml
+- ContrailPortGlobalTypes:
+    file: ContrailPortGlobalTypesServiceTemplate.yaml
+- ContrailAbstractSubstituteGlobalTypes:
+    file: ContrailAbstractSubstituteGlobalTypesServiceTemplate.yaml
+- ContrailV2VirtualNetworkGlobalType:
+    file: ContrailV2VirtualNetworkGlobalTypeServiceTemplate.yaml
+- ContrailV2NetworkRuleGlobalType:
+    file: ContrailV2NetworkRuleGlobalTypeServiceTemplate.yaml
+- ContrailV2VLANSubInterfaceGlobalType:
+    file: ContrailV2VLANSubInterfaceGlobalTypeServiceTemplate.yaml
+node_types:
+  org.openecomp.resource.vfc.nodes.heat.ps_server:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+  inputs:
+    availabilityzone_name:
+      label: availabilityzone name
+      hidden: false
+      immutable: false
+      type: string
+      description: availabilityzone name
+      default: nova
+    repl_net_ips:
+      label: repl network ips
+      hidden: false
+      immutable: false
+      type: list
+      description: ips of repl network
+      default:
+      - 107.239.33.57
+      - 107.239.33.58
+      entry_schema:
+        type: string
+    oam_net_name:
+      label: oam network name
+      hidden: false
+      immutable: false
+      type: string
+      description: name of the oam network
+      default: oam_protected_net_0
+    oam_net_ips:
+      label: internet network ips
+      hidden: false
+      immutable: false
+      type: list
+      description: ip of the OAM network
+      default:
+      - 107.250.172.213
+      - 107.250.172.214
+      - 107.250.172.215
+      - 107.250.172.216
+      - 107.250.172.217
+      entry_schema:
+        type: string
+      default: 169.254.1.4
+    ps_server_names:
+      label: PS server names
+      hidden: false
+      immutable: false
+      type: list
+      description: name of the PS instance
+      default:
+      - ZRDM1MOGX01MPS001
+      - ZRDM1MOGX01MPS002
+      - ZRDM1MOGX01MPS003
+      - ZRDM1MOGX01MPS004
+      entry_schema:
+        type: string
+    csb_net_ips:
+      hidden: false
+      immutable: false
+      type: list
+      description: mog_csb_net IP addresses
+      default:
+      - 172.26.0.10
+      - 172.26.0.11
+      - 172.26.0.12
+      - 172.26.0.13
+      - 172.26.0.14
+      - 172.26.0.15
+      - 172.26.0.16
+      - 172.26.0.17
+      - 172.26.0.18
+      - 172.26.0.19
+      - 172.26.0.20
+      entry_schema:
+        type: string
+    ps_flavor_name:
+      label: PS flavor name
+      hidden: false
+      immutable: false
+      type: string
+      description: flavor name of PS instance
+      default: m3.xlarge
+    ps_image_name:
+      label: PS image name
+      hidden: false
+      immutable: false
+      type: string
+      description: PS image name
+      default: MOG_BASE_8.0
+    repl_net_name:
+      label: Replication network name
+      hidden: false
+      immutable: false
+      type: string
+      description: name of the replication network
+      default: cor_direct_net_0
+  node_templates:
+    cm01_port_1:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        fixed_ips:
+        - ip_address:
+            get_input:
+            - oam_net_ips
+            - 4
+        allowed_address_pairs:
+          get_input:
+          - interface_list
+          - 2
+          - allowed_address_pairs
+        mac_address:
+          get_input: ncb1_internal1_mac_address
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: server_cm01
+          relationship: tosca.relationships.network.BindsTo
+    cm01_port_2:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        fixed_ips:
+        - ip_address:
+            get_input:
+            - oam_net_ips
+            - 4
+        allowed_address_pairs:
+          get_input:
+          - interface_list
+          - 2
+          - allowed_address_pairs
+        mac_address:
+          get_input: ncb1_internal1_mac_address
+      requirements:
+      - link:
+          capability: tosca.capabilities.network.Linkable
+          node: csb_net
+          relationship: tosca.relationships.network.LinksTo
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: server_sm02
+          relationship: tosca.relationships.network.BindsTo
+    server_ps01:
+      type: org.openecomp.resource.vfc.nodes.heat.ps_server
+      properties:
+        flavor:
+          get_input: ps_flavor_name
+        availability_zone:
+          get_input: availabilityzone_name
+        image:
+          get_input: ps_image_name
+        user_data_format: RAW
+        name:
+          get_input:
+          - ps_server_names
+          - 3
+    server_ps02:
+      type: org.openecomp.resource.vfc.nodes.heat.ps_server
+      properties:
+        flavor:
+          get_input: ps_flavor_name
+        availability_zone:
+          get_input: availabilityzone_name
+        image:
+          get_input: ps_image_name
+        user_data_format: RAW
+        name:
+          get_input:
+          - ps_server_names
+          - 2
\ No newline at end of file