summaryrefslogtreecommitdiffstats
path: root/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationDataUtil.java
diff options
context:
space:
mode:
Diffstat (limited to 'openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationDataUtil.java')
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationDataUtil.java324
1 files changed, 64 insertions, 260 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;