aboutsummaryrefslogtreecommitdiffstats
path: root/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/UnifiedCompositionManager.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/UnifiedCompositionManager.java')
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/UnifiedCompositionManager.java80
1 files changed, 80 insertions, 0 deletions
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/UnifiedCompositionManager.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/UnifiedCompositionManager.java
new file mode 100644
index 0000000000..2e67983194
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/UnifiedCompositionManager.java
@@ -0,0 +1,80 @@
+package org.openecomp.sdc.translator.services.heattotosca;
+
+import org.openecomp.sdc.logging.context.impl.MdcDataDebugMessage;
+import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
+import org.openecomp.sdc.tosca.datatypes.model.NodeTemplate;
+import org.openecomp.sdc.tosca.datatypes.model.ServiceTemplate;
+import org.openecomp.sdc.tosca.services.ToscaAnalyzerService;
+import org.openecomp.sdc.tosca.services.impl.ToscaAnalyzerServiceImpl;
+import org.openecomp.sdc.translator.datatypes.heattotosca.TranslationContext;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.FileNestedConsolidationData;
+
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Optional;
+import java.util.Set;
+
+public class UnifiedCompositionManager {
+
+ private MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage();
+ private ConsolidationService consolidationService;
+ private TranslationService translationService = new TranslationService();
+ private UnifiedCompositionService unifiedCompositionService = new UnifiedCompositionService();
+
+ public UnifiedCompositionManager(ConsolidationService consolidationService) {
+ this.consolidationService = consolidationService;
+ }
+
+ public UnifiedCompositionManager() {
+
+ }
+
+ /**
+ * Create unified composition.
+ *
+ * @param toscaServiceModel the tosca service model
+ * @param translationContext the translation context
+ * @return the tosca service model
+ */
+ public ToscaServiceModel createUnifiedComposition(ToscaServiceModel toscaServiceModel,
+ TranslationContext translationContext) {
+
+ mdcDataDebugMessage.debugEntryMessage(null, null);
+ Map<String, ServiceTemplate> serviceTemplates = toscaServiceModel.getServiceTemplates();
+ ServiceTemplate mainServiceTemplate =
+ serviceTemplates.get(toscaServiceModel.getEntryDefinitionServiceTemplate());
+ consolidationService.mainServiceTemplateConsolidation(mainServiceTemplate, translationContext);
+ ToscaAnalyzerService toscaAnalyzerService = new ToscaAnalyzerServiceImpl();
+
+
+ FileNestedConsolidationData mainFileNestedConsolidationData =
+ translationContext.getConsolidationData().getNestedConsolidationData()
+ .getFileNestedConsolidationData(toscaServiceModel.getEntryDefinitionServiceTemplate());
+ Set<String> substituteNodeTemplatesId =
+ mainFileNestedConsolidationData == null
+ || mainFileNestedConsolidationData.getAllNestedNodeTemplateIds() == null
+ ? new HashSet<>() : mainFileNestedConsolidationData.getAllNestedNodeTemplateIds();
+
+ for (String substituteNodeTemplateId : substituteNodeTemplatesId) {
+ NodeTemplate subNodeTemplate = mainServiceTemplate.getTopology_template().getNode_templates()
+ .get(substituteNodeTemplateId);
+ Optional<String> substituteServiceTemplateName = toscaAnalyzerService
+ .getSubstituteServiceTemplateName(substituteNodeTemplateId, subNodeTemplate);
+ if (substituteServiceTemplateName.isPresent()) {
+ ServiceTemplate substituteServiceTemplate =
+ serviceTemplates.get(substituteServiceTemplateName.get());
+
+ consolidationService.substitutionServiceTemplateConsolidation(substituteNodeTemplateId,
+ mainServiceTemplate, substituteServiceTemplate, translationContext);
+ }
+ }
+ unifiedCompositionService
+ .updateUnifiedAbstractNodesConnectivity(mainServiceTemplate, translationContext);
+ ToscaServiceModel unifiedToscaServiceModel =
+ HeatToToscaUtil.createToscaServiceModel(mainServiceTemplate, translationContext);
+
+ mdcDataDebugMessage.debugExitMessage(null, null);
+ return unifiedToscaServiceModel;
+ }
+}
+