blob: 2e67983194fac69059aa29449e54bb9a79b106e3 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
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;
}
}
|