aboutsummaryrefslogtreecommitdiffstats
path: root/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationServiceTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationServiceTest.java')
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationServiceTest.java1990
1 files changed, 1990 insertions, 0 deletions
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationServiceTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationServiceTest.java
new file mode 100644
index 0000000000..61777a6586
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationServiceTest.java
@@ -0,0 +1,1990 @@
+package org.openecomp.sdc.translator.services.heattotosca;
+
+import org.apache.commons.lang3.tuple.ImmutablePair;
+import org.apache.commons.lang3.tuple.Pair;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.*;
+import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
+import org.openecomp.sdc.tosca.datatypes.model.ServiceTemplate;
+import org.openecomp.sdc.tosca.services.ToscaConstants;
+import org.openecomp.sdc.translator.TestUtils;
+import org.openecomp.sdc.translator.datatypes.heattotosca.TranslationContext;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.UnifiedCompositionData;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.UnifiedCompositionMode;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.ConsolidationData;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.GetAttrFuncData;
+
+import java.io.IOException;
+import java.util.*;
+
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+
+/**
+ * Created by TALIO on 3/7/2017.
+ */
+public class ConsolidationServiceTest {
+
+ @Spy
+ private TranslationContext translationContext = new TranslationContext();
+ private static String mainST = "MainServiceTemplate.yaml";
+
+ @Mock
+ private UnifiedCompositionService unifiedCompositionServiceMock;
+
+ @Captor
+ private ArgumentCaptor<List<UnifiedCompositionData>> unifiedModelListArg;
+ @Captor
+ private ArgumentCaptor<UnifiedCompositionMode> unifiedCompositionModeArg;
+
+ @InjectMocks
+ private ConsolidationService consolidationService;
+
+ @Before
+ public void setUp() throws Exception {
+ MockitoAnnotations.initMocks(this);
+ }
+
+ @Test
+ public void testConsolidationValidPreCondition() throws IOException {
+
+ ConsolidationData consolidationData = new ConsolidationData();
+ String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
+ ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel(
+ "/mock/services/heattotosca/consolidation/translatedfiles/pre_condition/valid_pre_condition/", null,
+ null);
+
+ TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName,
+ consolidationData);
+
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
+ portTypeToIdList.add(new ImmutablePair<>("sm01_port", "sm01_port_1"));
+
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps01",
+ null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps02", null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ TestUtils.initPortConsolidationData(mainST, consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_1",
+ null, null, null, null, null,
+ consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "sm01_port_1",
+ null, null, null, null, null,
+ consolidationData);
+
+ translationContext.setConsolidationData(consolidationData);
+ List<UnifiedCompositionMode> expectedUnifiedModes =
+ Arrays.asList(UnifiedCompositionMode.ScalingInstances);
+
+ verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
+ }
+
+ @Test
+ public void testConsolidationFalsePreConditionOneComputeNode() throws IOException {
+ ConsolidationData consolidationData = new ConsolidationData();
+ String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
+ ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
+ ("/mock/services/heattotosca/consolidation/translatedfiles/pre_condition/one_compute_node/", null, null);
+
+ TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
+ portTypeToIdList.add(new ImmutablePair<>("sm01_port", "sm01_port_1"));
+
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps01",
+ null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ TestUtils.initPortConsolidationData(mainST, consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_1",
+ null, null, null, null, null,
+ consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "sm01_port_1",
+ null, null, null, null, null,
+ consolidationData);
+
+ translationContext.setConsolidationData(consolidationData);
+ List<UnifiedCompositionMode> expectedUnifiedModes =
+ Arrays.asList(UnifiedCompositionMode.SingleSubstitution);
+ verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
+ }
+
+ @Test
+ public void testConsolidationFalsePreConditionMoreThanOnePortPerType() throws IOException {
+ ConsolidationData consolidationData = new ConsolidationData();
+ String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
+ ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
+ ("/mock/services/heattotosca/consolidation/translatedfiles/pre_condition/more_than_one_port/",
+ null, null);
+
+ TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("sm01_port", "sm01_port_1"));
+ portTypeToIdList.add(new ImmutablePair<>("sm01_port", "sm01_port_2"));
+
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps01",
+ null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps02",
+ null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+
+ TestUtils.initPortConsolidationData(mainST, consolidationData);
+
+ translationContext.setConsolidationData(consolidationData);
+ List<UnifiedCompositionMode> expectedUnifiedModes =
+ Arrays.asList(UnifiedCompositionMode.SingleSubstitution);
+ verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
+ }
+
+ @Test
+ public void testConsolidationFalsePreConditionDifferentPortTypesBetweenComputes()
+ throws IOException {
+ ConsolidationData consolidationData = new ConsolidationData();
+ String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
+ ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
+ ("/mock/services/heattotosca/consolidation/translatedfiles/pre_condition/different_port_types",
+ null, null);
+
+ TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("sm01_port", "sm01_port_1"));
+
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps01",
+ null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
+
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps02",
+ null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ TestUtils.initPortConsolidationData(mainST, consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_1",
+ null, null, null, null, null,
+ consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "sm01_port_1",
+ null, null, null, null, null,
+ consolidationData);
+
+ translationContext.setConsolidationData(consolidationData);
+ List<UnifiedCompositionMode> expectedUnifiedModes =
+ Arrays.asList(UnifiedCompositionMode.SingleSubstitution);
+ verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
+
+ }
+
+ @Test
+ public void testConsolidationResultTrueWithMoreThanTwoCompute() throws IOException {
+ ConsolidationData consolidationData = new ConsolidationData();
+ String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
+ ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
+ ("/mock/services/heattotosca/consolidation/translatedfiles/pre_condition/three_compute_valid",
+ null, null);
+
+ TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
+ portTypeToIdList.add(new ImmutablePair<>("sm01_port", "sm01_port_1"));
+
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps01",
+ null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps02",
+ null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps03",
+ null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ TestUtils.initPortConsolidationData(mainST, consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_1",
+ null, null, null, null, null,
+ consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "sm01_port_1",
+ null, null, null, null, null,
+ consolidationData);
+
+ translationContext.setConsolidationData(consolidationData);
+
+ List<UnifiedCompositionMode> expectedUnifiedModes =
+ Arrays.asList(UnifiedCompositionMode.ScalingInstances);
+ verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
+ }
+
+ @Test
+ public void testConsolidationResultFalseWithMoreThanTwoComputeOneIsDiff() throws IOException {
+ ConsolidationData consolidationData = new ConsolidationData();
+ String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
+ ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
+ ("/mock/services/heattotosca/consolidation/translatedfiles/pre_condition/three_compute_valid",
+ null, null);
+
+ TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
+ portTypeToIdList.add(new ImmutablePair<>("sm01_port", "sm01_port_1"));
+
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps01",
+ null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps02",
+ null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps03",
+ null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ TestUtils.initPortConsolidationData(mainST, consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_1",
+ null, null, null, null, null,
+ consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "sm01_port_1",
+ null, null, null, null, null,
+ consolidationData);
+
+ translationContext.setConsolidationData(consolidationData);
+ List<UnifiedCompositionMode> expectedUnifiedModes =
+ Arrays.asList(UnifiedCompositionMode.SingleSubstitution);
+ verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
+ }
+
+ @Test
+ public void testConsolidationResultFalseForTwoTypesOfComputeWithOneInstanceEach()
+ throws IOException {
+ ConsolidationData consolidationData = new ConsolidationData();
+ String computeNodeTypeName1 = "org.openecomp.resource.vfc.nodes.heat.ps_server";
+ String computeNodeTypeName2 = "org.openecomp.resource.vfc.nodes.heat.cmaui";
+ ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
+ ("/mock/services/heattotosca/consolidation/translatedfiles/pre_condition/three_compute_valid",
+ null, null);
+
+ TestUtils.initComputeNodeTypeInConsolidationData
+ (mainST, computeNodeTypeName1, consolidationData);
+ TestUtils.initComputeNodeTypeInConsolidationData
+ (mainST, computeNodeTypeName2, consolidationData);
+
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
+ portTypeToIdList.add(new ImmutablePair<>("sm01_port", "sm01_port_1"));
+
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName1, "server_ps01",
+ null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName2, "server_ps02",
+ null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ TestUtils.initPortConsolidationData(mainST, consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_1",
+ null, null, null, null, null,
+ consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "sm01_port_1",
+ null, null, null, null, null,
+ consolidationData);
+
+ translationContext.setConsolidationData(consolidationData);
+
+ List<UnifiedCompositionMode> expectedUnifiedModes =
+ Arrays.asList(UnifiedCompositionMode.SingleSubstitution, UnifiedCompositionMode.SingleSubstitution);
+ verifyMainServiceTemplateConsolidation(2, expectedUnifiedModes, toscaServiceModel);
+ }
+
+ @Test
+ public void testConsolidationValidForTwoSimilarComputeAndFalseForSingleCompute() throws IOException {
+ ConsolidationData consolidationData = new ConsolidationData();
+ String computeNodeTypeName1 = "org.openecomp.resource.vfc.nodes.heat.ps_server";
+ String computeNodeTypeName2 = "org.openecomp.resource.vfc.nodes.heat.cmaui";
+ ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
+ ("/mock/services/heattotosca/consolidation/translatedfiles/pre_condition/three_compute_two_similar_one_diff",
+ null, null);
+
+ TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName1, consolidationData);
+ TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName2, consolidationData);
+
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
+ portTypeToIdList.add(new ImmutablePair<>("sm01_port", "sm01_port_1"));
+
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName1, "server_ps01",
+ null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName1, "server_ps02",
+ null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName2, "server_ps03",
+ null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ TestUtils.initPortConsolidationData(mainST, consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_1",
+ null, null, null, null, null,
+ consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "sm01_port_1",
+ null, null, null, null, null,
+ consolidationData);
+
+ translationContext.setConsolidationData(consolidationData);
+ List<UnifiedCompositionMode> expectedUnifiedModes =
+ Arrays.asList(
+ UnifiedCompositionMode.ScalingInstances, UnifiedCompositionMode.SingleSubstitution);
+ verifyMainServiceTemplateConsolidation(2, expectedUnifiedModes, toscaServiceModel);
+ }
+
+ @Test
+ public void testValidComputeAndPortConsolidation() throws IOException {
+ ConsolidationData consolidationData = new ConsolidationData();
+ String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
+ ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
+ ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/three_compute_valid",
+ null, null);
+
+ TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
+ portTypeToIdList.add(new ImmutablePair<>("sm01_port", "sm01_port_1"));
+
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps01",
+ null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps02",
+ null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps03",
+ null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ TestUtils.initPortConsolidationData(mainST, consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_1",
+ null, null, null, null, null,
+ consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "sm01_port_1",
+ null, null, null, null, null,
+ consolidationData);
+
+ translationContext.setConsolidationData(consolidationData);
+ List<UnifiedCompositionMode> expectedUnifiedModes =
+ Arrays.asList(UnifiedCompositionMode.ScalingInstances);
+ verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
+ }
+
+ @Test
+ public void testFalseComputeConsolidationForTwoSimilarImageNamesAndOneDiff() throws IOException {
+ ConsolidationData consolidationData = new ConsolidationData();
+ String computeNodeTypeName1 = "org.openecomp.resource.vfc.nodes.heat.ps_server";
+ String computeNodeTypeName2 = "org.openecomp.resource.vfc.nodes.heat.pd_server";
+ ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
+ ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/one_image_name_diff",
+ null, null);
+
+ TestUtils.initComputeNodeTypeInConsolidationData(
+ mainST, computeNodeTypeName1, consolidationData);
+ TestUtils.initComputeNodeTypeInConsolidationData(
+ mainST, computeNodeTypeName2, consolidationData);
+
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
+ portTypeToIdList.add(new ImmutablePair<>("sm01_port", "sm01_port_1"));
+
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName1, "server_ps01",
+ null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName1, "server_ps02",
+ null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName1, "server_ps03",
+ null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName2, "server_pd01",
+ null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName2, "server_pd02",
+ null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName2, "server_pd03",
+ null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ TestUtils.initPortConsolidationData(mainST, consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_1",
+ null, null, null, null, null,
+ consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "sm01_port_1",
+ null, null, null, null, null,
+ consolidationData);
+
+ translationContext.setConsolidationData(consolidationData);
+ List<UnifiedCompositionMode> expectedUnifiedModes =
+ Arrays.asList(UnifiedCompositionMode.CatalogInstance, UnifiedCompositionMode.CatalogInstance);
+ verifyMainServiceTemplateConsolidation(2, expectedUnifiedModes, toscaServiceModel);
+ }
+
+ @Test
+ public void testFalseComputeConsolidationForTwoSimilarFlavorNamesAndOneDiff() throws IOException {
+ ConsolidationData consolidationData = new ConsolidationData();
+ String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
+ ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
+ ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/one_flavor_name_diff",
+ null, null);
+
+ TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
+ portTypeToIdList.add(new ImmutablePair<>("sm01_port", "sm01_port_1"));
+
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps01", null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps02", null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps03", null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ TestUtils.initPortConsolidationData(mainST, consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_1",
+ null, null, null, null, null,
+ consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "sm01_port_1",
+ null, null, null, null, null,
+ consolidationData);
+
+ translationContext.setConsolidationData(consolidationData);
+ List<UnifiedCompositionMode> expectedUnifiedModes =
+ Arrays.asList(UnifiedCompositionMode.CatalogInstance);
+ verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
+ }
+
+ @Test
+ public void testFalsePortConsolidationForTwoPortsWithFixedIpsAndOneWithout() throws IOException {
+ ConsolidationData consolidationData = new ConsolidationData();
+ String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
+ ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
+ ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/one_port_without_fixed_ips",
+ null, null);
+
+ TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps01", null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_2"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps02", null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_3"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps03", null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ TestUtils.initPortConsolidationData(mainST, consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_1",
+ null, null, null, null, null,
+ consolidationData);
+
+ translationContext.setConsolidationData(consolidationData);
+ List<UnifiedCompositionMode> expectedUnifiedModes =
+ Arrays.asList(UnifiedCompositionMode.CatalogInstance);
+ verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
+ }
+
+ @Test
+ public void testFalsePortConsolidationForTwoPortsWithAddressPairsAndOneWithout()
+ throws IOException {
+ ConsolidationData consolidationData = new ConsolidationData();
+ String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
+ ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
+ ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/one_port_without_allowed_address_pairs",
+ null, null);
+
+ TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps01", null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_2"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps02", null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_3"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps03", null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ TestUtils.initPortConsolidationData(mainST, consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_1",
+ null, null, null, null, null,
+ consolidationData);
+
+ translationContext.setConsolidationData(consolidationData);
+ List<UnifiedCompositionMode> expectedUnifiedModes =
+ Arrays.asList(UnifiedCompositionMode.CatalogInstance);
+ verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
+ }
+
+ @Test
+ public void testFalsePortConsolidationForTwoPortsWithMacAddressAndOneWithout()
+ throws IOException {
+ ConsolidationData consolidationData = new ConsolidationData();
+ String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
+ ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
+ ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/one_port_without_mac_address",
+ null, null);
+
+ TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps01", null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_2"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps02", null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_3"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps03", null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ TestUtils.initPortConsolidationData(mainST, consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_1",
+ null, null, null, null, null,
+ consolidationData);
+
+ translationContext.setConsolidationData(consolidationData);
+ List<UnifiedCompositionMode> expectedUnifiedModes =
+ Arrays.asList(UnifiedCompositionMode.CatalogInstance);
+ verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
+ }
+
+ @Test
+ public void testValidPortConsolidationForPortsWithNoneOfTheCheckedProperties()
+ throws IOException {
+ ConsolidationData consolidationData = new ConsolidationData();
+ String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
+ ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
+ ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/ports_with_none_of_the_properties",
+ null, null);
+
+ TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps01", null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_2"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps02", null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_3"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps03", null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ TestUtils.initPortConsolidationData(mainST, consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_1",
+ Arrays.asList("node_in_1"), Arrays.asList("net_id_1"), Arrays.asList("group_id_1"), null, null,
+ consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_2",
+ Arrays.asList("node_in_1"), Arrays.asList("net_id_1"), Arrays.asList("group_id_1"), null, null,
+ consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_3",
+ Arrays.asList("node_in_1"), Arrays.asList("net_id_1"), Arrays.asList("group_id_1"), null, null,
+ consolidationData);
+
+ translationContext.setConsolidationData(consolidationData);
+ List<UnifiedCompositionMode> expectedUnifiedModes =
+ Arrays.asList(UnifiedCompositionMode.ScalingInstances);
+ verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
+ }
+
+ @Test
+ public void testComputeRelationsSimilarBetweenComputeNodes() throws IOException {
+ ConsolidationData consolidationData = new ConsolidationData();
+ String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
+ ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
+ ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/three_compute_with_same_relations",
+ null, null);
+
+ TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps01", Arrays.asList("cm01_port_1"),
+ Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id1"),
+ null, null,
+ portTypeToIdList,
+ consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_2"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps02", Arrays.asList("cm01_port_1"),
+ Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id1"),
+ null, null,
+ portTypeToIdList,
+ consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_3"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps03", Arrays.asList("cm01_port_1"), Arrays.asList("cmaui_volume"),
+ Arrays.asList("cmaui_volume"), Arrays.asList("group_id1"), null, null,
+ portTypeToIdList,
+ consolidationData);
+
+ TestUtils.initPortConsolidationData(mainST, consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_1",
+ Arrays.asList("node_in_1"), Arrays.asList("net_id_1"), Arrays.asList("group_id_1"), null, null,
+ consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_2",
+ Arrays.asList("node_in_1"), Arrays.asList("net_id_1"), Arrays.asList("group_id_1"), null, null,
+ consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_3",
+ Arrays.asList("node_in_1"), Arrays.asList("net_id_1"), Arrays.asList("group_id_1"), null, null,
+ consolidationData);
+
+
+ translationContext.setConsolidationData(consolidationData);
+ List<UnifiedCompositionMode> expectedUnifiedModes =
+ Arrays.asList(UnifiedCompositionMode.ScalingInstances);
+ verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
+ }
+
+ @Test
+ public void testNodesInRelationsDiffBetweenThreeComputes() throws IOException {
+ ConsolidationData consolidationData = new ConsolidationData();
+ String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
+ ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
+ ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/three_ports_similar_relations",
+ null, null);
+
+ TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps01", Arrays.asList("cm01_port_1"), Arrays.asList
+ ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id1"), null, null,
+ portTypeToIdList,
+ consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_2"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps02", Arrays.asList("cm01_port_1"),
+ Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id1"),
+ null,null ,
+ portTypeToIdList,
+ consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_3"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps03", Arrays.asList("cm01_port_2"), Arrays.asList
+ ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id1"), null, null,
+ portTypeToIdList,
+ consolidationData);
+
+ TestUtils.initPortConsolidationData(mainST, consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_1", null, null, null, null, null,
+ consolidationData);
+
+
+ translationContext.setConsolidationData(consolidationData);
+ List<UnifiedCompositionMode> expectedUnifiedModes =
+ Arrays.asList(UnifiedCompositionMode.CatalogInstance);
+ verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
+ }
+
+ @Test
+ public void testNodesOutRelationsDiffBetweenThreeComputes() throws IOException {
+ ConsolidationData consolidationData = new ConsolidationData();
+ String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
+ ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
+ ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/three_ports_similar_relations",
+ null, null);
+
+ TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps01", Arrays.asList("cm01_port_1"), Arrays.asList
+ ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id1"), null, null,
+ portTypeToIdList,
+ consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_2"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps02", Arrays.asList("cm01_port_1"),
+ Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id1"),
+ null, null,
+ portTypeToIdList,
+ consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_3"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps03", Arrays.asList("cm01_port_1"),
+ Arrays.asList("cmaui_volume_1"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id1"),
+ null, null,
+ portTypeToIdList,
+ consolidationData);
+
+ TestUtils.initPortConsolidationData(mainST, consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_1", null, null, null, null, null,
+ consolidationData);
+
+
+ translationContext.setConsolidationData(consolidationData);
+ List<UnifiedCompositionMode> expectedUnifiedModes =
+ Arrays.asList(UnifiedCompositionMode.CatalogInstance);
+ verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
+ }
+
+ @Test
+ public void testVolumeRelationsDiffBetweenThreeComputes() throws IOException {
+ ConsolidationData consolidationData = new ConsolidationData();
+ String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
+ ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
+ ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/three_compute_valid",
+ null, null);
+
+ TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps01", Arrays.asList("cm01_port_1"), Arrays.asList
+ ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id1"), null, null,
+ portTypeToIdList,
+ consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_2"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps02", Arrays.asList("cm01_port_1"),
+ Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id1"),
+ null, null,
+ portTypeToIdList,
+ consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_3"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps03", Arrays.asList("cm01_port_1"),
+ Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume_1"), Arrays.asList("group_id1"),
+ null, null,
+ portTypeToIdList,
+ consolidationData);
+
+ TestUtils.initPortConsolidationData(mainST, consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_1", null, null, null, null, null,
+ consolidationData);
+
+
+ translationContext.setConsolidationData(consolidationData);
+ List<UnifiedCompositionMode> expectedUnifiedModes =
+ Arrays.asList(UnifiedCompositionMode.CatalogInstance);
+ verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
+ }
+
+ @Test
+ public void testGroupRelationsDiffBetweenThreeComputes() throws IOException {
+ ConsolidationData consolidationData = new ConsolidationData();
+ String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
+ ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
+ ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/three_compute_valid",
+ null, null);
+
+ TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps01", Arrays.asList("cm01_port_1"), Arrays.asList
+ ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"), null, null,
+ portTypeToIdList,
+ consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_2"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps02", Arrays.asList("cm01_port_1"),
+ Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
+ null, null,
+ portTypeToIdList,
+ consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_3"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps03", Arrays.asList("cm01_port_1"),
+ Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_2"),
+ null, null,
+ portTypeToIdList,
+ consolidationData);
+
+ TestUtils.initPortConsolidationData(mainST, consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_1", null, null, null, null, null,
+ consolidationData);
+
+
+ translationContext.setConsolidationData(consolidationData);
+ List<UnifiedCompositionMode> expectedUnifiedModes =
+ Arrays.asList(UnifiedCompositionMode.CatalogInstance);
+ verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
+ }
+
+ @Test
+ public void testPortConsolidationDataRelationsSimilar() throws IOException {
+ ConsolidationData consolidationData = new ConsolidationData();
+ String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
+ ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
+ ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/three_ports_similar_relations",
+ null, null);
+
+ TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps01", Arrays.asList("cm01_port_1"), Arrays.asList
+ ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"), null, null,
+ portTypeToIdList,
+ consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_2"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps02", Arrays.asList("cm01_port_1"),
+ Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
+ null, null,
+ portTypeToIdList,
+ consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_3"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps03", Arrays.asList("cm01_port_1"),
+ Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
+ null, null,
+ portTypeToIdList,
+ consolidationData);
+
+ TestUtils.initPortConsolidationData(mainST, consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_1",
+ Arrays.asList("node_in_1"), Arrays.asList("net_id_1"), Arrays.asList("group_id_1"), null, null,
+ consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_2",
+ Arrays.asList("node_in_1"), Arrays.asList("net_id_1"), Arrays.asList("group_id_1"), null, null,
+ consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_3",
+ Arrays.asList("node_in_1"), Arrays.asList("net_id_1"), Arrays.asList("group_id_1"), null, null,
+ consolidationData);
+
+ translationContext.setConsolidationData(consolidationData);
+ List<UnifiedCompositionMode> expectedUnifiedModes =
+ Arrays.asList(UnifiedCompositionMode.ScalingInstances);
+ verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
+ }
+
+ @Test
+ public void testNodesInRelationsDiffBetweenThreePortConsolidationDatas() throws IOException {
+ ConsolidationData consolidationData = new ConsolidationData();
+ String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
+ ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
+ ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/three_ports_similar_relations",
+ null, null);
+
+ TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps01", Arrays.asList("cm01_port_1"), Arrays.asList
+ ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"), null, null,
+ portTypeToIdList,
+ consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_2"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps02", Arrays.asList("cm01_port_1"),
+ Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
+ null, null,
+ portTypeToIdList,
+ consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_3"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps03", Arrays.asList("cm01_port_1"),
+ Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
+ null, null,
+ portTypeToIdList,
+ consolidationData);
+
+ TestUtils.initPortConsolidationData(mainST, consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_1",
+ Arrays.asList("node_in_1"), Arrays.asList("net_id_1"), Arrays.asList("group_id_1"), null, null,
+ consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_2",
+ Arrays.asList("node_in_1"), Arrays.asList("net_id_1"), Arrays.asList("group_id_1"), null, null,
+ consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_3",
+ Arrays.asList("node_in_2"), Arrays.asList("net_id_1"), Arrays.asList("group_id_1"), null, null,
+ consolidationData);
+
+ translationContext.setConsolidationData(consolidationData);
+ List<UnifiedCompositionMode> expectedUnifiedModes =
+ Arrays.asList(UnifiedCompositionMode.CatalogInstance);
+ verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
+ }
+
+ @Test
+ public void testNodesOutRelationsDiffBetweenThreePortConsolidationDatas() throws IOException {
+ ConsolidationData consolidationData = new ConsolidationData();
+ String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
+ ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
+ ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/three_ports_similar_relations",
+ null, null);
+
+ TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps01", Arrays.asList("cm01_port_1"), Arrays.asList
+ ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"), null, null,
+ portTypeToIdList,
+ consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_2"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps02", Arrays.asList("cm01_port_1"),
+ Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
+ null, null,
+ portTypeToIdList,
+ consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_3"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps03", Arrays.asList("cm01_port_1"),
+ Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
+ null, null,
+ portTypeToIdList,
+ consolidationData);
+
+ TestUtils.initPortConsolidationData(mainST, consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_1",
+ Arrays.asList("node_in_1"), Arrays.asList("net_id_1"), Arrays.asList("group_id_1"), null, null,
+ consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_2",
+ Arrays.asList("node_in_1"), Arrays.asList("net_id_1"), Arrays.asList("group_id_1"), null, null,
+ consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_3",
+ Arrays.asList("node_in_1"), Arrays.asList("net_id_2"), Arrays.asList("group_id_1"), null, null,
+ consolidationData);
+
+ translationContext.setConsolidationData(consolidationData);
+ List<UnifiedCompositionMode> expectedUnifiedModes =
+ Arrays.asList(UnifiedCompositionMode.CatalogInstance);
+ verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
+ }
+
+ @Test
+ public void testGroupIdsRelationsDiffBetweenThreePortConsolidationDatas() throws IOException {
+ ConsolidationData consolidationData = new ConsolidationData();
+ String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
+ ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
+ ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/three_ports_similar_relations",
+ null, null);
+
+ TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps01", Arrays.asList("cm01_port_1"), Arrays.asList
+ ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"), null, null,
+ portTypeToIdList,
+ consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_2"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps02", Arrays.asList("cm01_port_1"),
+ Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
+ null, null,
+ portTypeToIdList,
+ consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_3"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps03", Arrays.asList("cm01_port_1"),
+ Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
+ null, null,
+ portTypeToIdList,
+ consolidationData);
+
+ TestUtils.initPortConsolidationData(mainST, consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_1",
+ Arrays.asList("node_in_1"), Arrays.asList("net_id_1"),
+ Arrays.asList("group_id_1", "group_id_2"), null, null,
+ consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_2",
+ Arrays.asList("node_in_1"), Arrays.asList("net_id_1"),
+ Arrays.asList("group_id_1", "group_id_2"), null, null,
+ consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_3",
+ Arrays.asList("node_in_1"), Arrays.asList("net_id_1"),
+ Arrays.asList("group_id_1", "group_id_3"), null, null,
+ consolidationData);
+
+ translationContext.setConsolidationData(consolidationData);
+ List<UnifiedCompositionMode> expectedUnifiedModes =
+ Arrays.asList(UnifiedCompositionMode.CatalogInstance);
+ verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
+ }
+
+ @Test
+ public void testValidConsolidationForComputesWithValidGetAttr() throws IOException {
+ ConsolidationData consolidationData = new ConsolidationData();
+ String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
+ ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
+ ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/three_ports_similar_relations",
+ null, null);
+
+ TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
+
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps01", Arrays.asList("cm01_port_1"), Arrays.asList
+ ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"), Arrays.asList("node_1"), null,
+ portTypeToIdList,
+ consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_2"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps02", Arrays.asList("cm01_port_1"),
+ Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
+ Arrays.asList("node_2"), null,
+ portTypeToIdList,
+ consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_3"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps03", Arrays.asList("cm01_port_1"),
+ Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
+ Arrays.asList("node_3"), null,
+ portTypeToIdList,
+ consolidationData);
+
+ TestUtils.initPortConsolidationData(mainST, consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_1",
+ Arrays.asList("node_in_1"), Arrays.asList("net_id_1"),
+ Arrays.asList("group_id_1", "group_id_2"), null, null,
+ consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_2",
+ Arrays.asList("node_in_1"), Arrays.asList("net_id_1"),
+ Arrays.asList("group_id_1", "group_id_2"), null, null,
+ consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_3",
+ Arrays.asList("node_in_1"), Arrays.asList("net_id_1"),
+ Arrays.asList("group_id_1", "group_id_2"), null, null,
+ consolidationData);
+
+ translationContext.setConsolidationData(consolidationData);
+ List<UnifiedCompositionMode> expectedUnifiedModes =
+ Arrays.asList(UnifiedCompositionMode.ScalingInstances);
+ verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
+ }
+
+ @Test
+ public void testInvalidConsolidationForComputesWithGetAttrForEachOther() throws IOException {
+ ConsolidationData consolidationData = new ConsolidationData();
+ String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
+ ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
+ ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/three_ports_similar_relations",
+ null, null);
+
+ TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
+
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps01", Arrays.asList("cm01_port_1"), Arrays.asList
+ ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"), Arrays.asList("server_ps02"), null,
+ portTypeToIdList,
+ consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_2"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps02", Arrays.asList("cm01_port_1"),
+ Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
+ Arrays.asList("node_1"), null,
+ portTypeToIdList,
+ consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_3"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps03", Arrays.asList("cm01_port_1"),
+ Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
+ Arrays.asList("node_2"), null,
+ portTypeToIdList,
+ consolidationData);
+
+ TestUtils.initPortConsolidationData(mainST, consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_1",
+ Arrays.asList("node_in_1"), Arrays.asList("net_id_1"),
+ Arrays.asList("group_id_1", "group_id_2"), null, null,
+ consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_2",
+ Arrays.asList("node_in_1"), Arrays.asList("net_id_1"),
+ Arrays.asList("group_id_1", "group_id_2"), null, null,
+ consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_3",
+ Arrays.asList("node_in_1"), Arrays.asList("net_id_1"),
+ Arrays.asList("group_id_1", "group_id_2"), null, null,
+ consolidationData);
+
+ translationContext.setConsolidationData(consolidationData);
+ List<UnifiedCompositionMode> expectedUnifiedModes =
+ Arrays.asList(UnifiedCompositionMode.CatalogInstance);
+ verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
+ }
+
+ @Test
+ public void testValidConsolidationForPortsWithValidGetAttr() throws IOException {
+ ConsolidationData consolidationData = new ConsolidationData();
+ String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
+ ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
+ ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/three_ports_similar_relations",
+ null, null);
+
+ TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
+
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps01", Arrays.asList("cm01_port_1"), Arrays.asList
+ ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"), null, null,
+ portTypeToIdList,
+ consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_2"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps02", Arrays.asList("cm01_port_1"),
+ Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
+ null, null,
+ portTypeToIdList,
+ consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_3"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps03", Arrays.asList("cm01_port_1"),
+ Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
+ null, null,
+ portTypeToIdList,
+ consolidationData);
+
+ TestUtils.initPortConsolidationData(mainST, consolidationData);
+ List<String> portNodeTemplateIds =
+ Arrays.asList("cm01_port_1", "cm01_port_2", "cm01_port_3");
+ List<List<String>> nodesConnectedInIds =
+ Arrays.asList(Arrays.asList("node_in_1"), Arrays.asList("node_in_1"), Arrays.asList("node_in_1"));
+ List<List<String>> nodesConnectedOutIds =
+ Arrays.asList(Arrays.asList("node_out_1"), Arrays.asList("node_out_1"), Arrays.asList("node_out_1"));
+ List<List<String>> getAttrInIds =
+ Arrays.asList(Arrays.asList("get_attr_1"), Arrays.asList("get_attr_2"), Arrays.asList("get_attr_3"));
+ List<List<String>> groupIds =
+ Arrays.asList(Arrays.asList("group_id_1", "group_id_2"), Arrays.asList("group_id_1",
+ "group_id_2"), Arrays.asList("group_id_1", "group_id_2"));
+ List<List<Pair<String, GetAttrFuncData>>> getAttrOut = Arrays.asList(null, null, null);
+
+ TestUtils.updateMultiplePortConsolidationDatas(
+ mainST, portNodeTemplateIds,nodesConnectedInIds, nodesConnectedOutIds, groupIds,
+ getAttrInIds, getAttrOut, consolidationData);
+
+ translationContext.setConsolidationData(consolidationData);
+ List<UnifiedCompositionMode> expectedUnifiedModes =
+ Arrays.asList(UnifiedCompositionMode.ScalingInstances);
+ verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
+ }
+
+ @Test
+ public void testInvalidConsolidationForPortsWithGetAttrInForEachOther() throws IOException {
+ ConsolidationData consolidationData = new ConsolidationData();
+ String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
+ ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
+ ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation" +
+ "/three_ports_similar_relations",
+ null, null);
+
+ TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
+
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps01", Arrays.asList("cm01_port_1"), Arrays.asList
+ ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"), Arrays.asList("node_1"), null,
+ portTypeToIdList,
+ consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_2"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps02", Arrays.asList("cm01_port_1"),
+ Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
+ Arrays.asList("node_2"), null,
+ portTypeToIdList,
+ consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_3"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps03", Arrays.asList("cm01_port_1"),
+ Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
+ Arrays.asList("node_3"), null,
+ portTypeToIdList,
+ consolidationData);
+
+ TestUtils.initPortConsolidationData(mainST, consolidationData);
+ List<String> portNodeTemplateIds =
+ Arrays.asList("cm01_port_1", "cm01_port_2", "cm01_port_3");
+ List<List<String>> nodesConnectedInIds =
+ Arrays.asList(Arrays.asList("node_in_1"), Arrays.asList("node_in_1"), Arrays.asList("node_in_1"));
+ List<List<String>> nodesConnectedOutIds =
+ Arrays.asList(Arrays.asList("node_out_1"), Arrays.asList("node_out_1"), Arrays.asList("node_out_1"));
+ List<List<String>> getAttrInIds =
+ Arrays.asList(Arrays.asList("get_attr_1"), Arrays.asList("get_attr_2"), Arrays.asList("cm01_port_1"));
+ List<List<String>> groupIds =
+ Arrays.asList(Arrays.asList("group_id_1", "group_id_2"), Arrays.asList("group_id_1",
+ "group_id_2"), Arrays.asList("group_id_1", "group_id_2"));
+ List<List<Pair<String, GetAttrFuncData>>> getAttrOut = Arrays.asList(null, null, null);
+
+ TestUtils.updateMultiplePortConsolidationDatas(
+ mainST, portNodeTemplateIds, nodesConnectedInIds, nodesConnectedOutIds, groupIds,
+ getAttrInIds, getAttrOut, consolidationData);
+
+ translationContext.setConsolidationData(consolidationData);
+ List<UnifiedCompositionMode> expectedUnifiedModes =
+ Arrays.asList(UnifiedCompositionMode.CatalogInstance);
+ verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
+ }
+
+ @Test
+ public void testValidConsolidationForComputesWithSamePortTypesPointingByGetAttrIn() throws
+ IOException {
+ ConsolidationData consolidationData = new ConsolidationData();
+ String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
+ ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
+ ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/three_ports_similar_relations",
+ null, null);
+
+ TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
+
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps01", Arrays.asList("cm01_port_1"), Arrays.asList
+ ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"), Arrays.asList("cm01_port_1"), null,
+ portTypeToIdList,
+ consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_2"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps02", Arrays.asList("cm01_port_1"),
+ Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
+ Arrays.asList("cm01_port_2"), null,
+ portTypeToIdList,
+ consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_3"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps03", Arrays.asList("cm01_port_1"),
+ Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
+ Arrays.asList("cm01_port_3"), null,
+ portTypeToIdList,
+ consolidationData);
+
+ TestUtils.initPortConsolidationData(mainST, consolidationData);
+ List<String> portNodeTemplateIds =
+ Arrays.asList("cm01_port_1", "cm01_port_2", "cm01_port_3");
+ List<List<String>> nodesConnectedInIds =
+ Arrays.asList(Arrays.asList("node_in_1"), Arrays.asList("node_in_1"), Arrays.asList("node_in_1"));
+ List<List<String>> nodesConnectedOutIds =
+ Arrays.asList(Arrays.asList("node_out_1"), Arrays.asList("node_out_1"), Arrays.asList("node_out_1"));
+ List<List<String>> getAttrInIds =
+ Arrays.asList(Arrays.asList("get_attr_1"), Arrays.asList("get_attr_2"), Arrays.asList("get_attr_3"));
+ List<List<String>> groupIds =
+ Arrays.asList(Arrays.asList("group_id_1", "group_id_2"), Arrays.asList("group_id_1",
+ "group_id_2"), Arrays.asList("group_id_1", "group_id_2"));
+ List<List<Pair<String, GetAttrFuncData>>> getAttrOut = Arrays.asList(null, null, null);
+
+ TestUtils.updateMultiplePortConsolidationDatas(
+ mainST, portNodeTemplateIds, nodesConnectedInIds, nodesConnectedOutIds, groupIds,
+ getAttrInIds, getAttrOut, consolidationData);
+
+ translationContext.setConsolidationData(consolidationData);
+ List<UnifiedCompositionMode> expectedUnifiedModes =
+ Arrays.asList(UnifiedCompositionMode.ScalingInstances);
+ verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
+ }
+
+ @Test
+ public void testValidGetAttrOutFromComputes() throws IOException {
+ ConsolidationData consolidationData = new ConsolidationData();
+ String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
+ ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
+ ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/three_ports_similar_relations",
+ null, null);
+
+ TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+
+ GetAttrFuncData getAttrFuncData = new GetAttrFuncData("name", "c1_name");
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps01", Arrays.asList("cm01_port_1"), Arrays.asList
+ ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"), Arrays.asList("cm01_port_1"),
+ Arrays.asList(new ImmutablePair<String, GetAttrFuncData>("cm01_port_1", getAttrFuncData)),
+ portTypeToIdList,
+ consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_2"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps02", Arrays.asList("cm01_port_1"),
+ Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
+ Arrays.asList("cm01_port_1"),
+ Arrays.asList(new ImmutablePair<String, GetAttrFuncData>("cm01_port_1", getAttrFuncData)),
+ portTypeToIdList,
+ consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_3"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps03", Arrays.asList("cm01_port_1"),
+ Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
+ Arrays.asList("cm01_port_1"),
+ Arrays.asList(new ImmutablePair<String, GetAttrFuncData>("cm01_port_1", getAttrFuncData)),
+ portTypeToIdList,
+ consolidationData);
+
+ TestUtils.initPortConsolidationData(mainST, consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_1",
+ Arrays.asList("node_in_1"), Arrays.asList("net_id_1"),
+ Arrays.asList("group_id_1", "group_id_2"), Arrays.asList("sm01_port_2"), null,
+ consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_2",
+ Arrays.asList("node_in_1"), Arrays.asList("net_id_1"),
+ Arrays.asList("group_id_1", "group_id_2"), Arrays.asList("sm01_port_1"), null,
+ consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_3",
+ Arrays.asList("node_in_1"), Arrays.asList("net_id_1"),
+ Arrays.asList("group_id_1", "group_id_2"), Arrays.asList("rm01_port_1"), null,
+ consolidationData);
+
+ translationContext.setConsolidationData(consolidationData);
+ List<UnifiedCompositionMode> expectedUnifiedModes =
+ Arrays.asList(UnifiedCompositionMode.ScalingInstances);
+ verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
+ }
+
+ @Test
+ public void testInValidGetAttrOutFromComputesPortTypeDifferent() throws IOException {
+ ConsolidationData consolidationData = new ConsolidationData();
+ String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
+ ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
+ ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/three_ports_similar_relations",
+ null, null);
+
+ TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+
+ GetAttrFuncData getAttrFuncData = new GetAttrFuncData("name", "c1_name");
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
+ portTypeToIdList.add(new ImmutablePair<>("sm01_port", "sm01_port_1"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps01", Arrays.asList("cm01_port_1"), Arrays.asList
+ ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"), Arrays.asList("cm01_port_1"),
+ Arrays.asList(new ImmutablePair<String, GetAttrFuncData>("cm01_port_1", getAttrFuncData)),
+ portTypeToIdList,
+ consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_2"));
+ portTypeToIdList.add(new ImmutablePair<>("sm01_port", "sm01_port_2"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps02", Arrays.asList("cm01_port_1"),
+ Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
+ Arrays.asList("cm01_port_1"),
+ Arrays.asList(new ImmutablePair<String, GetAttrFuncData>("cm01_port_1", getAttrFuncData)),
+ portTypeToIdList,
+ consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_3"));
+ portTypeToIdList.add(new ImmutablePair<>("sm01_port", "sm01_port_3"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps03", Arrays.asList("cm01_port_1"),
+ Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
+ Arrays.asList("cm01_port_1"),
+ Arrays.asList(new ImmutablePair<String, GetAttrFuncData>("sm01_port_1", getAttrFuncData)),
+ portTypeToIdList,
+ consolidationData);
+
+ TestUtils.initPortConsolidationData(mainST, consolidationData);
+
+ List<String> portNodeTemplateIds =
+ Arrays.asList("cm01_port_1", "cm01_port_2", "cm01_port_3", "sm01_port_1", "sm01_port_2",
+ "sm01_port_3");
+ List<List<String>> nodesConnectedInIds =
+ Arrays.asList(Arrays.asList("node_in_1"), Arrays.asList("node_in_1"), Arrays.asList
+ ("node_in_1"), Arrays.asList("node_in_1"), Arrays.asList("node_in_1"), Arrays.asList("node_in_1"));
+ List<List<String>> nodesConnectedOutIds =
+ Arrays.asList(Arrays.asList("node_out_1"), Arrays.asList("node_out_1"), Arrays.asList
+ ("node_out_1"), Arrays.asList("node_out_1"), Arrays.asList("node_out_1"), Arrays.asList("node_out_1"));
+ List<List<String>> getAttrInIds =
+ Arrays.asList(Arrays.asList("get_attr_1"), Arrays.asList("get_attr_2"), Arrays.asList
+ ("get_attr_3"), Arrays.asList("get_attr_1"), Arrays.asList("get_attr_2"), Arrays.asList("get_attr_3"));
+ List<List<String>> groupIds =
+ Arrays.asList(Arrays.asList("group_id_1", "group_id_2"), Arrays.asList("group_id_1",
+ "group_id_2"), Arrays.asList("group_id_1", "group_id_2"), Arrays.asList("group_id_1", "group_id_2"), Arrays.asList("group_id_1",
+ "group_id_2"), Arrays.asList("group_id_1", "group_id_2"));
+ List<List<Pair<String, GetAttrFuncData>>> getAttrOut = Arrays.asList(null, null, null, null,
+ null, null);
+
+ TestUtils.updateMultiplePortConsolidationDatas(mainST, portNodeTemplateIds,
+ nodesConnectedInIds, nodesConnectedOutIds, groupIds, getAttrInIds, getAttrOut, consolidationData);
+
+ translationContext.setConsolidationData(consolidationData);
+ List<UnifiedCompositionMode> expectedUnifiedModes =
+ Arrays.asList(UnifiedCompositionMode.SingleSubstitution);
+ verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
+ }
+
+ @Test
+ public void testValidGetAttrOutFromPorts() throws IOException {
+ ConsolidationData consolidationData = new ConsolidationData();
+ String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
+ ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
+ ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/three_ports_similar_relations",
+ null, null);
+
+ TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
+ portTypeToIdList.add(new ImmutablePair<>("sm01_port", "sm01_port_1"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps01", Arrays.asList("cm01_port_1"), Arrays.asList
+ ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"), Arrays.asList("cm01_port_1"), null,
+ portTypeToIdList,
+ consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_2"));
+ portTypeToIdList.add(new ImmutablePair<>("sm01_port", "sm01_port_2"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps02", Arrays.asList("cm01_port_1"),
+ Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
+ Arrays.asList("cm01_port_1"), null,
+ portTypeToIdList,
+ consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_3"));
+ portTypeToIdList.add(new ImmutablePair<>("sm01_port", "sm01_port_3"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps03", Arrays.asList("cm01_port_1"),
+ Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
+ Arrays.asList("cm01_port_1"), null,
+ portTypeToIdList,
+ consolidationData);
+
+ TestUtils.initPortConsolidationData(mainST, consolidationData);
+
+ GetAttrFuncData getAttrFuncData = new GetAttrFuncData("name", "s1_name");
+ List<String> portNodeTemplateIds =
+ Arrays.asList("cm01_port_1", "cm01_port_2", "cm01_port_3", "sm01_port_1", "sm01_port_2",
+ "sm01_port_3");
+ List<List<String>> nodesConnectedInIds =
+ Arrays.asList(Arrays.asList("node_in_1"), Arrays.asList("node_in_1"), Arrays.asList
+ ("node_in_1"), Arrays.asList("node_in_1"), Arrays.asList("node_in_1"), Arrays.asList("node_in_1"));
+ List<List<String>> nodesConnectedOutIds =
+ Arrays.asList(Arrays.asList("node_out_1"), Arrays.asList("node_out_1"), Arrays.asList
+ ("node_out_1"), Arrays.asList("node_out_1"), Arrays.asList("node_out_1"), Arrays.asList("node_out_1"));
+ List<List<String>> getAttrInIds =
+ Arrays.asList(null, null, null, null, null, null);
+ List<List<String>> groupIds =
+ Arrays.asList(Arrays.asList("group_id_1", "group_id_2"), Arrays.asList("group_id_1",
+ "group_id_2"), Arrays.asList("group_id_1", "group_id_2"), Arrays.asList("group_id_1", "group_id_2"), Arrays.asList("group_id_1",
+ "group_id_2"), Arrays.asList("group_id_1", "group_id_2"));
+ List<List<Pair<String, GetAttrFuncData>>> getAttrOut = Arrays.asList(
+ Arrays.asList(new ImmutablePair<String, GetAttrFuncData>("sm01_port_1", getAttrFuncData)),
+ Arrays.asList(new ImmutablePair<String, GetAttrFuncData>("sm01_port_2", getAttrFuncData)),
+ Arrays.asList(new ImmutablePair<String, GetAttrFuncData>("sm01_port_3", getAttrFuncData)),
+ Arrays.asList(new ImmutablePair<String, GetAttrFuncData>("cm01_port_1", getAttrFuncData)),
+ Arrays.asList(new ImmutablePair<String, GetAttrFuncData>("cm01_port_2", getAttrFuncData)),
+ Arrays.asList(new ImmutablePair<String, GetAttrFuncData>("cm01_port_3", getAttrFuncData)));
+
+ TestUtils.updateMultiplePortConsolidationDatas(mainST, portNodeTemplateIds,
+ nodesConnectedInIds, nodesConnectedOutIds, groupIds, getAttrInIds, getAttrOut, consolidationData);
+
+ translationContext.setConsolidationData(consolidationData);
+ List<UnifiedCompositionMode> expectedUnifiedModes =
+ Arrays.asList(UnifiedCompositionMode.ScalingInstances);
+ verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
+ }
+
+ @Test
+ public void testInvalidGetAttrOutFromPorts() throws IOException {
+ ConsolidationData consolidationData = new ConsolidationData();
+ String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
+ ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
+ ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/three_ports_similar_relations",
+ null, null);
+
+ TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
+ portTypeToIdList.add(new ImmutablePair<>("sm01_port", "sm01_port_1"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps01", Arrays.asList("cm01_port_1"), Arrays.asList
+ ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"), Arrays.asList("cm01_port_1"), null,
+ portTypeToIdList,
+ consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_2"));
+ portTypeToIdList.add(new ImmutablePair<>("sm01_port", "sm01_port_2"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps02", Arrays.asList("cm01_port_1"),
+ Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
+ Arrays.asList("cm01_port_1"), null,
+ portTypeToIdList,
+ consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_3"));
+ portTypeToIdList.add(new ImmutablePair<>("sm01_port", "sm01_port_3"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps03", Arrays.asList("cm01_port_1"),
+ Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
+ Arrays.asList("cm01_port_1"), null,
+ portTypeToIdList,
+ consolidationData);
+
+ TestUtils.initPortConsolidationData(mainST, consolidationData);
+
+ GetAttrFuncData getAttrFuncData = new GetAttrFuncData("name", "s1_name");
+ List<String> portNodeTemplateIds =
+ Arrays.asList("cm01_port_1", "cm01_port_2", "cm01_port_3", "sm01_port_1", "sm01_port_2",
+ "sm01_port_3");
+ List<List<String>> nodesConnectedInIds =
+ Arrays.asList(Arrays.asList("node_in_1"), Arrays.asList("node_in_1"), Arrays.asList
+ ("node_in_1"), Arrays.asList("node_in_1"), Arrays.asList("node_in_1"), Arrays.asList("node_in_1"));
+ List<List<String>> nodesConnectedOutIds =
+ Arrays.asList(Arrays.asList("node_out_1"), Arrays.asList("node_out_1"), Arrays.asList
+ ("node_out_1"), Arrays.asList("node_out_1"), Arrays.asList("node_out_1"), Arrays.asList("node_out_1"));
+ List<List<String>> getAttrInIds =
+ Arrays.asList(null, null, null, null, null, null);
+ List<List<String>> groupIds =
+ Arrays.asList(Arrays.asList("group_id_1", "group_id_2"), Arrays.asList("group_id_1",
+ "group_id_2"), Arrays.asList("group_id_1", "group_id_2"), Arrays.asList("group_id_1", "group_id_2"), Arrays.asList("group_id_1",
+ "group_id_2"), Arrays.asList("group_id_1", "group_id_2"));
+ List<List<Pair<String, GetAttrFuncData>>> getAttrOut = Arrays.asList(
+ Arrays.asList(new ImmutablePair<String, GetAttrFuncData>("server_ps01", getAttrFuncData)),
+ Arrays.asList(new ImmutablePair<String, GetAttrFuncData>("server_ps01", getAttrFuncData)),
+ Arrays.asList(new ImmutablePair<String, GetAttrFuncData>("sm01_port_3", getAttrFuncData)),
+ Arrays.asList(new ImmutablePair<String, GetAttrFuncData>("cm01_port_1", getAttrFuncData)),
+ Arrays.asList(new ImmutablePair<String, GetAttrFuncData>("cm01_port_2", getAttrFuncData)),
+ Arrays.asList(new ImmutablePair<String, GetAttrFuncData>("cm01_port_3", getAttrFuncData)));
+
+ TestUtils.updateMultiplePortConsolidationDatas(mainST, portNodeTemplateIds,
+ nodesConnectedInIds, nodesConnectedOutIds, groupIds, getAttrInIds, getAttrOut, consolidationData);
+
+ translationContext.setConsolidationData(consolidationData);
+ List<UnifiedCompositionMode> expectedUnifiedModes =
+ Arrays.asList(UnifiedCompositionMode.SingleSubstitution);
+ verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
+ }
+
+ @Test
+ public void testSubstitutionConsolidationPreConditionTrue() throws IOException {
+ translationContext = new TranslationContext();
+ String mainSTName = "MainServiceTemplate.yaml";
+ String nestedServiceTemplateName = "nested-pcm_v0.1ServiceTemplate.yaml";
+
+ ConsolidationData consolidationData = new ConsolidationData();
+ TestUtils.updateNestedConsolidationData(mainSTName, Arrays.asList("server_pcm_001"), consolidationData);
+ TestUtils.initComputeNodeTypeInConsolidationData(mainSTName, "org.openecomp.resource.vfc.nodes.heat" +
+ ".pcm_server", consolidationData);
+ TestUtils.initComputeNodeTemplateIdInConsolidationData(mainSTName, "org.openecomp.resource.vfc.nodes.heat.pcm_server", "server_pcm_001", consolidationData);
+ TestUtils.initComputeNodeTypeInConsolidationData(nestedServiceTemplateName, "org.openecomp.resource.vfc.nodes.heat" +
+ ".pcm_server", consolidationData);
+ TestUtils.initComputeNodeTemplateIdInConsolidationData(nestedServiceTemplateName, "org.openecomp.resource.vfc.nodes" +
+ ".heat.pcm_server", "pcm_server", consolidationData);
+
+ translationContext.setConsolidationData(consolidationData);
+
+ addMockServiceTemplateToContext(mainSTName, "Main");
+ addMockServiceTemplateToContext(nestedServiceTemplateName, "nested-pcm_v0.1");
+
+ verifySubstitutionServiceTemplateConsolidation
+ (1, translationContext.getTranslatedServiceTemplates().get(mainSTName),
+ translationContext.getTranslatedServiceTemplates().get(nestedServiceTemplateName),
+ UnifiedCompositionMode.NestedSingleCompute);
+ }
+
+ @Test
+ public void testSubstitutionConsolidationPreConditionFalseMoreThanOneComputeType() throws IOException {
+ translationContext = new TranslationContext();
+ String mainSTName = "MainServiceTemplate.yaml";
+ String nestedServiceTemplateName = "nested-pcm_v0.1ServiceTemplate.yaml";
+
+ ConsolidationData consolidationData = new ConsolidationData();
+ TestUtils.updateNestedConsolidationData(mainSTName, Arrays.asList("server_pcm_001"), consolidationData);
+ TestUtils.initComputeNodeTypeInConsolidationData(mainSTName, "org.openecomp.resource.vfc.nodes.heat" +
+ ".pcm_server", consolidationData);
+ TestUtils.initComputeNodeTemplateIdInConsolidationData(mainSTName, "org.openecomp.resource.vfc.nodes" +
+ ".heat.pcm_server", "server_pcm_001", consolidationData);
+ TestUtils.initComputeNodeTypeInConsolidationData(nestedServiceTemplateName, "org.openecomp.resource.vfc.nodes.heat" +
+ ".pcm_server", consolidationData);
+
+ TestUtils.updateNestedConsolidationData(mainSTName, Arrays.asList("server_oam_001"), consolidationData);
+ TestUtils.initComputeNodeTypeInConsolidationData(mainSTName, "org.openecomp.resource.vfc.nodes.heat" +
+ ".oam_server", consolidationData);
+ TestUtils.initComputeNodeTemplateIdInConsolidationData(mainSTName, "org.openecomp.resource.vfc.nodes.heat.oam_server", "server_oam_001", consolidationData);
+ TestUtils.initComputeNodeTypeInConsolidationData(nestedServiceTemplateName, "org.openecomp.resource.vfc.nodes.heat" +
+ ".oam_server", consolidationData);
+
+ translationContext.setConsolidationData(consolidationData);
+
+ addMockServiceTemplateToContext(mainSTName, "Main");
+ addMockServiceTemplateToContext(nestedServiceTemplateName, "nested-pcm_v0.1");
+
+ verifySubstitutionServiceTemplateConsolidation
+ (0, translationContext.getTranslatedServiceTemplates().get(mainSTName),
+ translationContext.getTranslatedServiceTemplates().get(nestedServiceTemplateName), UnifiedCompositionMode.NestedSingleCompute);
+ }
+
+ @Test
+ public void testSubstitutionConsolidationPreConditionFalseMoreThanOneComputeOfSameType() throws IOException {
+ translationContext = new TranslationContext();
+ String mainSTName = "MainServiceTemplate.yaml";
+ String nestedServiceTemplateName = "nested-pcm_v0.1ServiceTemplate.yaml";
+
+ ConsolidationData consolidationData = new ConsolidationData();
+ TestUtils.updateNestedConsolidationData(mainSTName, Arrays.asList("server_pcm_001"), consolidationData);
+ TestUtils.initComputeNodeTypeInConsolidationData(nestedServiceTemplateName, "org.openecomp.resource.vfc.nodes.heat" +
+ ".pcm_server", consolidationData);
+ TestUtils.initComputeNodeTypeInConsolidationData(mainSTName, "org.openecomp.resource.vfc.nodes.heat" +
+ ".pcm_server", consolidationData);
+ TestUtils.initComputeNodeTemplateIdInConsolidationData(nestedServiceTemplateName, "org.openecomp.resource.vfc.nodes" +
+ ".heat.pcm_server", "pcm_server_1", consolidationData);
+
+ TestUtils.updateNestedConsolidationData(nestedServiceTemplateName, Arrays.asList("server_pcm_002"),
+ consolidationData);
+ TestUtils.initComputeNodeTemplateIdInConsolidationData(nestedServiceTemplateName, "org.openecomp.resource.vfc.nodes" +
+ ".heat.pcm_server", "pcm_server_2", consolidationData);
+
+ translationContext.setConsolidationData(consolidationData);
+
+ addMockServiceTemplateToContext(mainSTName, "Main");
+ addMockServiceTemplateToContext(nestedServiceTemplateName, "nested-pcm_v0.1");
+
+ verifySubstitutionServiceTemplateConsolidation
+ (0, translationContext.getTranslatedServiceTemplates().get(mainSTName),
+ translationContext.getTranslatedServiceTemplates().get(nestedServiceTemplateName), UnifiedCompositionMode.NestedSingleCompute);
+ }
+
+ @Test
+ public void testSubstitutionConsolidationPreConditionFalseNestedInsideNested(){
+ translationContext = new TranslationContext();
+ String mainSTName = "MainServiceTemplate.yaml";
+ String nestedServiceTemplateName = "nested-pcm_v0.1ServiceTemplate.yaml";
+
+ ConsolidationData consolidationData = new ConsolidationData();
+ TestUtils.updateNestedConsolidationData(mainSTName, Arrays.asList("server_pcm_001"), consolidationData);
+ TestUtils.initComputeNodeTypeInConsolidationData(mainSTName, "org.openecomp.resource.vfc.nodes.heat" +
+ ".pcm_server", consolidationData);
+ TestUtils.initComputeNodeTemplateIdInConsolidationData(mainSTName, "org.openecomp.resource.vfc.nodes.heat.pcm_server", "server_pcm_001", consolidationData);
+ TestUtils.initComputeNodeTypeInConsolidationData(nestedServiceTemplateName, "org.openecomp.resource.vfc.nodes.heat" +
+ ".pcm_server", consolidationData);
+ TestUtils.initComputeNodeTemplateIdInConsolidationData(nestedServiceTemplateName, "org.openecomp.resource.vfc.nodes" +
+ ".heat.pcm_server", "pcm_server", consolidationData);
+
+ TestUtils.updateNestedConsolidationData(nestedServiceTemplateName, Arrays.asList("nested_resource"), consolidationData);
+
+ translationContext.setConsolidationData(consolidationData);
+
+ addMockServiceTemplateToContext(mainSTName, "Main");
+ addMockServiceTemplateToContext(nestedServiceTemplateName, "nested-pcm_v0.1");
+
+ verifySubstitutionServiceTemplateConsolidation
+ (0, translationContext.getTranslatedServiceTemplates().get(mainSTName),
+ translationContext.getTranslatedServiceTemplates().get(nestedServiceTemplateName), UnifiedCompositionMode.NestedSingleCompute);
+ }
+
+
+ private void verifyMainServiceTemplateConsolidation(int times,
+ List<UnifiedCompositionMode> expectedUnifiedCompositionModes,
+ ToscaServiceModel toscaServiceModel) {
+ consolidationService.mainServiceTemplateConsolidation(toscaServiceModel.getServiceTemplates().get(mainST), translationContext);
+
+ ServiceTemplate mainServiceTemplate = toscaServiceModel.getServiceTemplates().get(mainST);
+ verify(unifiedCompositionServiceMock, times(times))
+ .createUnifiedComposition(
+ eq(mainServiceTemplate),
+ any(),
+ unifiedModelListArg.capture(),
+ unifiedCompositionModeArg.capture(),
+ eq(translationContext));
+
+ List<UnifiedCompositionMode> actualUnifiedCompositionModes = unifiedCompositionModeArg.getAllValues();
+ Assert.assertEquals(expectedUnifiedCompositionModes, actualUnifiedCompositionModes);
+ }
+
+ private void verifySubstitutionServiceTemplateConsolidation(int times,
+ ServiceTemplate mainST,
+ ServiceTemplate nestedST, UnifiedCompositionMode expectedMode){
+ consolidationService.substitutionServiceTemplateConsolidation(null, mainST,
+ nestedST, translationContext);
+
+ if(times == 0){
+ verify(unifiedCompositionServiceMock, never()).
+ createUnifiedComposition(
+ any(),
+ any(),
+ any(),
+ any(),
+ eq(translationContext));
+ }else {
+ verify(unifiedCompositionServiceMock, times(times)).
+ createUnifiedComposition(
+ eq(mainST),
+ eq(nestedST),
+ unifiedModelListArg.capture(),
+ unifiedCompositionModeArg.capture(),
+ eq(translationContext));
+
+ Assert.assertEquals(expectedMode, unifiedCompositionModeArg.getValue());
+ }
+
+ }
+
+ private void addMockServiceTemplateToContext(String serviceTemplateFileName, String templateName) {
+ ServiceTemplate serviceTemplate = new ServiceTemplate();
+ Map<String, String> metadata = new HashMap<>();
+ metadata.put(ToscaConstants.ST_METADATA_TEMPLATE_NAME, templateName);
+ serviceTemplate.setMetadata(metadata);
+ translationContext.getTranslatedServiceTemplates()
+ .put(serviceTemplateFileName, serviceTemplate);
+ }
+}