diff options
Diffstat (limited to 'openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services')
3 files changed, 89 insertions, 370 deletions
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationDataUtil.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationDataUtil.java index b766f30388..01e601738b 100644 --- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationDataUtil.java +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationDataUtil.java @@ -18,7 +18,6 @@ package org.openecomp.sdc.translator.services.heattotosca; import java.util.List; import java.util.Map; -import java.util.Objects; import java.util.Optional; import org.apache.commons.collections4.MapUtils; @@ -26,7 +25,6 @@ import org.apache.commons.lang3.StringUtils; import org.onap.sdc.tosca.datatypes.model.RequirementAssignment; import org.onap.sdc.tosca.datatypes.model.ServiceTemplate; import org.openecomp.core.utilities.file.FileUtils; -import org.openecomp.sdc.common.errors.CoreException; import org.openecomp.sdc.datatypes.configuration.ImplementationConfiguration; import org.openecomp.sdc.heat.datatypes.model.HeatOrchestrationTemplate; import org.openecomp.sdc.heat.datatypes.model.HeatResourcesTypes; @@ -34,29 +32,17 @@ import org.openecomp.sdc.heat.datatypes.model.Resource; import org.openecomp.sdc.tosca.services.ToscaUtil; import org.openecomp.sdc.translator.datatypes.heattotosca.TranslationContext; import org.openecomp.sdc.translator.datatypes.heattotosca.to.TranslateTo; -import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.ComputeConsolidationData; import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.ComputeConsolidationDataHandler; import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.ComputeTemplateConsolidationData; -import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.ConsolidationData; import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.ConsolidationDataHandler; -import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.EntityConsolidationData; -import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.FileComputeConsolidationData; -import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.FileNestedConsolidationData; -import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.FilePortConsolidationData; -import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.GetAttrFuncData; -import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.NestedConsolidationData; -import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.NestedTemplateConsolidationData; -import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.PortConsolidationData; -import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.PortTemplateConsolidationData; -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; +import org.openecomp.sdc.translator.services.heattotosca.impl.functiontranslation.FunctionTranslator; +import static org.openecomp.sdc.translator.services.heattotosca.ConfigConstants.TRANS_MAPPING_DELIMITER_CHAR; /** * Utility class for consolidation data collection helper methods. */ -public class ConsolidationDataUtil { + public class ConsolidationDataUtil { private static final String UNDERSCORE = "_"; private static final String DIGIT_REGEX = "\\d+"; @@ -65,223 +51,13 @@ public class ConsolidationDataUtil { // prevent instantiation of utility class } - /** - * Gets compute template consolidation data. - * - * @param context the translation context - * @param serviceTemplate the service template - * @param computeNodeType the compute node type - * @param computeNodeTemplateId the compute node template id - * @return the compute template consolidation data - */ - public static ComputeTemplateConsolidationData getComputeTemplateConsolidationData(TranslationContext context, - ServiceTemplate serviceTemplate, String computeNodeType, String computeNodeTemplateId) { - - ConsolidationData consolidationData = context.getConsolidationData(); - String serviceTemplateFileName = ToscaUtil.getServiceTemplateFileName(serviceTemplate); - - ComputeConsolidationData computeConsolidationData = consolidationData.getComputeConsolidationData(); - - FileComputeConsolidationData fileComputeConsolidationData = - computeConsolidationData.getFileComputeConsolidationData(serviceTemplateFileName); - - if (fileComputeConsolidationData == null) { - fileComputeConsolidationData = new FileComputeConsolidationData(); - computeConsolidationData.setFileComputeConsolidationData(serviceTemplateFileName, - fileComputeConsolidationData); - } - - TypeComputeConsolidationData typeComputeConsolidationData = - fileComputeConsolidationData.getTypeComputeConsolidationData(computeNodeType); - if (typeComputeConsolidationData == null) { - typeComputeConsolidationData = new TypeComputeConsolidationData(); - fileComputeConsolidationData.setTypeComputeConsolidationData(computeNodeType, - typeComputeConsolidationData); - } - - ComputeTemplateConsolidationData computeTemplateConsolidationData = - typeComputeConsolidationData.getComputeTemplateConsolidationData(computeNodeTemplateId); - if (computeTemplateConsolidationData == null) { - computeTemplateConsolidationData = new ComputeTemplateConsolidationData(); - computeTemplateConsolidationData.setNodeTemplateId(computeNodeTemplateId); - typeComputeConsolidationData.setComputeTemplateConsolidationData(computeNodeTemplateId, - computeTemplateConsolidationData); - } - - return computeTemplateConsolidationData; - } - - - /** - * Gets port template consolidation data. - * - * @param context the context - * @param serviceTemplate the service template - * @param portNodeTemplateId the port node template id - * @return the port template consolidation data - */ - public static PortTemplateConsolidationData getPortTemplateConsolidationData(TranslationContext context, - ServiceTemplate serviceTemplate, - String portResourceId, - String portResourceType, - String portNodeTemplateId) { - - ConsolidationData consolidationData = context.getConsolidationData(); - String serviceTemplateFileName = ToscaUtil.getServiceTemplateFileName(serviceTemplate); - - PortConsolidationData portConsolidationData = consolidationData.getPortConsolidationData(); - - FilePortConsolidationData filePortConsolidationData = - portConsolidationData.getFilePortConsolidationData(serviceTemplateFileName); - - if (filePortConsolidationData == null) { - filePortConsolidationData = new FilePortConsolidationData(); - portConsolidationData.setFilePortConsolidationData(serviceTemplateFileName, - filePortConsolidationData); - } - - PortTemplateConsolidationData portTemplateConsolidationData = - filePortConsolidationData.getPortTemplateConsolidationData(portNodeTemplateId); - if (portTemplateConsolidationData == null) { - portTemplateConsolidationData = filePortConsolidationData - .createPortTemplateConsolidationData(portNodeTemplateId, portResourceId, portResourceType); - filePortConsolidationData.setPortTemplateConsolidationData(portNodeTemplateId, - portTemplateConsolidationData); - } - - return portTemplateConsolidationData; - } - - public static Optional<SubInterfaceTemplateConsolidationData> getSubInterfaceTemplateConsolidationData( - TranslateTo subInterfaceTo, String subInterfaceNodeTemplateId) { - - Optional<String> parentPortNodeTemplateId = - HeatToToscaUtil.getSubInterfaceParentPortNodeTemplateId(subInterfaceTo); - - return parentPortNodeTemplateId.map(s -> getSubInterfaceTemplateConsolidationData(subInterfaceTo, - s, subInterfaceNodeTemplateId)); - - } - - private static SubInterfaceTemplateConsolidationData getSubInterfaceTemplateConsolidationData( - TranslateTo subInterfaceTo, String parentPortNodeTemplateId, String subInterfaceNodeTemplateId) { - - ConsolidationData consolidationData = subInterfaceTo.getContext().getConsolidationData(); - String serviceTemplateFileName = ToscaUtil.getServiceTemplateFileName(subInterfaceTo.getServiceTemplate()); - - PortConsolidationData portConsolidationData = consolidationData.getPortConsolidationData(); - - FilePortConsolidationData filePortConsolidationData = - portConsolidationData.getFilePortConsolidationData(serviceTemplateFileName); - - if (filePortConsolidationData == null) { - filePortConsolidationData = new FilePortConsolidationData(); - portConsolidationData.setFilePortConsolidationData(serviceTemplateFileName, - filePortConsolidationData); - } - - PortTemplateConsolidationData portTemplateConsolidationData = - filePortConsolidationData.getPortTemplateConsolidationData(parentPortNodeTemplateId); - if (portTemplateConsolidationData == null) { - Optional<String> portResourceId = getSubInterfaceParentPortResourceId(parentPortNodeTemplateId, - subInterfaceTo); - if (portResourceId.isPresent()) { - portTemplateConsolidationData = filePortConsolidationData.createPortTemplateConsolidationData( - parentPortNodeTemplateId, portResourceId.get(), - HeatToToscaUtil.getResourceType(portResourceId.get(), subInterfaceTo - .getHeatOrchestrationTemplate(), subInterfaceTo.getHeatFileName())); - } else { - portTemplateConsolidationData = new PortTemplateConsolidationData(); - portTemplateConsolidationData.setNodeTemplateId(parentPortNodeTemplateId); - } - filePortConsolidationData.setPortTemplateConsolidationData(parentPortNodeTemplateId, - portTemplateConsolidationData); - } - return portTemplateConsolidationData.addSubInterfaceTemplateConsolidationData( - subInterfaceTo.getResource(), subInterfaceNodeTemplateId, parentPortNodeTemplateId); - } - - private static Optional<String> getSubInterfaceParentPortResourceId(String parentPortNodeTemplateId, - TranslateTo subInterfaceTo) { - Map<String, String> resourceIdTranslatedResourceIdMap = - subInterfaceTo.getContext().getTranslatedIds().get(subInterfaceTo.getHeatFileName()); - if (MapUtils.isEmpty(resourceIdTranslatedResourceIdMap)) { - return Optional.empty(); - } - for (Map.Entry<String, String> entry : resourceIdTranslatedResourceIdMap.entrySet()) { - if (entry.getValue().equals(parentPortNodeTemplateId)) { - return Optional.of(entry.getKey()); - } - } - return Optional.empty(); - } - - /** - * Gets nested template consolidation data. - * - * @param context the context - * @param serviceTemplate the service template - * @param nestedNodeTemplateId the nested node template id @return the nested template - * consolidation data - */ - public static NestedTemplateConsolidationData getNestedTemplateConsolidationData(TranslationContext context, - ServiceTemplate serviceTemplate, String nestedHeatFileName, String nestedNodeTemplateId) { - - if (isNestedResourceIdOccursInDifferentNestedFiles(context, nestedHeatFileName, - nestedNodeTemplateId)) { - throw new CoreException(new DuplicateResourceIdsInDifferentFilesErrorBuilder(nestedNodeTemplateId).build()); - } - - if (isNodeTemplatePointsToServiceTemplateWithoutNodeTemplates( - nestedNodeTemplateId, nestedHeatFileName, context)) { - return null; - } - - ConsolidationData consolidationData = context.getConsolidationData(); - String serviceTemplateFileName = ToscaUtil.getServiceTemplateFileName(serviceTemplate); - - NestedConsolidationData nestedConsolidationData = consolidationData - .getNestedConsolidationData(); - - FileNestedConsolidationData fileNestedConsolidationData = - nestedConsolidationData.getFileNestedConsolidationData(serviceTemplateFileName); - - if (fileNestedConsolidationData == null) { - fileNestedConsolidationData = new FileNestedConsolidationData(); - nestedConsolidationData.setFileNestedConsolidationData(serviceTemplateFileName, - fileNestedConsolidationData); - } - - NestedTemplateConsolidationData nestedTemplateConsolidationData = - fileNestedConsolidationData.getNestedTemplateConsolidationData(nestedNodeTemplateId); - if (nestedTemplateConsolidationData == null) { - nestedTemplateConsolidationData = new NestedTemplateConsolidationData(); - nestedTemplateConsolidationData.setNodeTemplateId(nestedNodeTemplateId); - fileNestedConsolidationData.setNestedTemplateConsolidationData(nestedNodeTemplateId, - nestedTemplateConsolidationData); - } - - return nestedTemplateConsolidationData; - } - - public static boolean isNodeTemplatePointsToServiceTemplateWithoutNodeTemplates(String - nestedNodeTemplateId, - String nestedHeatFileName, - TranslationContext context) { - + public static boolean isNodeTemplatePointsToServiceTemplateWithoutNodeTemplates( + String nestedNodeTemplateId, String nestedHeatFileName, TranslationContext context) { return context.isServiceTemplateWithoutNodeTemplatesSection( FileUtils.getFileWithoutExtention(nestedHeatFileName)) || context.isNodeTemplateIdPointsToStWithoutNodeTemplates(nestedNodeTemplateId); } - private static boolean isNestedResourceIdOccursInDifferentNestedFiles(TranslationContext context, - String nestedHeatFileName, - String nestedNodeTemplateId) { - return Objects.nonNull(nestedHeatFileName) - && context.getAllTranslatedResourceIdsFromDiffNestedFiles(nestedHeatFileName) - .contains(nestedNodeTemplateId); - } - /** * Update volume information in consolidation data. * @@ -406,7 +182,6 @@ public class ConsolidationDataUtil { String requirementId, RequirementAssignment requirementAssignment) { - TranslationContext translationContext = translateTo.getContext(); Optional<ConsolidationDataHandler> consolidationDataHandler = translationContext.getConsolidationDataHandler(consolidationEntityType); @@ -574,47 +349,75 @@ public class ConsolidationDataUtil { paramName, contrailSharedResourceId, sharedTranslatedResourceId)); } + public static void updateNodeGetAttributeIn(FunctionTranslator functionTranslator, String resourceTranslatedId, + String targetResourceId, String targetResourceTranslatedId, String attributeName) { - private static Optional<ConsolidationDataHandler> getConsolidationDataHandler( - HeatOrchestrationTemplate heatOrchestrationTemplate, TranslationContext context, - String contrailSharedResourceId) { - Resource resource = heatOrchestrationTemplate.getResources().get(contrailSharedResourceId); - ConsolidationEntityType consolidationEntityType = ConsolidationEntityType.OTHER; - consolidationEntityType.setEntityType(resource, resource, context); - return context.getConsolidationDataHandler(consolidationEntityType.getSourceEntityType()); + if (functionTranslator == null || functionTranslator.getServiceTemplate() == null) { + return; + } + Optional<ConsolidationDataHandler> consolidationDataHandler = + ConsolidationDataUtil.getConsolidationDataHandler(functionTranslator.getHeatOrchestrationTemplate(), + functionTranslator.getContext(), targetResourceId); + + consolidationDataHandler.ifPresent(handler -> handler.addNodesGetAttrIn(functionTranslator, + resourceTranslatedId, targetResourceId, targetResourceTranslatedId, + getToscaPropertyName(functionTranslator), attributeName)); } - public static void updateNodeGetAttributeIn(EntityConsolidationData entityConsolidationData, - String nodeTemplateId, String propertyName, - String attributeName) { - GetAttrFuncData getAttrFuncData = new GetAttrFuncData(); - getAttrFuncData.setFieldName(propertyName); - getAttrFuncData.setAttributeName(attributeName); - entityConsolidationData.addNodesGetAttrIn(nodeTemplateId, getAttrFuncData); + public static void updateNodeGetAttributeOut(FunctionTranslator functionTranslator, + String targetTranslatedResourceId, String resourceTranslatedId, String attrName) { + + if (functionTranslator == null || functionTranslator.getServiceTemplate() == null) { + return; + } + + Optional<ConsolidationDataHandler> consolidationDataHandler = + ConsolidationDataUtil.getConsolidationDataHandler(functionTranslator.getHeatOrchestrationTemplate(), + functionTranslator.getContext(), functionTranslator.getResourceId()); + consolidationDataHandler.ifPresent(handler -> handler.addNodesGetAttrOut(functionTranslator, + targetTranslatedResourceId, resourceTranslatedId, getToscaPropertyName(functionTranslator), attrName)); } - public static void updateNodeGetAttributeOut(EntityConsolidationData entityConsolidationData, - String nodeTemplateId, String propertyName, - String attributeName) { + public static void updateOutputParamGetAttrIn(FunctionTranslator functionTranslator, + String targetResourceId, String targetResourceTranslatedId, String propertyName, String attrName) { + if (functionTranslator == null || functionTranslator.getServiceTemplate() == null) { + return; + } - GetAttrFuncData getAttrFuncData = new GetAttrFuncData(); - getAttrFuncData.setFieldName(propertyName); - getAttrFuncData.setAttributeName(attributeName); - entityConsolidationData.addNodesGetAttrOut(nodeTemplateId, getAttrFuncData); + Optional<ConsolidationDataHandler> consolidationDataHandler = + ConsolidationDataUtil.getConsolidationDataHandler(functionTranslator.getHeatOrchestrationTemplate(), + functionTranslator.getContext(), targetResourceId); + consolidationDataHandler.ifPresent(handler -> handler.addOutputParamGetAttrIn(functionTranslator, + targetResourceId, targetResourceTranslatedId, propertyName, attrName)); } - public static void updateOutputGetAttributeInConsolidationData(EntityConsolidationData - entityConsolidationData, - String outputParameterName, - String attributeName) { - - GetAttrFuncData getAttrFuncData = new GetAttrFuncData(); - getAttrFuncData.setFieldName(outputParameterName); - getAttrFuncData.setAttributeName(attributeName); - entityConsolidationData.addOutputParamGetAttrIn(getAttrFuncData); + private static Optional<ConsolidationDataHandler> getConsolidationDataHandler( + HeatOrchestrationTemplate heatOrchestrationTemplate, TranslationContext context, + String contrailSharedResourceId) { + Resource resource = heatOrchestrationTemplate.getResources().get(contrailSharedResourceId); + ConsolidationEntityType consolidationEntityType = ConsolidationEntityType.OTHER; + consolidationEntityType.setEntityType(resource, resource, context); + return context.getConsolidationDataHandler(consolidationEntityType.getSourceEntityType()); + } + private static String getToscaPropertyName(FunctionTranslator functionTranslator) { + String toscaPropertyName = functionTranslator.getPropertyName(); + HeatOrchestrationTemplate heatOrchestrationTemplate = functionTranslator.getHeatOrchestrationTemplate(); + Resource resource = heatOrchestrationTemplate.getResources().get(functionTranslator.getResourceId()); + boolean isNestedResource = HeatToToscaUtil.isNestedResource(resource); + if (!isNestedResource) { + String heatPropertyName = toscaPropertyName; + //For handling get_attr in inner levels for complex properties + if (toscaPropertyName.contains(TRANS_MAPPING_DELIMITER_CHAR)) { + heatPropertyName = + toscaPropertyName.substring(0, toscaPropertyName.indexOf(TRANS_MAPPING_DELIMITER_CHAR)); + } + toscaPropertyName = HeatToToscaUtil.getToscaPropertyName(functionTranslator.getContext(), + resource.getType(), heatPropertyName); + } + return toscaPropertyName; } public static boolean isComputeReferenceToPortId(ComputeTemplateConsolidationData compute, @@ -622,6 +425,7 @@ public class ConsolidationDataUtil { if (MapUtils.isEmpty(compute.getPorts())) { return false; } + for (List<String> portIdsPerType : compute.getPorts().values()) { if (portIdsPerType.contains(portId)) { return true; diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/functiontranslation/FunctionTranslationGetAttrImpl.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/functiontranslation/FunctionTranslationGetAttrImpl.java index f533353d18..d8f3cebf01 100644 --- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/functiontranslation/FunctionTranslationGetAttrImpl.java +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/functiontranslation/FunctionTranslationGetAttrImpl.java @@ -28,22 +28,17 @@ import java.util.Optional; import java.util.Set; import org.apache.commons.lang3.StringUtils; -import org.onap.sdc.tosca.datatypes.model.ServiceTemplate; import org.onap.sdc.tosca.services.YamlUtil; import org.openecomp.sdc.heat.datatypes.model.HeatOrchestrationTemplate; import org.openecomp.sdc.heat.datatypes.model.Resource; import org.openecomp.sdc.heat.services.HeatConstants; import org.openecomp.sdc.tosca.datatypes.ToscaFunctions; import org.openecomp.sdc.translator.datatypes.heattotosca.TranslationContext; -import org.openecomp.sdc.translator.datatypes.heattotosca.to.TranslateTo; -import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.EntityConsolidationData; -import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.SubInterfaceTemplateConsolidationData; import org.openecomp.sdc.translator.services.heattotosca.ConsolidationDataUtil; import org.openecomp.sdc.translator.services.heattotosca.Constants; import org.openecomp.sdc.translator.services.heattotosca.FunctionTranslation; import org.openecomp.sdc.translator.services.heattotosca.FunctionTranslationFactory; import org.openecomp.sdc.translator.services.heattotosca.HeatToToscaUtil; -import org.openecomp.sdc.translator.services.heattotosca.NameExtractor; import org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation.ResourceTranslationBase; public class FunctionTranslationGetAttrImpl implements FunctionTranslation { @@ -90,7 +85,6 @@ public class FunctionTranslationGetAttrImpl implements FunctionTranslation { String targetResourceId, String targetResourceTranslatedId, List<Object> toscaAttList) { - Optional<String> resourceTranslatedId; String resourceId = functionTranslator.getResourceId(); String resourceTranslatedIdValue = null; @@ -103,8 +97,8 @@ public class FunctionTranslationGetAttrImpl implements FunctionTranslation { resourceTranslatedIdValue, toscaAttList); } } - handleGetAttrInConsolidationData(functionTranslator, resourceTranslatedIdValue, targetResourceId, - targetResourceTranslatedId, toscaAttList); + handleGetAttrInConsolidationData(functionTranslator, resourceTranslatedIdValue, + targetResourceId, targetResourceTranslatedId, toscaAttList); } private static void handleGetAttrOutConsolidationData(FunctionTranslator functionTranslator, @@ -114,13 +108,11 @@ public class FunctionTranslationGetAttrImpl implements FunctionTranslation { if (functionTranslator.getServiceTemplate() == null) { return; } - Optional<EntityConsolidationData> entityConsolidationData = getEntityConsolidationData(functionTranslator, - functionTranslator.getResourceId(), resourceTranslatedId); - if (entityConsolidationData.isPresent()) { - String attName = (String) toscaAttList.get(0); - handleNodeGetAttrOut(targetTranslatedResourceId, functionTranslator, entityConsolidationData.get(), - attName); - } + + String attName = (String) toscaAttList.get(0); + ConsolidationDataUtil.updateNodeGetAttributeOut(functionTranslator, targetTranslatedResourceId, + resourceTranslatedId, attName); + } private static void handleGetAttrInConsolidationData(FunctionTranslator functionTranslator, @@ -131,91 +123,14 @@ public class FunctionTranslationGetAttrImpl implements FunctionTranslation { if (functionTranslator.getServiceTemplate() == null) { return; } - Optional<EntityConsolidationData> entityConsolidationData = getEntityConsolidationData(functionTranslator, - targetResourceId, targetResourceTranslatedId); - if (!entityConsolidationData.isPresent()) { - return; - } String attName = (String) toscaAttList.get(0); if (Objects.nonNull(resourceTranslatedId)) { - handleNodeGetAttrIn(resourceTranslatedId, functionTranslator, entityConsolidationData.get(), attName); + ConsolidationDataUtil.updateNodeGetAttributeIn(functionTranslator, resourceTranslatedId, + targetResourceId, targetResourceTranslatedId, attName); } else { - ConsolidationDataUtil.updateOutputGetAttributeInConsolidationData(entityConsolidationData.get(), - functionTranslator.getPropertyName(), attName); - } - } - - private static void handleNodeGetAttrOut(String nodeTemplateId, FunctionTranslator functionTranslator, - EntityConsolidationData entityConsolidationData, - String attName) { - Resource resource = functionTranslator.getHeatOrchestrationTemplate().getResources().get(functionTranslator - .getResourceId()); - boolean isNestedResource = HeatToToscaUtil.isNestedResource(resource); - String toscaPropertyName = functionTranslator.getPropertyName(); - if (!isNestedResource) { - toscaPropertyName = HeatToToscaUtil.getToscaPropertyName(functionTranslator.getContext(), resource - .getType(), functionTranslator.getPropertyName()); - } - ConsolidationDataUtil.updateNodeGetAttributeOut(entityConsolidationData, nodeTemplateId, toscaPropertyName, - attName); - } - - private static void handleNodeGetAttrIn(String nodeTemplateId, FunctionTranslator functionTranslator, - EntityConsolidationData entityConsolidationData, - String attName) { - Resource resource = functionTranslator.getHeatOrchestrationTemplate().getResources().get(functionTranslator - .getResourceId()); - boolean isNestedResource = HeatToToscaUtil.isNestedResource(resource); - String propertyName = functionTranslator.getPropertyName(); - String heatPropertyName = propertyName; - String toscaPropertyName = propertyName; - //For handling get_attr in inner levels for complex properties - if (propertyName.contains(TRANS_MAPPING_DELIMITER_CHAR)) { - heatPropertyName = propertyName.substring(0, propertyName.indexOf(TRANS_MAPPING_DELIMITER_CHAR)); - } - if (!isNestedResource) { - toscaPropertyName = HeatToToscaUtil.getToscaPropertyName(functionTranslator.getContext(), resource - .getType(), heatPropertyName); + ConsolidationDataUtil.updateOutputParamGetAttrIn(functionTranslator, targetResourceId, + targetResourceTranslatedId, functionTranslator.getPropertyName(), attName); } - ConsolidationDataUtil.updateNodeGetAttributeIn(entityConsolidationData, nodeTemplateId, toscaPropertyName, - attName); - } - - private static Optional<EntityConsolidationData> getEntityConsolidationData(FunctionTranslator functionTranslator, - String resourceId, - String resourceTranslatedId) { - HeatOrchestrationTemplate heatOrchestrationTemplate = functionTranslator.getHeatOrchestrationTemplate(); - TranslationContext context = functionTranslator.getContext(); - ServiceTemplate serviceTemplate = functionTranslator.getServiceTemplate(); - String heatFileName = functionTranslator.getHeatFileName(); - - Resource resource = heatOrchestrationTemplate.getResources().get(resourceId); - if (ConsolidationDataUtil.isComputeResource(heatOrchestrationTemplate, resourceId)) { - String resourceType = heatOrchestrationTemplate.getResources().get(resourceId).getType(); - NameExtractor nodeTypeNameExtractor = TranslationContext.getNameExtractorImpl(resourceType); - String computeType = nodeTypeNameExtractor.extractNodeTypeName(resource, resourceId, context - .getTranslatedIds().get(heatFileName).get(resourceId)); - - return Optional.of(ConsolidationDataUtil.getComputeTemplateConsolidationData(context, serviceTemplate, - computeType, resourceTranslatedId)); - } else if (ConsolidationDataUtil.isPortResource(heatOrchestrationTemplate, resourceId)) { - return Optional.of(ConsolidationDataUtil - .getPortTemplateConsolidationData(context, serviceTemplate, resourceId, resource.getType(), - resourceTranslatedId)); - } else if (HeatToToscaUtil.isSubInterfaceResource(resource, context)) { - TranslateTo subInterfaceTo = new TranslateTo(heatFileName, serviceTemplate, heatOrchestrationTemplate, - resource, resourceId, resourceTranslatedId, context); - Optional<SubInterfaceTemplateConsolidationData> subInterfaceTemplateConsolidationData = - ConsolidationDataUtil.getSubInterfaceTemplateConsolidationData(subInterfaceTo, - resourceTranslatedId); - if (subInterfaceTemplateConsolidationData.isPresent()) { - return Optional.of(subInterfaceTemplateConsolidationData.get()); - } - } else if (HeatToToscaUtil.isNestedResource(resource)) { - return Optional.ofNullable(ConsolidationDataUtil - .getNestedTemplateConsolidationData(context, serviceTemplate, heatFileName, resourceTranslatedId)); - } - return Optional.empty(); } private static Optional<List<Object>> handleAttributeIndexOrKey(FunctionTranslator functionTranslator, @@ -390,6 +305,4 @@ public class FunctionTranslationGetAttrImpl implements FunctionTranslation { } return returnValue; } - - } diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationNestedImpl.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationNestedImpl.java index a42e4c3366..2cd4c3a227 100644 --- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationNestedImpl.java +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationNestedImpl.java @@ -40,7 +40,7 @@ import org.openecomp.sdc.tosca.services.ToscaUtil; import org.openecomp.sdc.tosca.services.impl.ToscaAnalyzerServiceImpl; import org.openecomp.sdc.translator.datatypes.heattotosca.TranslationContext; import org.openecomp.sdc.translator.datatypes.heattotosca.to.TranslateTo; -import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.SubInterfaceTemplateConsolidationData; +import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.SubInterfaceConsolidationDataHandler; import org.openecomp.sdc.translator.services.heattotosca.ConsolidationDataUtil; import org.openecomp.sdc.translator.services.heattotosca.Constants; import org.openecomp.sdc.translator.services.heattotosca.HeatToToscaUtil; @@ -115,17 +115,18 @@ public class ResourceTranslationNestedImpl extends ResourceTranslationBase { private void populateSubInterfaceTemplateConsolidationData(TranslateTo translateTo, NodeTemplate nodeTemplate) { - Optional<SubInterfaceTemplateConsolidationData> subInterfaceTemplateConsolidationData = - ConsolidationDataUtil.getSubInterfaceTemplateConsolidationData(translateTo, translateTo - .getTranslatedId()); - if (!subInterfaceTemplateConsolidationData.isPresent()) { - return; - } + SubInterfaceConsolidationDataHandler consolidationDataHandler = + translateTo.getContext().getSubInterfaceConsolidationDataHandler(); + + String translatedId = translateTo.getTranslatedId(); Optional<String> subInterfaceNetworkRole = HeatToToscaUtil.getNetworkRoleFromSubInterfaceId(translateTo.getResource(), translateTo.getContext()); - subInterfaceNetworkRole.ifPresent(subInterfaceTemplateConsolidationData.get()::setNetworkRole); - subInterfaceTemplateConsolidationData.get() - .setResourceGroupCount(getSubInterfaceCountFromResourceProperties(translateTo)); + subInterfaceNetworkRole.ifPresent(networkRole -> consolidationDataHandler.setNetworkRole(translateTo, + translatedId, networkRole)); + + consolidationDataHandler.setResourceGroupCount(translateTo, translatedId, + getSubInterfaceCountFromResourceProperties(translateTo)); + if (CollectionUtils.isEmpty(nodeTemplate.getRequirements())) { return; } @@ -134,8 +135,9 @@ public class ResourceTranslationNestedImpl extends ResourceTranslationBase { requirementMap.entrySet().stream() .filter(requirementAssignmentEntry -> ToscaCapabilityType.NATIVE_NETWORK_LINKABLE .equals(requirementAssignmentEntry.getValue().getCapability())) - .forEach(requirementAssignmentEntry -> subInterfaceTemplateConsolidationData.get() - .addNodesConnectedOut(requirementAssignmentEntry.getValue().getNode(), + .forEach(requirementAssignmentEntry -> + consolidationDataHandler.addNodesConnectedOut(translateTo, + requirementAssignmentEntry.getValue().getNode(), requirementAssignmentEntry.getKey(), requirementAssignmentEntry.getValue()) ) |