diff options
Diffstat (limited to 'openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/UnifiedCompositionUtil.java')
-rw-r--r-- | openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/UnifiedCompositionUtil.java | 294 |
1 files changed, 135 insertions, 159 deletions
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/UnifiedCompositionUtil.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/UnifiedCompositionUtil.java index 82fb4b0c8e..00a3ff3ea4 100644 --- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/UnifiedCompositionUtil.java +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/UnifiedCompositionUtil.java @@ -13,12 +13,10 @@ * 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 java.util.ArrayList; import java.util.Collection; import java.util.Collections; @@ -27,7 +25,6 @@ import java.util.List; import java.util.Map; import java.util.Objects; import java.util.Optional; - import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.MapUtils; import org.onap.sdc.tosca.datatypes.model.NodeTemplate; @@ -44,178 +41,157 @@ import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolida */ public class UnifiedCompositionUtil { - private UnifiedCompositionUtil() { - //Hiding the implicit public constructor - } - - /** - * Gets all ports per port type, which are connected to the computes from the input - * computeTemplateConsolidationDataCollection. - * - * @param computeTemplateConsolidationDataCollection collection of compute template - * consolidation data - * @return set of port ids, per port type - */ - static Map<String, List<String>> collectAllPortsFromEachTypesFromComputes( - Collection<ComputeTemplateConsolidationData> computeTemplateConsolidationDataCollection) { - Map<String, List<String>> portTypeToIds = new HashMap<>(); - - for (ComputeTemplateConsolidationData compute : computeTemplateConsolidationDataCollection) { - Map<String, List<String>> ports = compute.getPorts(); - if (!MapUtils.isEmpty(ports)) { - addPortsToMap(portTypeToIds, ports); - } + private UnifiedCompositionUtil() { + //Hiding the implicit public constructor + } + + /** + * Gets all ports per port type, which are connected to the computes from the input computeTemplateConsolidationDataCollection. + * + * @param computeTemplateConsolidationDataCollection collection of compute template consolidation data + * @return set of port ids, per port type + */ + static Map<String, List<String>> collectAllPortsFromEachTypesFromComputes( + Collection<ComputeTemplateConsolidationData> computeTemplateConsolidationDataCollection) { + Map<String, List<String>> portTypeToIds = new HashMap<>(); + for (ComputeTemplateConsolidationData compute : computeTemplateConsolidationDataCollection) { + Map<String, List<String>> ports = compute.getPorts(); + if (!MapUtils.isEmpty(ports)) { + addPortsToMap(portTypeToIds, ports); + } + } + return portTypeToIds; + } + + static ListMultimap<String, SubInterfaceTemplateConsolidationData> collectAllSubInterfacesOfEachTypesFromPorts( + Collection<PortTemplateConsolidationData> portTemplateConsolidationDataCollection) { + ListMultimap<String, SubInterfaceTemplateConsolidationData> subInterfaceDataByType = ArrayListMultimap.create(); + for (PortTemplateConsolidationData port : portTemplateConsolidationDataCollection) { + port.copyMappedInto(subInterfaceDataByType); + } + return subInterfaceDataByType; + } + + private static void addPortsToMap(Map<String, List<String>> portTypeToIds, Map<String, List<String>> ports) { + for (Map.Entry<String, List<String>> portTypeToIdEntry : ports.entrySet()) { + portTypeToIds.putIfAbsent(portTypeToIdEntry.getKey(), new ArrayList<>()); + portTypeToIds.get(portTypeToIdEntry.getKey()).addAll(portTypeToIdEntry.getValue()); + } + } + + static String getComputeTypeSuffix(ServiceTemplate serviceTemplate, String computeNodeTemplateId) { + NodeTemplate computeNodeTemplate = DataModelUtil.getNodeTemplate(serviceTemplate, computeNodeTemplateId); + if (Objects.nonNull(computeNodeTemplate)) { + return getComputeTypeSuffix(computeNodeTemplate.getType()); + } + return null; } - return portTypeToIds; - } + public static String getNewComputeNodeTemplateId(ServiceTemplate serviceTemplate, String computeNodeTemplateId) { + return getComputeTypeSuffix(serviceTemplate, computeNodeTemplateId); + } - static ListMultimap<String, SubInterfaceTemplateConsolidationData> - collectAllSubInterfacesOfEachTypesFromPorts(Collection<PortTemplateConsolidationData> - portTemplateConsolidationDataCollection) { - ListMultimap<String, SubInterfaceTemplateConsolidationData> subInterfaceDataByType = ArrayListMultimap.create(); - for (PortTemplateConsolidationData port : portTemplateConsolidationDataCollection) { - port.copyMappedInto(subInterfaceDataByType); + static String getComputeTypeSuffix(String computeType) { + return DataModelUtil.getNamespaceSuffix(computeType); } - return subInterfaceDataByType; - } - - private static void addPortsToMap(Map<String, List<String>> portTypeToIds, - Map<String, List<String>> ports) { - for (Map.Entry<String, List<String>> portTypeToIdEntry : ports.entrySet()) { - portTypeToIds.putIfAbsent(portTypeToIdEntry.getKey(), new ArrayList<>()); - portTypeToIds.get(portTypeToIdEntry.getKey()).addAll(portTypeToIdEntry.getValue()); + + public static ComputeTemplateConsolidationData getConnectedComputeConsolidationData(List<UnifiedCompositionData> unifiedCompositionDataList, + String portNodeTemplateId) { + for (UnifiedCompositionData unifiedCompositionData : unifiedCompositionDataList) { + if (Objects.isNull(unifiedCompositionData.getComputeTemplateConsolidationData().getPorts())) { + continue; + } + Collection<List<String>> portsCollection = unifiedCompositionData.getComputeTemplateConsolidationData().getPorts().values(); + for (List<String> portIdList : portsCollection) { + if (portIdList.contains(portNodeTemplateId)) { + return unifiedCompositionData.getComputeTemplateConsolidationData(); + } + } + } + return null; } - } - static String getComputeTypeSuffix(ServiceTemplate serviceTemplate, - String computeNodeTemplateId) { - NodeTemplate computeNodeTemplate = DataModelUtil.getNodeTemplate(serviceTemplate, computeNodeTemplateId); - if (Objects.nonNull(computeNodeTemplate)) { - return getComputeTypeSuffix(computeNodeTemplate.getType()); + public static PortTemplateConsolidationData getPortTemplateConsolidationDataForPort(List<UnifiedCompositionData> unifiedCompositionDataList, + String portNodeTemplateId) { + for (UnifiedCompositionData unifiedCompositionData : unifiedCompositionDataList) { + if (CollectionUtils.isEmpty(unifiedCompositionData.getPortTemplateConsolidationDataList())) { + continue; + } + List<PortTemplateConsolidationData> portTemplateConsolidationDataList = unifiedCompositionData.getPortTemplateConsolidationDataList(); + for (PortTemplateConsolidationData portTemplateConsolidationData : portTemplateConsolidationDataList) { + if (portTemplateConsolidationData.getNodeTemplateId().equals(portNodeTemplateId)) { + return portTemplateConsolidationData; + } + } + } + return null; } - return null; - } - - public static String getNewComputeNodeTemplateId(ServiceTemplate serviceTemplate, String computeNodeTemplateId) { - return getComputeTypeSuffix(serviceTemplate, computeNodeTemplateId); - } - - static String getComputeTypeSuffix(String computeType) { - return DataModelUtil.getNamespaceSuffix(computeType); - } - - public static ComputeTemplateConsolidationData getConnectedComputeConsolidationData( - List<UnifiedCompositionData> unifiedCompositionDataList, - String portNodeTemplateId) { - for (UnifiedCompositionData unifiedCompositionData : unifiedCompositionDataList) { - if (Objects.isNull(unifiedCompositionData.getComputeTemplateConsolidationData().getPorts())) { - continue; - } - Collection<List<String>> portsCollection = - unifiedCompositionData.getComputeTemplateConsolidationData().getPorts().values(); - for (List<String> portIdList : portsCollection) { - if (portIdList.contains(portNodeTemplateId)) { - return unifiedCompositionData.getComputeTemplateConsolidationData(); + + //The ID should be <vm_type>_<port_type> or <vm_type>_<portNodeTemplateId> + public static String getNewPortNodeTemplateId(String portNodeTemplateId, String connectedComputeNodeType, + ComputeTemplateConsolidationData computeTemplateConsolidationData) { + StringBuilder newPortNodeTemplateId = new StringBuilder(); + String portType = ConsolidationDataUtil.getPortType(portNodeTemplateId, DataModelUtil.getNamespaceSuffix(connectedComputeNodeType)); + newPortNodeTemplateId.append(DataModelUtil.getNamespaceSuffix(connectedComputeNodeType)); + if (computeTemplateConsolidationData.getPorts().get(portType) != null + && computeTemplateConsolidationData.getPorts().get(portType).size() > 1) { + //single port + newPortNodeTemplateId.append("_").append(portNodeTemplateId); + } else { + //consolidation port + newPortNodeTemplateId.append("_").append(portType); } - } + return newPortNodeTemplateId.toString(); } - return null; - } - - public static PortTemplateConsolidationData getPortTemplateConsolidationDataForPort(List<UnifiedCompositionData> - unifiedCompositionDataList, - String portNodeTemplateId) { - for (UnifiedCompositionData unifiedCompositionData : unifiedCompositionDataList) { - if (CollectionUtils.isEmpty(unifiedCompositionData.getPortTemplateConsolidationDataList())) { - continue; - } - List<PortTemplateConsolidationData> portTemplateConsolidationDataList = - unifiedCompositionData.getPortTemplateConsolidationDataList(); - for (PortTemplateConsolidationData portTemplateConsolidationData : portTemplateConsolidationDataList) { - if (portTemplateConsolidationData.getNodeTemplateId().equals(portNodeTemplateId)) { - return portTemplateConsolidationData; + + public static String getNewSubInterfaceNodeTemplateId(ServiceTemplate serviceTemplate, String connectedComputeNodeType, + ComputeTemplateConsolidationData computeTemplateConsolidationData, + SubInterfaceTemplateConsolidationData subInterfaceTemplateConsolidationData, + TranslationContext context) { + //The ID should be <vm_type>_<portType/NodetemplateId>_<subInterface_type> + + // or <vm_type>_<portType/NodetemplateId>_<subInterfaceNodeTemplateId> + StringBuilder newSubInterfaceNodeTemplateId = new StringBuilder(); + newSubInterfaceNodeTemplateId.append( + getNewPortNodeTemplateId(subInterfaceTemplateConsolidationData.getParentPortNodeTemplateId(), connectedComputeNodeType, + computeTemplateConsolidationData)); + Optional<PortTemplateConsolidationData> portTemplateConsolidationData = subInterfaceTemplateConsolidationData + .getParentPortTemplateConsolidationData(serviceTemplate, context); + NodeTemplate subInterfaceNodeTemplate = DataModelUtil + .getNodeTemplate(serviceTemplate, subInterfaceTemplateConsolidationData.getNodeTemplateId()); + if (portTemplateConsolidationData.isPresent()) { + String subInterfaceSuffix = getSubInterfaceSuffix(portTemplateConsolidationData.get(), subInterfaceNodeTemplate, + subInterfaceTemplateConsolidationData); + newSubInterfaceNodeTemplateId.append("_").append(subInterfaceSuffix); + return newSubInterfaceNodeTemplateId.toString(); } - } + return subInterfaceTemplateConsolidationData.getNodeTemplateId(); } - return null; - } - - //The ID should be <vm_type>_<port_type> or <vm_type>_<portNodeTemplateId> - public static String getNewPortNodeTemplateId( - String portNodeTemplateId, - String connectedComputeNodeType, - ComputeTemplateConsolidationData computeTemplateConsolidationData) { - - StringBuilder newPortNodeTemplateId = new StringBuilder(); - String portType = ConsolidationDataUtil.getPortType(portNodeTemplateId, - DataModelUtil.getNamespaceSuffix(connectedComputeNodeType)); - newPortNodeTemplateId.append(DataModelUtil.getNamespaceSuffix(connectedComputeNodeType)); - if (computeTemplateConsolidationData.getPorts().get(portType) != null - && computeTemplateConsolidationData.getPorts().get(portType).size() > 1) { - //single port - newPortNodeTemplateId.append("_").append(portNodeTemplateId); - } else { - //consolidation port - newPortNodeTemplateId.append("_").append(portType); + + static String getSubInterfaceTypeSuffix(String nodeType) { + return DataModelUtil.getNamespaceSuffix(nodeType); } - return newPortNodeTemplateId.toString(); - } - - public static String getNewSubInterfaceNodeTemplateId(ServiceTemplate serviceTemplate, - String connectedComputeNodeType, - ComputeTemplateConsolidationData computeTemplateConsolidationData, - SubInterfaceTemplateConsolidationData - subInterfaceTemplateConsolidationData, - TranslationContext context) { - //The ID should be <vm_type>_<portType/NodetemplateId>_<subInterface_type> - // or <vm_type>_<portType/NodetemplateId>_<subInterfaceNodeTemplateId> - StringBuilder newSubInterfaceNodeTemplateId = new StringBuilder(); - newSubInterfaceNodeTemplateId.append(getNewPortNodeTemplateId(subInterfaceTemplateConsolidationData - .getParentPortNodeTemplateId(), connectedComputeNodeType, computeTemplateConsolidationData)); - Optional<PortTemplateConsolidationData> portTemplateConsolidationData = - subInterfaceTemplateConsolidationData.getParentPortTemplateConsolidationData(serviceTemplate, context); - NodeTemplate subInterfaceNodeTemplate = - DataModelUtil.getNodeTemplate(serviceTemplate, subInterfaceTemplateConsolidationData.getNodeTemplateId()); - if (portTemplateConsolidationData.isPresent()) { - String subInterfaceSuffix = getSubInterfaceSuffix(portTemplateConsolidationData.get(), - subInterfaceNodeTemplate, subInterfaceTemplateConsolidationData); - newSubInterfaceNodeTemplateId.append("_").append(subInterfaceSuffix); - return newSubInterfaceNodeTemplateId.toString(); + + public static List<SubInterfaceTemplateConsolidationData> getSubInterfaceTemplateConsolidationDataList( + UnifiedCompositionData unifiedCompositionData) { + return unifiedCompositionData.getSubInterfaceTemplateConsolidationDataList() == null ? Collections.emptyList() + : unifiedCompositionData.getSubInterfaceTemplateConsolidationDataList(); } - return subInterfaceTemplateConsolidationData.getNodeTemplateId(); - } - - static String getSubInterfaceTypeSuffix(String nodeType) { - return DataModelUtil.getNamespaceSuffix(nodeType); - } - - public static List<SubInterfaceTemplateConsolidationData> getSubInterfaceTemplateConsolidationDataList( - UnifiedCompositionData unifiedCompositionData) { - return unifiedCompositionData.getSubInterfaceTemplateConsolidationDataList() == null ? Collections.emptyList() : - unifiedCompositionData.getSubInterfaceTemplateConsolidationDataList(); - } - - private static String getSubInterfaceSuffix(PortTemplateConsolidationData portTemplateConsolidationData, - NodeTemplate subInterfaceNodeTemplate, - SubInterfaceTemplateConsolidationData - subInterfaceTemplateConsolidationData) { - if (portTemplateConsolidationData.isSubInterfaceNodeTemplateIdParameter(subInterfaceNodeTemplate.getType())) { - //If there are more than one subinterfaces with same type use node template id - return subInterfaceTemplateConsolidationData.getNodeTemplateId(); + + private static String getSubInterfaceSuffix(PortTemplateConsolidationData portTemplateConsolidationData, NodeTemplate subInterfaceNodeTemplate, + SubInterfaceTemplateConsolidationData subInterfaceTemplateConsolidationData) { + if (portTemplateConsolidationData.isSubInterfaceNodeTemplateIdParameter(subInterfaceNodeTemplate.getType())) { + //If there are more than one subinterfaces with same type use node template id + return subInterfaceTemplateConsolidationData.getNodeTemplateId(); + } + //Add sub interface type since we have only one subinterface per type + return getSubInterfaceTypeSuffix(subInterfaceNodeTemplate.getType()); } - //Add sub interface type since we have only one subinterface per type - return getSubInterfaceTypeSuffix(subInterfaceNodeTemplate.getType()); - } - public static Map<String, List<String>> collectAllPortsOfEachTypeFromComputes( - List<UnifiedCompositionData> unifiedCompositionDataList) { + public static Map<String, List<String>> collectAllPortsOfEachTypeFromComputes(List<UnifiedCompositionData> unifiedCompositionDataList) { Map<String, List<String>> portIdsPerPortType = new HashMap<>(); - unifiedCompositionDataList - .forEach(unifiedCompositionData -> - unifiedCompositionData.getComputeTemplateConsolidationData() - .collectAllPortsOfEachTypeFromCompute(portIdsPerPortType)); - + unifiedCompositionDataList.forEach(unifiedCompositionData -> unifiedCompositionData.getComputeTemplateConsolidationData() + .collectAllPortsOfEachTypeFromCompute(portIdsPerPortType)); return portIdsPerPortType; } } |