From d299e8af2e9dfa79e53f7cf9e79977bab3474919 Mon Sep 17 00:00:00 2001 From: ojasdubey Date: Mon, 5 Feb 2018 19:48:23 +0530 Subject: VLAN tagging - Added Consolidation Rules 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 Signed-off-by: vempo --- .../PortTemplateConsolidationData.java | 71 +- .../SubInterfaceTemplateConsolidationData.java | 51 + .../services/heattotosca/ConsolidationService.java | 316 ++++-- .../SubInterfaceConsolidationDataTestInfo.java | 86 ++ .../org/openecomp/sdc/translator/TestUtils.java | 195 ++-- .../heattotosca/ConsolidationServiceTest.java | 1057 ++++++++++++++------ .../BaseFullTranslationTest.java | 6 +- .../MainServiceTemplate.yaml | 207 ++++ 8 files changed, 1536 insertions(+), 453 deletions(-) create mode 100644 openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/SubInterfaceTemplateConsolidationData.java create mode 100644 openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/SubInterfaceConsolidationDataTestInfo.java create mode 100644 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 (limited to 'openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core') 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/PortTemplateConsolidationData.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/PortTemplateConsolidationData.java index c9b59f99db..0eacd4de3c 100644 --- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/PortTemplateConsolidationData.java +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/PortTemplateConsolidationData.java @@ -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 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 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 subInterfaceTypeToEntity) { + subInterfaceTypeToEntity.putAll(this.subInterfaceConsolidationData); + } + + public void copyFlatInto(List 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 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 subPortIds) { - this.subPortIds = subPortIds; + private int calculateSize(List 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 index 0000000000..9a6826d644 --- /dev/null +++ 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 @@ -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; + } +} diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationService.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationService.java index 3fef3f91a1..bc5a3c7e3a 100644 --- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationService.java +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationService.java @@ -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> portTypeToIds) { for (String portType : portTypeToIds.keySet()) { + if (CollectionUtils.isEmpty(entities)) { + continue; + } Set startingGetAttrFunc = getEntityGetAttrFuncAsSet(portType, (EntityConsolidationData) entities.iterator().next()); @@ -194,24 +220,27 @@ public class ConsolidationService { return true; } - private boolean checkGetAttrOutFromPortToComputeIsLegal( - List portTemplateConsolidationDataList, - Collection computeNodeTemplateIds) { - PortTemplateConsolidationData startingPortTemplate = - portTemplateConsolidationDataList.get(0); - Map> startingComputeGetAttrOutFuncData = - getComputeGetAttrOutFuncData(startingPortTemplate.getNodesGetAttrOut(), - computeNodeTemplateIds); - - for (int i = 1; i < portTemplateConsolidationDataList.size(); i++) { - PortTemplateConsolidationData currentPortTemplate = - portTemplateConsolidationDataList.get(i); - Map> currentComputeGetAttrOutFuncData = - getComputeGetAttrOutFuncData(currentPortTemplate.getNodesGetAttrOut(), - computeNodeTemplateIds); - - if (!isGetAttrRelationToComputeSimilarBetweenEntities(startingComputeGetAttrOutFuncData, - currentComputeGetAttrOutFuncData)) { + private boolean checkGetAttrOutFromConsolidationEntityToEntityNotFromSameTypeIsLegal( + List entityConsolidationDataList, + Collection consolidationEntityNodeTemplateIds) { + if (CollectionUtils.isEmpty(entityConsolidationDataList)) { + return true; + } + EntityConsolidationData startingEntityTemplate = + (EntityConsolidationData) entityConsolidationDataList.get(0); + Map> startingGetAttrOutFuncData = + getConsolidationEntityGetAttrOutFuncData(startingEntityTemplate.getNodesGetAttrOut(), + consolidationEntityNodeTemplateIds); + + for (int i = 1; i < entityConsolidationDataList.size(); i++) { + EntityConsolidationData currentEntityTemplate = + (EntityConsolidationData) entityConsolidationDataList.get(i); + Map> 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> firstMap, Map> 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> portTypeToPortIds = UnifiedCompositionUtil + .collectAllPortsFromEachTypesFromComputes( + typeComputeConsolidationData.getAllComputeTemplateConsolidationData()); + + Collection computeNodeTemplateIds = + typeComputeConsolidationData.getAllComputeNodeTemplateIds(); + + for (List portIdsFromSameType : portTypeToPortIds.values()) { + List portTemplateConsolidationDataList = + getAllPortTemplateConsolidationData(portIdsFromSameType, filePortConsolidationData); + + if (!areSubInterfacePreConditionRulesValid(portTypeToPortIds, computeNodeTemplateIds, + portTemplateConsolidationDataList, portTemplateConsolidationDataList.get(0))) { + return false; + } + } + return true; + } + + private boolean areSubInterfacePreConditionRulesValid(Map> portTypeToPortIds, + Collection computeNodeTemplateIds, + List portTemplateConsolidationDataList, + PortTemplateConsolidationData subInterfaceConsolidationData) { + return areSubInterfaceTypesSimilarBetweenPorts(portTemplateConsolidationDataList, + subInterfaceConsolidationData) + && isNumberOfSubInterfacesPerTypeSimilar(portTemplateConsolidationDataList, + subInterfaceConsolidationData) + && isGetAttrFromSubInterfaceToOtherEntitiesLegal(computeNodeTemplateIds, + portTypeToPortIds, portTemplateConsolidationDataList); + } + + private boolean isGetAttrFromSubInterfaceToOtherEntitiesLegal( + Collection computeNodeTemplateIds, + Map> portTypeToPortIds, + List portTemplateConsolidationDataList) { + + ListMultimap subInterfacesFromSameTypeFromPorts = + collectAllSubInterfacesFromSameTypeFromPorts(portTemplateConsolidationDataList); + + List subInterfaceList = new ArrayList<>(subInterfacesFromSameTypeFromPorts + .values()); + return areGetAttrRelationshipsBetweenSubInterfaceToConsolidationEntitiesValid( + computeNodeTemplateIds, portTypeToPortIds, portTemplateConsolidationDataList, subInterfaceList); + } + + private boolean areGetAttrRelationshipsBetweenSubInterfaceToConsolidationEntitiesValid( + Collection computeNodeTemplateIds, Map> portTypeToPortIds, + List portTemplateConsolidationDataList, + List subInterfaceList) { + return checkGetAttrOutFromEntityToPortIsLegal(subInterfaceList, portTypeToPortIds) + && checkGetAttrOutFromConsolidationEntityToEntityNotFromSameTypeIsLegal( + portTemplateConsolidationDataList, getSubInterfaceIdsFromSameType(subInterfaceList)) + && checkGetAttrOutFromConsolidationEntityToEntityNotFromSameTypeIsLegal( + subInterfaceList, computeNodeTemplateIds); + } + + private boolean areSubInterfaceTypesSimilarBetweenPorts( + List portTemplateConsolidationDataList, + PortTemplateConsolidationData subInterfaceConsolidationData) { + + return portTemplateConsolidationDataList.stream().allMatch( + element -> element.hasSameSubInterfaceTypes(subInterfaceConsolidationData)); + } + + private boolean isNumberOfSubInterfacesPerTypeSimilar( + List portTemplateConsolidationDataList, + PortTemplateConsolidationData subInterfaceConsolidationData) { + + return portTemplateConsolidationDataList.stream() + .allMatch(element -> element.isNumberOfSubInterfacesPerTypeSimilar(subInterfaceConsolidationData)); + } + + private Set getEntityGetAttrFuncAsSet( String portType, EntityConsolidationData entityConsolidationData) { @@ -252,7 +365,7 @@ public class ConsolidationService { return getAttrFuncDataFromPortsWithSameType; } - private Map> getComputeGetAttrOutFuncData( + private Map> getConsolidationEntityGetAttrOutFuncData( Map> nodesGetAttrOut, Collection computeNodeTemplateIds) { Map> 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 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 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 subInterfacesIdsFromSameType, + List subInterfaceList) { + + return checkGetAttrRelationsForEntityConsolidationData(subInterfaceList, + subInterfacesIdsFromSameType, EntityConsolidationData::getNodesGetAttrIn) + || checkGetAttrRelationsForEntityConsolidationData(subInterfaceList, + subInterfacesIdsFromSameType, EntityConsolidationData::getNodesGetAttrOut); + + } + private List getAllPortTemplateConsolidationData( List portsIds, FilePortConsolidationData filePortConsolidationData) { @@ -335,21 +460,19 @@ public class ConsolidationService { return portTemplateConsolidationDataOfSameType; } - private boolean checkGetAttrRelationsForEntityConsolidationData( - Collection entities, - Collection nodeTemplateIdsOfTheSameType) { + private boolean checkGetAttrRelationsForEntityConsolidationData(Collection entities, + Collection nodeTemplateIdsOfTheSameType, + Function>> getAttrValuesMethod) { for (Object entity : entities) { - EntityConsolidationData currentEntity = (EntityConsolidationData) entity; - Set getAttrInNodeIds = - currentEntity.getNodesGetAttrIn() == null ? new HashSet<>() - : currentEntity.getNodesGetAttrIn().keySet(); - for (String nodeId : getAttrInNodeIds) { - if (nodeTemplateIdsOfTheSameType.contains(nodeId)) { - return true; - } + Map> getAttrValue = + getAttrValuesMethod.apply((EntityConsolidationData) entity); + Set 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> firstEntityMap, Map> 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 - collectAllPortsTemplateConsolidationData(List portIds, - String serviceTemplateName, - ConsolidationData consolidationData) { + private boolean checkSubInterfaceRules(List + portTemplateConsolidationDataList) { + ListMultimap subInterfaceTypeToEntity = + collectAllSubInterfacesFromSameTypeFromPorts(portTemplateConsolidationDataList); + List subInterfaceList = new ArrayList<>(subInterfaceTypeToEntity.values()); + return areSubInterfacePropertiesAndRelationsValid(subInterfaceList); + } + + private boolean areSubInterfacePropertiesAndRelationsValid( + List subInterfaceList) { + return isResourceGroupPropertiesSimilarBetweenSubPorts(subInterfaceList) + && checkSubInterfaceRelations(subInterfaceList) + && !areThereGetAttrRelationsBetweenSubInterfacesOfSameType( + getSubInterfaceIdsFromSameType(subInterfaceList), subInterfaceList); + } + + private boolean checkSubInterfaceRelations(List + subInterfaceList) { + return CollectionUtils.isEmpty(subInterfaceList) + || checkEntityConsolidationDataRelations(subInterfaceList); + } + + private boolean isResourceGroupPropertiesSimilarBetweenSubPorts( + List 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 getSubInterfaceIdsFromSameType(List + subInterfaceList) { + if (CollectionUtils.isEmpty(subInterfaceList)) { + return new ArrayList<>(); + } + + return subInterfaceList.stream().map(SubInterfaceTemplateConsolidationData::getNodeTemplateId) + .collect(Collectors.toList()); + } + + private ListMultimap collectAllSubInterfacesFromSameTypeFromPorts( + List portTemplateConsolidationDataList) { + ListMultimap subInterfaceTypeToEntity = ArrayListMultimap.create(); + for (PortTemplateConsolidationData portTemplateConsolidationData : portTemplateConsolidationDataList) { + portTemplateConsolidationData.copyMappedInto(subInterfaceTypeToEntity); + } + + return subInterfaceTypeToEntity; + } + + private List collectAllPortsTemplateConsolidationData(List 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 subInterfaceTemplateConsolidationDataList = + new ArrayList<>(); for (List 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 staringPortIds = getPortsIds(typeComputeConsolidationData.getAllComputeTemplateConsolidationData().iterator().next()); + Set staringPortIds = getPortsIds( + typeComputeConsolidationData.getAllComputeTemplateConsolidationData().iterator().next()); - for (ComputeTemplateConsolidationData compute : typeComputeConsolidationData.getAllComputeTemplateConsolidationData()) { + for (ComputeTemplateConsolidationData compute : typeComputeConsolidationData + .getAllComputeTemplateConsolidationData()) { Set 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 index 0000000000..2092eb7cc7 --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/SubInterfaceConsolidationDataTestInfo.java @@ -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 nodesConnectedIn; + private final List nodesConnectedOut; + private final List nodesGetAttrIn; + private final List> nodesGetAttrOut; + private final ConsolidationData consolidationData; + + public SubInterfaceConsolidationDataTestInfo(String serviceTemplateFileName, + String portNodeTemplateId, String subInterfaceType, + int resourceGroupCount, String networkRole, + String subInterfaceId, List nodesConnectedIn, + List nodesConnectedOut, + List nodesGetAttrIn, + List> 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 getNodesConnectedIn() { + return nodesConnectedIn; + } + + public List getNodesConnectedOut() { + return nodesConnectedOut; + } + + public List getNodesGetAttrIn() { + return nodesGetAttrIn; + } + + public List> getNodesGetAttrOut() { + return nodesGetAttrOut; + } + + public ConsolidationData getConsolidationData() { + return consolidationData; + } +} diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/TestUtils.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/TestUtils.java index c7d3931961..1f7167c522 100644 --- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/TestUtils.java +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/TestUtils.java @@ -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 for the files in this directory */ - public static Map getServiceTemplates(String baseDirPath){ + private static Map getServiceTemplates(String baseDirPath) { Map 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 for the files in this directory */ public static Map getServiceTemplates(Map - expectedResultMap){ + expectedResultMap) { Map 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> reqListIterator = requirements .listIterator(); - while (reqListIterator.hasNext()){ + while (reqListIterator.hasNext()) { Map requirement = reqListIterator.next(); Map concreteRequirement = new HashMap<>(); for (Map.Entry reqEntry : requirement.entrySet()) { @@ -290,14 +291,39 @@ public class TestUtils { List> groupIds, List> getAttrInIds, List>> 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 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 nodeIdsConnectedIn, + private static void updateRelationsForEntityConsolidationData(List nodeIdsConnectedIn, List nodeIdsConnectedOut, List groupIds, List getAttrInIds, List> 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 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> portTypeToIdList, - Map> volumes) { + public static ComputeTemplateConsolidationData createComputeTemplateConsolidationData( + String computeNodeTemplateId, + List> portTypeToIdList, + Map> 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 idsPontingTome){ - if(CollectionUtils.isEmpty(idsPontingTome)){ + private static void updateRelationsIn(EntityConsolidationData entity, + List 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 idsToUpdate){ - if(CollectionUtils.isEmpty(idsToUpdate)){ + private static void updateRelationsOut(EntityConsolidationData entity, + List 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 idsToUpdate){ - if(CollectionUtils.isEmpty(idsToUpdate)){ + private static void updateGetAttrIn(EntityConsolidationData entity, + List 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> getAttrOutIds){ - if(CollectionUtils.isEmpty(getAttrOutIds)){ + private static void updateGetAttrOut(EntityConsolidationData entity, + List> getAttrOutIds) { + if (CollectionUtils.isEmpty(getAttrOutIds)) { return; } - for(Pair getAttrOutFunc : getAttrOutIds){ + for (Pair getAttrOutFunc : getAttrOutIds) { entity.addNodesGetAttrOut(getAttrOutFunc.getLeft(), getAttrOutFunc.getRight()); } } - public static void updateVolumes(ComputeTemplateConsolidationData compute, - List volumeIds){ - if(CollectionUtils.isEmpty(volumeIds)){ + private static void updateVolumes(ComputeTemplateConsolidationData compute, + List 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> portIdToTypeList, ComputeTemplateConsolidationData - compute){ + compute) { compute.setPorts(new HashMap<>()); - for(Pair portIdToType : portIdToTypeList){ + for (Pair 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 entry : groups.entrySet()) { String groupId = entry.getKey(); GroupDefinition groupDefinition = entry.getValue(); - if (groupDefinition.getType().contains("HeatStack")) + if (groupDefinition.getType().contains("HeatStack")) { continue; + } List 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 { } - } diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationServiceTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationServiceTest.java index 4af2415381..63ce6b5682 100644 --- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationServiceTest.java +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationServiceTest.java @@ -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 expectedUnifiedModes = - Arrays.asList(UnifiedCompositionMode.ScalingInstances); + Collections.singletonList(UnifiedCompositionMode.ScalingInstances); verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel); } @@ -101,7 +134,7 @@ public class ConsolidationServiceTest { translationContext.setConsolidationData(consolidationData); List expectedUnifiedModes = - Arrays.asList(UnifiedCompositionMode.SingleSubstitution); + Collections.singletonList(UnifiedCompositionMode.SingleSubstitution); verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel); } @@ -137,7 +170,7 @@ public class ConsolidationServiceTest { translationContext.setConsolidationData(consolidationData); List expectedUnifiedModes = - Arrays.asList(UnifiedCompositionMode.SingleSubstitution); + Collections.singletonList(UnifiedCompositionMode.SingleSubstitution); verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel); } @@ -181,7 +214,7 @@ public class ConsolidationServiceTest { translationContext.setConsolidationData(consolidationData); List expectedUnifiedModes = - Arrays.asList(UnifiedCompositionMode.SingleSubstitution); + Collections.singletonList(UnifiedCompositionMode.SingleSubstitution); verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel); } @@ -230,7 +263,7 @@ public class ConsolidationServiceTest { translationContext.setConsolidationData(consolidationData); List expectedUnifiedModes = - Arrays.asList(UnifiedCompositionMode.ScalingInstances); + Collections.singletonList(UnifiedCompositionMode.ScalingInstances); verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel); } @@ -279,7 +312,7 @@ public class ConsolidationServiceTest { translationContext.setConsolidationData(consolidationData); List expectedUnifiedModes = - Arrays.asList(UnifiedCompositionMode.SingleSubstitution); + Collections.singletonList(UnifiedCompositionMode.SingleSubstitution); verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel); } @@ -376,8 +409,8 @@ public class ConsolidationServiceTest { translationContext.setConsolidationData(consolidationData); List 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 expectedUnifiedModes = - Arrays.asList(UnifiedCompositionMode.ScalingInstances); + Collections.singletonList(UnifiedCompositionMode.ScalingInstances); verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel); } @@ -540,7 +573,7 @@ public class ConsolidationServiceTest { translationContext.setConsolidationData(consolidationData); List expectedUnifiedModes = - Arrays.asList(UnifiedCompositionMode.CatalogInstance); + Collections.singletonList(UnifiedCompositionMode.CatalogInstance); verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel); } @@ -584,7 +617,7 @@ public class ConsolidationServiceTest { translationContext.setConsolidationData(consolidationData); List 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> portTypeToIdList = new ArrayList<>(); portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1")); @@ -626,12 +660,12 @@ public class ConsolidationServiceTest { translationContext.setConsolidationData(consolidationData); List 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 expectedUnifiedModes = - Arrays.asList(UnifiedCompositionMode.CatalogInstance); + Collections.singletonList(UnifiedCompositionMode.CatalogInstance); verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel); } @@ -717,7 +751,7 @@ public class ConsolidationServiceTest { translationContext.setConsolidationData(consolidationData); List expectedUnifiedModes = - Arrays.asList(UnifiedCompositionMode.CatalogInstance); + Collections.singletonList(UnifiedCompositionMode.CatalogInstance); verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel); } @@ -760,7 +794,7 @@ public class ConsolidationServiceTest { translationContext.setConsolidationData(consolidationData); List 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 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 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 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 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 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 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 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 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 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 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 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 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 portNodeTemplateIds = Arrays.asList("cm01_port_1", "cm01_port_2", "cm01_port_3"); List> 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> 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> 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> 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>> 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>> getAttrOut = + Arrays.asList(null, null, null); TestUtils.updateMultiplePortConsolidationDatas( mainST, portNodeTemplateIds, nodesConnectedInIds, nodesConnectedOutIds, groupIds, @@ -1516,7 +1617,7 @@ public class ConsolidationServiceTest { translationContext.setConsolidationData(consolidationData); List 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 portNodeTemplateIds = Arrays.asList("cm01_port_1", "cm01_port_2", "cm01_port_3"); List> 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> 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> 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> 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>> 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>> getAttrOut = + Arrays.asList(null, null, null); TestUtils.updateMultiplePortConsolidationDatas( mainST, portNodeTemplateIds, nodesConnectedInIds, nodesConnectedOutIds, groupIds, @@ -1586,7 +1695,7 @@ public class ConsolidationServiceTest { translationContext.setConsolidationData(consolidationData); List 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 portNodeTemplateIds = Arrays.asList("cm01_port_1", "cm01_port_2", "cm01_port_3"); List> 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> 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> 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> 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>> 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>> getAttrOut = + Arrays.asList(null, null, null); TestUtils.updateMultiplePortConsolidationDatas( mainST, portNodeTemplateIds, nodesConnectedInIds, nodesConnectedOutIds, groupIds, @@ -1656,7 +1773,7 @@ public class ConsolidationServiceTest { translationContext.setConsolidationData(consolidationData); List 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("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("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("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 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("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("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("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 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> 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> 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> 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> 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>> getAttrOut = Arrays.asList(null, null, null, null, - null, null); + List>> 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 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 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> 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> 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> getAttrInIds = Arrays.asList(null, null, null, null, null, null); List> 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>> getAttrOut = Arrays.asList( - Arrays.asList(new ImmutablePair("sm01_port_1", getAttrFuncData)), - Arrays.asList(new ImmutablePair("sm01_port_2", getAttrFuncData)), - Arrays.asList(new ImmutablePair("sm01_port_3", getAttrFuncData)), - Arrays.asList(new ImmutablePair("cm01_port_1", getAttrFuncData)), - Arrays.asList(new ImmutablePair("cm01_port_2", getAttrFuncData)), - Arrays.asList(new ImmutablePair("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 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 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> 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> 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> getAttrInIds = Arrays.asList(null, null, null, null, null, null); List> 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>> getAttrOut = Arrays.asList( - Arrays.asList(new ImmutablePair("server_ps01", getAttrFuncData)), - Arrays.asList(new ImmutablePair("server_ps01", getAttrFuncData)), - Arrays.asList(new ImmutablePair("sm01_port_3", getAttrFuncData)), - Arrays.asList(new ImmutablePair("cm01_port_1", getAttrFuncData)), - Arrays.asList(new ImmutablePair("cm01_port_2", getAttrFuncData)), - Arrays.asList(new ImmutablePair("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 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 getAttrOutInvalid1 = + new ImmutablePair<>("interface_1", getAttrFuncData); + Pair 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 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> 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 expectedUnifiedCompositionModes, @@ -2176,5 +2650,4 @@ public class ConsolidationServiceTest { .put(serviceTemplateFileName, serviceTemplate); } - */ } diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/BaseFullTranslationTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/BaseFullTranslationTest.java index 19f4d59514..17383a9a10 100644 --- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/BaseFullTranslationTest.java +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/BaseFullTranslationTest.java @@ -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 index 0000000000..d575e26ff9 --- /dev/null +++ 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 @@ -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 -- cgit 1.2.3-korg