1 package org.openecomp.sdc.translator.services.heattotosca.impl.unifiedcomposition;
3 import org.openecomp.sdc.tosca.datatypes.model.ServiceTemplate;
4 import org.openecomp.sdc.translator.datatypes.heattotosca.TranslationContext;
5 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.UnifiedCompositionData;
6 import org.openecomp.sdc.translator.services.heattotosca.UnifiedComposition;
7 import org.openecomp.sdc.translator.services.heattotosca.UnifiedCompositionService;
9 import java.util.ArrayList;
10 import java.util.List;
11 import java.util.Optional;
13 public class UnifiedCompositionCatalogInstance implements UnifiedComposition {
15 UnifiedCompositionService unifiedCompositionService = new UnifiedCompositionService();
17 // There is consolidation in ScalingInstance implemetation.
18 // In case of scaling instance, if there is more than one entry in the
19 // unifiedComposotionDataList, we should have consolidation between them.
20 // (all entries in the list are the once which need to be consolidated)
22 public void createUnifiedComposition(ServiceTemplate serviceTemplate,
23 ServiceTemplate nestedServiceTemplate,
24 List<UnifiedCompositionData> unifiedComposotionDataList,
25 TranslationContext context) {
27 UnifiedCompositionService unifiedCompositionService = new UnifiedCompositionService();
28 unifiedCompositionService.handleComplexVfcType(serviceTemplate, context);
30 UnifiedCompositionSingleSubstitution unifiedCompositionSingleSubstitution =
31 new UnifiedCompositionSingleSubstitution();
33 String substitutionNodeTypeId =
34 unifiedCompositionService.getSubstitutionNodeTypeId(serviceTemplate,
35 unifiedComposotionDataList.get(0), null, context);
36 // create one substitution ST for all computes
37 Optional<ServiceTemplate> substitutionServiceTemplate =
38 unifiedCompositionService.createUnifiedSubstitutionServiceTemplate(serviceTemplate,
39 unifiedComposotionDataList, context, substitutionNodeTypeId, null);
41 if (!substitutionServiceTemplate.isPresent()) {
46 // create abstract NT for each compute
47 for(int i = 0; i < unifiedComposotionDataList.size(); i++){
48 List<UnifiedCompositionData> catalogInstanceUnifiedList = new ArrayList<>();
49 catalogInstanceUnifiedList.add(unifiedComposotionDataList.get(i));
51 Integer index = unifiedComposotionDataList.size() > 1 ? i : null;
53 unifiedCompositionService
54 .createAbstractSubstituteNodeTemplate(serviceTemplate, substitutionServiceTemplate.get(),
55 catalogInstanceUnifiedList, substitutionNodeTypeId, context, index);
57 unifiedCompositionService
58 .updateCompositionConnectivity(serviceTemplate, catalogInstanceUnifiedList, context);
60 unifiedCompositionService
61 .cleanUnifiedCompositionEntities(serviceTemplate, catalogInstanceUnifiedList, context);
64 unifiedCompositionService.cleanNodeTypes(serviceTemplate, unifiedComposotionDataList, context);