diff options
Diffstat (limited to 'openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/unifiedcomposition')
4 files changed, 179 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/impl/unifiedcomposition/UnifiedCompositionCatalogInstance.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/unifiedcomposition/UnifiedCompositionCatalogInstance.java new file mode 100644 index 0000000000..9742a44f52 --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/unifiedcomposition/UnifiedCompositionCatalogInstance.java @@ -0,0 +1,28 @@ +package org.openecomp.sdc.translator.services.heattotosca.impl.unifiedcomposition; + +import org.openecomp.sdc.tosca.datatypes.model.ServiceTemplate; +import org.openecomp.sdc.translator.datatypes.heattotosca.TranslationContext; +import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.UnifiedCompositionData; +import org.openecomp.sdc.translator.services.heattotosca.UnifiedComposition; +import org.openecomp.sdc.translator.services.heattotosca.UnifiedCompositionService; + +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; + +public class UnifiedCompositionCatalogInstance implements UnifiedComposition { + @Override + public void createUnifiedComposition(ServiceTemplate serviceTemplate, + ServiceTemplate nestedServiceTemplate, + List<UnifiedCompositionData> unifiedComposotionDataList, + TranslationContext context) { + + UnifiedCompositionSingleSubstitution unifiedCompositionSingleSubstitution = + new UnifiedCompositionSingleSubstitution(); + + unifiedCompositionSingleSubstitution + .createUnifiedComposition(serviceTemplate, null, unifiedComposotionDataList, context); + } + + +} diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/unifiedcomposition/UnifiedCompositionNestedSingleCompute.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/unifiedcomposition/UnifiedCompositionNestedSingleCompute.java new file mode 100644 index 0000000000..03d7eb02df --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/unifiedcomposition/UnifiedCompositionNestedSingleCompute.java @@ -0,0 +1,38 @@ +package org.openecomp.sdc.translator.services.heattotosca.impl.unifiedcomposition; + +import org.apache.commons.collections4.CollectionUtils; +import org.openecomp.sdc.tosca.datatypes.model.ServiceTemplate; +import org.openecomp.sdc.translator.datatypes.heattotosca.TranslationContext; +import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.UnifiedCompositionData; +import org.openecomp.sdc.translator.services.heattotosca.UnifiedComposition; +import org.openecomp.sdc.translator.services.heattotosca.UnifiedCompositionService; + +import java.util.ArrayList; +import java.util.List; + +public class UnifiedCompositionNestedSingleCompute implements UnifiedComposition { + @Override + public void createUnifiedComposition(ServiceTemplate serviceTemplate, + ServiceTemplate nestedServiceTemplate, + List<UnifiedCompositionData> unifiedCompositionDataList, + TranslationContext context) { + UnifiedCompositionService unifiedCompositionService = new UnifiedCompositionService(); + if (CollectionUtils.isEmpty(unifiedCompositionDataList)) { + return; + } + + for (int i = 0; i < unifiedCompositionDataList.size(); i++) { + List<UnifiedCompositionData> nestedUnifiedCompositionDataList = new ArrayList<>(); + nestedUnifiedCompositionDataList.add(unifiedCompositionDataList.get(i)); + + unifiedCompositionService + .handleUnifiedNestedDefinition(serviceTemplate, nestedServiceTemplate, + unifiedCompositionDataList, context); + unifiedCompositionService + .updateUnifiedNestedConnectivity(serviceTemplate, nestedServiceTemplate, + nestedUnifiedCompositionDataList, context); + unifiedCompositionService + .cleanUnifiedNestedEntities(serviceTemplate, nestedUnifiedCompositionDataList, context); + } + } +} diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/unifiedcomposition/UnifiedCompositionScalingInstances.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/unifiedcomposition/UnifiedCompositionScalingInstances.java new file mode 100644 index 0000000000..fe287a4014 --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/unifiedcomposition/UnifiedCompositionScalingInstances.java @@ -0,0 +1,48 @@ +package org.openecomp.sdc.translator.services.heattotosca.impl.unifiedcomposition; + +import org.apache.commons.collections4.CollectionUtils; +import org.openecomp.sdc.tosca.datatypes.model.ServiceTemplate; +import org.openecomp.sdc.translator.datatypes.heattotosca.TranslationContext; +import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.UnifiedCompositionData; +import org.openecomp.sdc.translator.services.heattotosca.UnifiedComposition; +import org.openecomp.sdc.translator.services.heattotosca.UnifiedCompositionService; + +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; + +public class UnifiedCompositionScalingInstances implements UnifiedComposition { + + private UnifiedCompositionService unifiedCompositionService = new UnifiedCompositionService(); + + @Override + public void createUnifiedComposition(ServiceTemplate serviceTemplate, + ServiceTemplate nestedServiceTemplate, + List<UnifiedCompositionData> unifiedCompositionDataList, + TranslationContext context) { + if (CollectionUtils.isEmpty(unifiedCompositionDataList)) { + return; + } + + Integer index = null; + Optional<ServiceTemplate> substitutionServiceTemplate = + unifiedCompositionService.createUnifiedSubstitutionServiceTemplate(serviceTemplate, + unifiedCompositionDataList, context, index); + + if (!substitutionServiceTemplate.isPresent()) { + return; + } + + String abstractNodeTemplateId = unifiedCompositionService + .createAbstractSubstituteNodeTemplate(serviceTemplate, substitutionServiceTemplate.get(), + unifiedCompositionDataList, context, index); + + unifiedCompositionService + .updateCompositionConnectivity(serviceTemplate, unifiedCompositionDataList, context); + + unifiedCompositionService + .cleanUnifiedCompositionEntities(serviceTemplate, unifiedCompositionDataList, context); + + unifiedCompositionService.cleanNodeTypes(serviceTemplate, unifiedCompositionDataList, context); + } +} diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/unifiedcomposition/UnifiedCompositionSingleSubstitution.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/unifiedcomposition/UnifiedCompositionSingleSubstitution.java new file mode 100644 index 0000000000..c3965a5f52 --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/unifiedcomposition/UnifiedCompositionSingleSubstitution.java @@ -0,0 +1,65 @@ +package org.openecomp.sdc.translator.services.heattotosca.impl.unifiedcomposition; + +import org.apache.commons.collections4.CollectionUtils; +import org.openecomp.sdc.tosca.datatypes.model.ServiceTemplate; +import org.openecomp.sdc.translator.datatypes.heattotosca.TranslationContext; +import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.UnifiedCompositionData; +import org.openecomp.sdc.translator.services.heattotosca.UnifiedComposition; +import org.openecomp.sdc.translator.services.heattotosca.UnifiedCompositionService; + +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; + + +/** + * The type Unified composition single substitution. + */ +public class UnifiedCompositionSingleSubstitution implements UnifiedComposition { + + // There is no consolidation in SingleSubstitution implemetation. + // In case of single substitution, if there is more than one entry in the + // unifiedComposotionDataList, they all should contain the same compute type but the + // consolidation between them was canceled. + // For different compute type, this implementation will be called more than once, each time + // per diff compute type, while sending one entry in the unifiedComposotionDataList. + @Override + public void createUnifiedComposition(ServiceTemplate serviceTemplate, + ServiceTemplate nestedServiceTemplate, + List<UnifiedCompositionData> unifiedCompositionDataList, + TranslationContext context) { + UnifiedCompositionService unifiedCompositionService = new UnifiedCompositionService(); + if (CollectionUtils.isEmpty(unifiedCompositionDataList)) { + return; + } + + for (int i = 0; i < unifiedCompositionDataList.size(); i++) { + List<UnifiedCompositionData> singleSubstitutionUnifiedList = new ArrayList<>(); + singleSubstitutionUnifiedList.add(unifiedCompositionDataList.get(i)); + + Integer index = unifiedCompositionDataList.size() > 1 ? i : null; + Optional<ServiceTemplate> substitutionServiceTemplate = + unifiedCompositionService.createUnifiedSubstitutionServiceTemplate(serviceTemplate, + singleSubstitutionUnifiedList, context, index); + + if (!substitutionServiceTemplate.isPresent()) { + continue; + } + + String abstractNodeTemplateId = unifiedCompositionService + .createAbstractSubstituteNodeTemplate(serviceTemplate, substitutionServiceTemplate.get(), + singleSubstitutionUnifiedList, context, index); + + unifiedCompositionService + .updateCompositionConnectivity(serviceTemplate, singleSubstitutionUnifiedList, context); + + unifiedCompositionService + .cleanUnifiedCompositionEntities(serviceTemplate, singleSubstitutionUnifiedList, context); + + } + + unifiedCompositionService + .cleanNodeTypes(serviceTemplate, unifiedCompositionDataList, context); + + } +} |