2 * Copyright © 2016-2018 European Support Limited
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 package org.openecomp.sdc.translator.services.heattotosca;
19 import org.apache.commons.lang3.tuple.ImmutablePair;
20 import org.apache.commons.lang3.tuple.Pair;
21 import org.junit.Assert;
22 import org.junit.Before;
23 import org.junit.Test;
25 import org.onap.sdc.tosca.datatypes.model.ServiceTemplate;
26 import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
27 import org.openecomp.sdc.tosca.services.ToscaConstants;
28 import org.openecomp.sdc.translator.SubInterfaceConsolidationDataTestInfo;
29 import org.openecomp.sdc.translator.TestUtils;
30 import org.openecomp.sdc.translator.datatypes.heattotosca.TranslationContext;
31 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.UnifiedCompositionData;
32 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.UnifiedCompositionMode;
33 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.ConsolidationData;
34 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.GetAttrFuncData;
36 import java.io.IOException;
37 import java.net.URISyntaxException;
40 import static org.mockito.Matchers.any;
41 import static org.mockito.Matchers.eq;
42 import static org.mockito.Mockito.times;
43 import static org.mockito.Mockito.verify;
45 public class ConsolidationServiceTest {
48 private static final String CM_01_PORT_TYPE = "cm01_port";
49 private static final String SM_01_PORT_TYPE = "sm01_port";
51 private TranslationContext translationContext = new TranslationContext();
52 private static String mainST = "MainServiceTemplate.yaml";
55 private UnifiedCompositionService unifiedCompositionServiceMock;
58 private ArgumentCaptor<List<UnifiedCompositionData>> unifiedModelListArg;
60 private ArgumentCaptor<UnifiedCompositionMode> unifiedCompositionModeArg;
64 private ConsolidationService consolidationService;
67 public void setUp() throws Exception {
68 MockitoAnnotations.openMocks(this);
72 public void testConsolidationValidPreCondition() throws IOException, URISyntaxException {
74 ConsolidationData consolidationData = new ConsolidationData();
75 String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
76 ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel(
77 "/mock/services/heattotosca/consolidation/translatedfiles/pre_condition/valid_pre_condition/",
81 TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName,
84 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
85 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_1"));
86 portTypeToIdList.add(new ImmutablePair<>(SM_01_PORT_TYPE, "sm01_port_1"));
88 TestUtils.updateComputeTemplateConsolidationData(
90 computeNodeTypeName, "server_ps01",
91 null, null, null, null, null, null,
92 portTypeToIdList, consolidationData);
94 TestUtils.updateComputeTemplateConsolidationData(
96 computeNodeTypeName, "server_ps02", null, null, null, null, null, null,
97 portTypeToIdList, consolidationData);
99 TestUtils.initPortConsolidationData(mainST, consolidationData);
100 TestUtils.updatePortConsolidationData(mainST, "cm01_port_1", CM_01_PORT_TYPE,
101 null, null, null, null, null,
103 TestUtils.updatePortConsolidationData(mainST, "sm01_port_1", CM_01_PORT_TYPE,
104 null, null, null, null, null,
107 translationContext.setConsolidationData(consolidationData);
108 List<UnifiedCompositionMode> expectedUnifiedModes =
109 Collections.singletonList(UnifiedCompositionMode.ScalingInstances);
111 verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
115 public void testConsolidationFalsePreConditionOneComputeNode() throws IOException, URISyntaxException {
116 ConsolidationData consolidationData = new ConsolidationData();
117 String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
118 ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
119 ("/mock/services/heattotosca/consolidation/translatedfiles/pre_condition/one_compute_node/",
123 .initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
125 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
126 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_1"));
127 portTypeToIdList.add(new ImmutablePair<>(SM_01_PORT_TYPE, "sm01_port_1"));
129 TestUtils.updateComputeTemplateConsolidationData(
131 computeNodeTypeName, "server_ps01",
132 null, null, null, null, null, null,
133 portTypeToIdList, consolidationData);
135 TestUtils.initPortConsolidationData(mainST, consolidationData);
136 TestUtils.updatePortConsolidationData(mainST, "cm01_port_1", CM_01_PORT_TYPE,
137 null, null, null, null, null,
139 TestUtils.updatePortConsolidationData(mainST, "sm01_port_1", SM_01_PORT_TYPE,
140 null, null, null, null, null,
143 translationContext.setConsolidationData(consolidationData);
144 List<UnifiedCompositionMode> expectedUnifiedModes =
145 Collections.singletonList(UnifiedCompositionMode.SingleSubstitution);
146 verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
150 public void testConsolidationFalsePreConditionMoreThanOnePortPerType() throws IOException, URISyntaxException {
151 ConsolidationData consolidationData = new ConsolidationData();
152 String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
153 ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
154 ("/mock/services/heattotosca/consolidation/translatedfiles/pre_condition/more_than_one_port/",
158 .initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
160 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
161 portTypeToIdList.add(new ImmutablePair<>(SM_01_PORT_TYPE, "sm01_port_1"));
162 portTypeToIdList.add(new ImmutablePair<>(SM_01_PORT_TYPE, "sm01_port_2"));
164 TestUtils.updateComputeTemplateConsolidationData(
166 computeNodeTypeName, "server_ps01",
167 null, null, null, null, null, null,
168 portTypeToIdList, consolidationData);
170 TestUtils.updateComputeTemplateConsolidationData(
172 computeNodeTypeName, "server_ps02",
173 null, null, null, null, null, null,
174 portTypeToIdList, consolidationData);
177 TestUtils.initPortConsolidationData(mainST, consolidationData);
179 translationContext.setConsolidationData(consolidationData);
180 List<UnifiedCompositionMode> expectedUnifiedModes =
181 Collections.singletonList(UnifiedCompositionMode.SingleSubstitution);
182 verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
186 public void testConsolidationFalsePreConditionDifferentPortTypesBetweenComputes()
187 throws IOException, URISyntaxException {
188 ConsolidationData consolidationData = new ConsolidationData();
189 String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
190 ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
191 ("/mock/services/heattotosca/consolidation/translatedfiles/pre_condition/different_port_types",
195 .initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
197 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
198 portTypeToIdList.add(new ImmutablePair<>(SM_01_PORT_TYPE, "sm01_port_1"));
200 TestUtils.updateComputeTemplateConsolidationData(
202 computeNodeTypeName, "server_ps01",
203 null, null, null, null, null, null,
204 portTypeToIdList, consolidationData);
206 portTypeToIdList = new ArrayList<>();
207 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_1"));
209 TestUtils.updateComputeTemplateConsolidationData(
211 computeNodeTypeName, "server_ps02",
212 null, null, null, null, null, null,
213 portTypeToIdList, consolidationData);
215 TestUtils.initPortConsolidationData(mainST, consolidationData);
216 TestUtils.updatePortConsolidationData(mainST, "cm01_port_1", CM_01_PORT_TYPE,
217 null, null, null, null, null,
219 TestUtils.updatePortConsolidationData(mainST, "sm01_port_1", SM_01_PORT_TYPE,
220 null, null, null, null, null,
223 translationContext.setConsolidationData(consolidationData);
224 List<UnifiedCompositionMode> expectedUnifiedModes =
225 Collections.singletonList(UnifiedCompositionMode.SingleSubstitution);
226 verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
231 public void testConsolidationResultTrueWithMoreThanTwoCompute() throws IOException, URISyntaxException {
232 ConsolidationData consolidationData = new ConsolidationData();
233 String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
234 ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
235 ("/mock/services/heattotosca/consolidation/translatedfiles/pre_condition/three_compute_valid",
239 .initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
241 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
242 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_1"));
243 portTypeToIdList.add(new ImmutablePair<>(SM_01_PORT_TYPE, "sm01_port_1"));
245 TestUtils.updateComputeTemplateConsolidationData(
247 computeNodeTypeName, "server_ps01",
248 null, null, null, null, null, null,
249 portTypeToIdList, consolidationData);
251 TestUtils.updateComputeTemplateConsolidationData(
253 computeNodeTypeName, "server_ps02",
254 null, null, null, null, null, null,
255 portTypeToIdList, consolidationData);
257 TestUtils.updateComputeTemplateConsolidationData(
259 computeNodeTypeName, "server_ps03",
260 null, null, null, null, null, null,
261 portTypeToIdList, consolidationData);
263 TestUtils.initPortConsolidationData(mainST, consolidationData);
264 TestUtils.updatePortConsolidationData(mainST, "cm01_port_1", CM_01_PORT_TYPE,
265 null, null, null, null, null,
267 TestUtils.updatePortConsolidationData(mainST, "sm01_port_1", SM_01_PORT_TYPE,
268 null, null, null, null, null,
271 translationContext.setConsolidationData(consolidationData);
273 List<UnifiedCompositionMode> expectedUnifiedModes =
274 Collections.singletonList(UnifiedCompositionMode.ScalingInstances);
275 verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
279 public void testConsolidationResultFalseWithMoreThanTwoComputeOneIsDiff() throws IOException, URISyntaxException {
280 ConsolidationData consolidationData = new ConsolidationData();
281 String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
282 ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
283 ("/mock/services/heattotosca/consolidation/translatedfiles/pre_condition/three_compute_valid",
287 .initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
289 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
290 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_1"));
291 portTypeToIdList.add(new ImmutablePair<>(SM_01_PORT_TYPE, "sm01_port_1"));
293 TestUtils.updateComputeTemplateConsolidationData(
295 computeNodeTypeName, "server_ps01",
296 null, null, null, null, null, null,
297 portTypeToIdList, consolidationData);
299 TestUtils.updateComputeTemplateConsolidationData(
301 computeNodeTypeName, "server_ps02",
302 null, null, null, null, null, null,
303 portTypeToIdList, consolidationData);
305 portTypeToIdList = new ArrayList<>();
306 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_1"));
307 TestUtils.updateComputeTemplateConsolidationData(
309 computeNodeTypeName, "server_ps03",
310 null, null, null, null, null, null,
311 portTypeToIdList, consolidationData);
313 TestUtils.initPortConsolidationData(mainST, consolidationData);
314 TestUtils.updatePortConsolidationData(mainST, "cm01_port_1", CM_01_PORT_TYPE,
315 null, null, null, null, null,
317 TestUtils.updatePortConsolidationData(mainST, "sm01_port_1", SM_01_PORT_TYPE,
318 null, null, null, null, null,
321 translationContext.setConsolidationData(consolidationData);
322 List<UnifiedCompositionMode> expectedUnifiedModes =
323 Collections.singletonList(UnifiedCompositionMode.SingleSubstitution);
324 verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
328 public void testConsolidationResultFalseForTwoTypesOfComputeWithOneInstanceEach()
329 throws IOException, URISyntaxException {
330 ConsolidationData consolidationData = new ConsolidationData();
331 String computeNodeTypeName1 = "org.openecomp.resource.vfc.nodes.heat.ps_server";
332 String computeNodeTypeName2 = "org.openecomp.resource.vfc.nodes.heat.cmaui";
333 ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
334 ("/mock/services/heattotosca/consolidation/translatedfiles/pre_condition/three_compute_valid",
337 TestUtils.initComputeNodeTypeInConsolidationData
338 (mainST, computeNodeTypeName1, consolidationData);
339 TestUtils.initComputeNodeTypeInConsolidationData
340 (mainST, computeNodeTypeName2, consolidationData);
342 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
343 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_1"));
344 portTypeToIdList.add(new ImmutablePair<>(SM_01_PORT_TYPE, "sm01_port_1"));
346 TestUtils.updateComputeTemplateConsolidationData(
348 computeNodeTypeName1, "server_ps01",
349 null, null, null, null, null, null,
350 portTypeToIdList, consolidationData);
352 TestUtils.updateComputeTemplateConsolidationData(
354 computeNodeTypeName2, "server_ps02",
355 null, null, null, null, null, null,
356 portTypeToIdList, consolidationData);
358 TestUtils.initPortConsolidationData(mainST, consolidationData);
359 TestUtils.updatePortConsolidationData(mainST, "cm01_port_1", CM_01_PORT_TYPE,
360 null, null, null, null, null,
362 TestUtils.updatePortConsolidationData(mainST, "sm01_port_1", SM_01_PORT_TYPE,
363 null, null, null, null, null,
366 translationContext.setConsolidationData(consolidationData);
368 List<UnifiedCompositionMode> expectedUnifiedModes =
369 Arrays.asList(UnifiedCompositionMode.SingleSubstitution,
370 UnifiedCompositionMode.SingleSubstitution);
371 verifyMainServiceTemplateConsolidation(2, expectedUnifiedModes, toscaServiceModel);
375 public void testConsolidationValidForTwoSimilarComputeAndFalseForSingleCompute()
376 throws IOException, URISyntaxException {
377 ConsolidationData consolidationData = new ConsolidationData();
378 String computeNodeTypeName1 = "org.openecomp.resource.vfc.nodes.heat.ps_server";
379 String computeNodeTypeName2 = "org.openecomp.resource.vfc.nodes.heat.cmaui";
380 ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
381 ("/mock/services/heattotosca/consolidation/translatedfiles/pre_condition/three_compute_two_similar_one_diff",
385 .initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName1, consolidationData);
387 .initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName2, consolidationData);
389 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
390 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_1"));
391 portTypeToIdList.add(new ImmutablePair<>(SM_01_PORT_TYPE, "sm01_port_1"));
393 TestUtils.updateComputeTemplateConsolidationData(
395 computeNodeTypeName1, "server_ps01",
396 null, null, null, null, null, null,
397 portTypeToIdList, consolidationData);
399 TestUtils.updateComputeTemplateConsolidationData(
401 computeNodeTypeName1, "server_ps02",
402 null, null, null, null, null, null,
403 portTypeToIdList, consolidationData);
404 TestUtils.updateComputeTemplateConsolidationData(
406 computeNodeTypeName2, "server_ps03",
407 null, null, null, null, null, null,
408 portTypeToIdList, consolidationData);
410 TestUtils.initPortConsolidationData(mainST, consolidationData);
411 TestUtils.updatePortConsolidationData(mainST, "cm01_port_1", CM_01_PORT_TYPE,
412 null, null, null, null, null,
414 TestUtils.updatePortConsolidationData(mainST, "sm01_port_1", SM_01_PORT_TYPE,
415 null, null, null, null, null,
418 translationContext.setConsolidationData(consolidationData);
419 List<UnifiedCompositionMode> expectedUnifiedModes =
420 Arrays.asList(UnifiedCompositionMode.ScalingInstances,
421 UnifiedCompositionMode.SingleSubstitution);
422 verifyMainServiceTemplateConsolidation(2, expectedUnifiedModes, toscaServiceModel);
426 public void testValidComputeAndPortConsolidation() throws IOException, URISyntaxException {
427 ConsolidationData consolidationData = new ConsolidationData();
428 String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
429 ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
430 ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/three_compute_valid",
434 .initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
436 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
437 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_1"));
438 portTypeToIdList.add(new ImmutablePair<>(SM_01_PORT_TYPE, "sm01_port_1"));
440 TestUtils.updateComputeTemplateConsolidationData(
442 computeNodeTypeName, "server_ps01",
443 null, null, null, null, null, null,
444 portTypeToIdList, consolidationData);
446 TestUtils.updateComputeTemplateConsolidationData(
448 computeNodeTypeName, "server_ps02",
449 null, null, null, null, null, null,
450 portTypeToIdList, consolidationData);
452 TestUtils.updateComputeTemplateConsolidationData(
454 computeNodeTypeName, "server_ps03",
455 null, null, null, null, null, null,
456 portTypeToIdList, consolidationData);
458 TestUtils.initPortConsolidationData(mainST, consolidationData);
459 TestUtils.updatePortConsolidationData(mainST, "cm01_port_1", CM_01_PORT_TYPE,
460 null, null, null, null, null,
462 TestUtils.updatePortConsolidationData(mainST, "sm01_port_1", SM_01_PORT_TYPE,
463 null, null, null, null, null,
466 translationContext.setConsolidationData(consolidationData);
467 List<UnifiedCompositionMode> expectedUnifiedModes =
468 Collections.singletonList(UnifiedCompositionMode.ScalingInstances);
469 verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
473 public void testFalseComputeConsolidationForTwoSimilarImageNamesAndOneDiff() throws IOException, URISyntaxException {
474 ConsolidationData consolidationData = new ConsolidationData();
475 String computeNodeTypeName1 = "org.openecomp.resource.vfc.nodes.heat.ps_server";
476 String computeNodeTypeName2 = "org.openecomp.resource.vfc.nodes.heat.pd_server";
477 ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
478 ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/one_image_name_diff",
481 TestUtils.initComputeNodeTypeInConsolidationData(
482 mainST, computeNodeTypeName1, consolidationData);
483 TestUtils.initComputeNodeTypeInConsolidationData(
484 mainST, computeNodeTypeName2, consolidationData);
486 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
487 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_1"));
488 portTypeToIdList.add(new ImmutablePair<>(SM_01_PORT_TYPE, "sm01_port_1"));
490 TestUtils.updateComputeTemplateConsolidationData(
492 computeNodeTypeName1, "server_ps01",
493 null, null, null, null, null, null,
494 portTypeToIdList, consolidationData);
496 TestUtils.updateComputeTemplateConsolidationData(
498 computeNodeTypeName1, "server_ps02",
499 null, null, null, null, null, null,
500 portTypeToIdList, consolidationData);
502 TestUtils.updateComputeTemplateConsolidationData(
504 computeNodeTypeName1, "server_ps03",
505 null, null, null, null, null, null,
506 portTypeToIdList, consolidationData);
508 TestUtils.updateComputeTemplateConsolidationData(
510 computeNodeTypeName2, "server_pd01",
511 null, null, null, null, null, null,
512 portTypeToIdList, consolidationData);
514 TestUtils.updateComputeTemplateConsolidationData(
516 computeNodeTypeName2, "server_pd02",
517 null, null, null, null, null, null,
518 portTypeToIdList, consolidationData);
520 TestUtils.updateComputeTemplateConsolidationData(
522 computeNodeTypeName2, "server_pd03",
523 null, null, null, null, null, null,
524 portTypeToIdList, consolidationData);
526 TestUtils.initPortConsolidationData(mainST, consolidationData);
527 TestUtils.updatePortConsolidationData(mainST, "cm01_port_1", CM_01_PORT_TYPE,
528 null, null, null, null, null,
530 TestUtils.updatePortConsolidationData(mainST, "sm01_port_1", SM_01_PORT_TYPE,
531 null, null, null, null, null,
534 translationContext.setConsolidationData(consolidationData);
535 List<UnifiedCompositionMode> expectedUnifiedModes =
537 .asList(UnifiedCompositionMode.CatalogInstance, UnifiedCompositionMode.CatalogInstance);
538 verifyMainServiceTemplateConsolidation(2, expectedUnifiedModes, toscaServiceModel);
542 public void testFalseComputeConsolidationOneImageNameMissing() throws IOException, URISyntaxException {
543 ConsolidationData consolidationData = new ConsolidationData();
544 String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.pd_server";
545 ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
546 ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/one_image_missing",
549 TestUtils.initComputeNodeTypeInConsolidationData(
550 mainST, computeNodeTypeName, consolidationData);
552 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
553 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_1"));
554 portTypeToIdList.add(new ImmutablePair<>(SM_01_PORT_TYPE, "sm01_port_1"));
556 TestUtils.updateComputeTemplateConsolidationData(
558 computeNodeTypeName, "server_pd01",
559 null, null, null, null, null, null,
560 portTypeToIdList, consolidationData);
562 TestUtils.updateComputeTemplateConsolidationData(
564 computeNodeTypeName, "server_pd02",
565 null, null, null, null, null, null,
566 portTypeToIdList, consolidationData);
568 TestUtils.updateComputeTemplateConsolidationData(
570 computeNodeTypeName, "server_pd03",
571 null, null, null, null, null, null,
572 portTypeToIdList, consolidationData);
574 TestUtils.initPortConsolidationData(mainST, consolidationData);
575 TestUtils.updatePortConsolidationData(mainST, "cm01_port_1", CM_01_PORT_TYPE,
576 null, null, null, null, null,
578 TestUtils.updatePortConsolidationData(mainST, "sm01_port_1", SM_01_PORT_TYPE,
579 null, null, null, null, null,
582 translationContext.setConsolidationData(consolidationData);
583 List<UnifiedCompositionMode> expectedUnifiedModes =
584 Collections.singletonList(UnifiedCompositionMode.CatalogInstance);
585 verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
589 public void testFalseComputeConsolidationForTwoSimilarFlavorNamesAndOneDiff() throws IOException, URISyntaxException {
590 ConsolidationData consolidationData = new ConsolidationData();
591 String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
592 ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
593 ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/one_flavor_name_diff",
597 .initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
599 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
600 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_1"));
601 portTypeToIdList.add(new ImmutablePair<>(SM_01_PORT_TYPE, "sm01_port_1"));
603 TestUtils.updateComputeTemplateConsolidationData(
605 computeNodeTypeName, "server_ps01", null, null, null, null, null, null,
606 portTypeToIdList, consolidationData);
608 TestUtils.updateComputeTemplateConsolidationData(
610 computeNodeTypeName, "server_ps02", null, null, null, null, null, null,
611 portTypeToIdList, consolidationData);
613 TestUtils.updateComputeTemplateConsolidationData(
615 computeNodeTypeName, "server_ps03", null, null, null, null, null, null,
616 portTypeToIdList, consolidationData);
618 TestUtils.initPortConsolidationData(mainST, consolidationData);
619 TestUtils.updatePortConsolidationData(mainST, "cm01_port_1", CM_01_PORT_TYPE,
620 null, null, null, null, null,
622 TestUtils.updatePortConsolidationData(mainST, "sm01_port_1", SM_01_PORT_TYPE,
623 null, null, null, null, null,
626 translationContext.setConsolidationData(consolidationData);
627 List<UnifiedCompositionMode> expectedUnifiedModes =
628 Collections.singletonList(UnifiedCompositionMode.CatalogInstance);
629 verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
633 public void testFalsePortConsolidationForOneDiffFixedIpsValue() throws IOException, URISyntaxException {
634 ConsolidationData consolidationData = new ConsolidationData();
635 String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
636 ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
637 ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/one_exCP_naming_diff",
641 .initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
643 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
644 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_1"));
645 TestUtils.updateComputeTemplateConsolidationData(
647 computeNodeTypeName, "server_ps01", null, null, null, null, null, null,
648 portTypeToIdList, consolidationData);
650 portTypeToIdList = new ArrayList<>();
651 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_2"));
652 TestUtils.updateComputeTemplateConsolidationData(
654 computeNodeTypeName, "server_ps02", null, null, null, null, null, null,
655 portTypeToIdList, consolidationData);
657 portTypeToIdList = new ArrayList<>();
658 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_3"));
659 TestUtils.updateComputeTemplateConsolidationData(
661 computeNodeTypeName, "server_ps03", null, null, null, null, null, null,
662 portTypeToIdList, consolidationData);
664 TestUtils.initPortConsolidationData(mainST, consolidationData);
665 TestUtils.updatePortConsolidationData(mainST, "cm01_port_1", CM_01_PORT_TYPE,
666 null, null, null, null, null,
669 translationContext.setConsolidationData(consolidationData);
670 List<UnifiedCompositionMode> expectedUnifiedModes =
671 Collections.singletonList(UnifiedCompositionMode.CatalogInstance);
672 verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
676 public void testFalsePortConsolidationForOneDiffExpcNaming() {
681 public void testFalsePortConsolidationForTwoPortsWithFixedIpsAndOneWithout() throws IOException, URISyntaxException {
682 ConsolidationData consolidationData = new ConsolidationData();
683 String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
684 ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
685 ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/one_port_without_fixed_ips",
689 .initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
691 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
692 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_1"));
693 TestUtils.updateComputeTemplateConsolidationData(
695 computeNodeTypeName, "server_ps01", null, null, null, null, null, null,
696 portTypeToIdList, consolidationData);
698 portTypeToIdList = new ArrayList<>();
699 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_2"));
700 TestUtils.updateComputeTemplateConsolidationData(
702 computeNodeTypeName, "server_ps02", null, null, null, null, null, null,
703 portTypeToIdList, consolidationData);
705 portTypeToIdList = new ArrayList<>();
706 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_3"));
707 TestUtils.updateComputeTemplateConsolidationData(
709 computeNodeTypeName, "server_ps03", null, null, null, null, null, null,
710 portTypeToIdList, consolidationData);
712 TestUtils.initPortConsolidationData(mainST, consolidationData);
713 TestUtils.updatePortConsolidationData(mainST, "cm01_port_1", CM_01_PORT_TYPE,
714 null, null, null, null, null,
717 translationContext.setConsolidationData(consolidationData);
718 List<UnifiedCompositionMode> expectedUnifiedModes =
719 Collections.singletonList(UnifiedCompositionMode.CatalogInstance);
720 verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
724 public void testFalsePortConsolidationForTwoPortsWithAddressPairsAndOneWithout()
725 throws IOException, URISyntaxException {
726 ConsolidationData consolidationData = new ConsolidationData();
727 String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
728 ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
729 ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/one_port_without_allowed_address_pairs",
733 .initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
735 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
736 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_1"));
737 TestUtils.updateComputeTemplateConsolidationData(
739 computeNodeTypeName, "server_ps01", null, null, null, null, null, null,
740 portTypeToIdList, consolidationData);
741 portTypeToIdList = new ArrayList<>();
742 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_2"));
743 TestUtils.updateComputeTemplateConsolidationData(
745 computeNodeTypeName, "server_ps02", null, null, null, null, null, null,
746 portTypeToIdList, consolidationData);
748 portTypeToIdList = new ArrayList<>();
749 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_3"));
750 TestUtils.updateComputeTemplateConsolidationData(
752 computeNodeTypeName, "server_ps03", null, null, null, null, null, null,
753 portTypeToIdList, consolidationData);
755 TestUtils.initPortConsolidationData(mainST, consolidationData);
756 TestUtils.updatePortConsolidationData(mainST, "cm01_port_1", CM_01_PORT_TYPE,
757 null, null, null, null, null,
760 translationContext.setConsolidationData(consolidationData);
761 List<UnifiedCompositionMode> expectedUnifiedModes =
762 Collections.singletonList(UnifiedCompositionMode.CatalogInstance);
763 verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
767 public void testFalsePortConsolidationForTwoPortsWithMacAddressAndOneWithout()
768 throws IOException, URISyntaxException {
769 ConsolidationData consolidationData = new ConsolidationData();
770 String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
771 ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
772 ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/one_port_without_mac_address",
776 .initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
778 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
779 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_1"));
780 TestUtils.updateComputeTemplateConsolidationData(
782 computeNodeTypeName, "server_ps01", null, null, null, null, null, null,
783 portTypeToIdList, consolidationData);
785 portTypeToIdList = new ArrayList<>();
786 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_2"));
787 TestUtils.updateComputeTemplateConsolidationData(
789 computeNodeTypeName, "server_ps02", null, null, null, null, null, null,
790 portTypeToIdList, consolidationData);
791 portTypeToIdList = new ArrayList<>();
792 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_3"));
793 TestUtils.updateComputeTemplateConsolidationData(
795 computeNodeTypeName, "server_ps03", null, null, null, null, null, null,
796 portTypeToIdList, consolidationData);
798 TestUtils.initPortConsolidationData(mainST, consolidationData);
799 TestUtils.updatePortConsolidationData(mainST, "cm01_port_1", CM_01_PORT_TYPE,
800 null, null, null, null, null,
803 translationContext.setConsolidationData(consolidationData);
804 List<UnifiedCompositionMode> expectedUnifiedModes =
805 Collections.singletonList(UnifiedCompositionMode.CatalogInstance);
806 verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
810 public void testValidPortConsolidationForPortsWithNoneOfTheCheckedProperties()
811 throws IOException, URISyntaxException {
812 ConsolidationData consolidationData = new ConsolidationData();
813 String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
814 ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
815 ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/ports_with_none_of_the_properties",
819 .initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
821 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
822 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_1"));
823 TestUtils.updateComputeTemplateConsolidationData(
825 computeNodeTypeName, "server_ps01", null, null, null, null, null, null,
826 portTypeToIdList, consolidationData);
828 portTypeToIdList = new ArrayList<>();
829 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_2"));
830 TestUtils.updateComputeTemplateConsolidationData(
832 computeNodeTypeName, "server_ps02", null, null, null, null, null, null,
833 portTypeToIdList, consolidationData);
835 portTypeToIdList = new ArrayList<>();
836 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_3"));
837 TestUtils.updateComputeTemplateConsolidationData(
839 computeNodeTypeName, "server_ps03", null, null, null, null, null, null,
840 portTypeToIdList, consolidationData);
842 TestUtils.initPortConsolidationData(mainST, consolidationData);
843 TestUtils.updatePortConsolidationData(mainST, "cm01_port_1", CM_01_PORT_TYPE,
844 Collections.singletonList("node_in_1"), Collections.singletonList("net_id_1"),
845 Collections.singletonList("group_id_1"), null,
848 TestUtils.updatePortConsolidationData(mainST, "cm01_port_2", CM_01_PORT_TYPE,
849 Collections.singletonList("node_in_1"), Collections.singletonList("net_id_1"),
850 Collections.singletonList("group_id_1"), null,
853 TestUtils.updatePortConsolidationData(mainST, "cm01_port_3", CM_01_PORT_TYPE,
854 Collections.singletonList("node_in_1"), Collections.singletonList("net_id_1"),
855 Collections.singletonList("group_id_1"), null,
859 translationContext.setConsolidationData(consolidationData);
860 List<UnifiedCompositionMode> expectedUnifiedModes =
861 Collections.singletonList(UnifiedCompositionMode.ScalingInstances);
862 verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
866 public void testComputeRelationsSimilarBetweenComputeNodes() throws IOException, URISyntaxException {
867 ConsolidationData consolidationData = new ConsolidationData();
868 String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
869 ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
870 ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/three_compute_with_same_relations",
874 .initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
876 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
877 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_1"));
878 TestUtils.updateComputeTemplateConsolidationData(
880 computeNodeTypeName, "server_ps01", Collections.singletonList("cm01_port_1"),
881 Collections.singletonList("cmaui_volume"), Collections.singletonList("cmaui_volume"),
882 Collections.singletonList("group_id1"),
887 portTypeToIdList = new ArrayList<>();
888 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_2"));
889 TestUtils.updateComputeTemplateConsolidationData(
891 computeNodeTypeName, "server_ps02", Collections.singletonList("cm01_port_1"),
892 Collections.singletonList("cmaui_volume"), Collections.singletonList("cmaui_volume"),
893 Collections.singletonList("group_id1"),
898 portTypeToIdList = new ArrayList<>();
899 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_3"));
900 TestUtils.updateComputeTemplateConsolidationData(
902 computeNodeTypeName, "server_ps03", Collections.singletonList("cm01_port_1"),
903 Collections.singletonList("cmaui_volume"),
904 Collections.singletonList("cmaui_volume"), Collections.singletonList("group_id1"), null,
909 TestUtils.initPortConsolidationData(mainST, consolidationData);
910 TestUtils.updatePortConsolidationData(mainST, "cm01_port_1", CM_01_PORT_TYPE,
911 Collections.singletonList("node_in_1"), Collections.singletonList("net_id_1"),
912 Collections.singletonList("group_id_1"), null,
915 TestUtils.updatePortConsolidationData(mainST, "cm01_port_2", CM_01_PORT_TYPE,
916 Collections.singletonList("node_in_1"), Collections.singletonList("net_id_1"),
917 Collections.singletonList("group_id_1"), null,
920 TestUtils.updatePortConsolidationData(mainST, "cm01_port_3", CM_01_PORT_TYPE,
921 Collections.singletonList("node_in_1"), Collections.singletonList("net_id_1"),
922 Collections.singletonList("group_id_1"), null,
927 translationContext.setConsolidationData(consolidationData);
928 List<UnifiedCompositionMode> expectedUnifiedModes =
929 Collections.singletonList(UnifiedCompositionMode.ScalingInstances);
930 verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
934 public void testNodesInRelationsDiffBetweenThreeComputes() throws IOException, URISyntaxException {
935 ConsolidationData consolidationData = new ConsolidationData();
936 String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
937 ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
938 ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/three_ports_similar_relations",
942 .initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
944 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
945 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_1"));
946 TestUtils.updateComputeTemplateConsolidationData(
948 computeNodeTypeName, "server_ps01", Collections.singletonList("cm01_port_1"),
949 Collections.singletonList
950 ("cmaui_volume"), Collections.singletonList("cmaui_volume"),
951 Collections.singletonList("group_id1"), null, null,
955 portTypeToIdList = new ArrayList<>();
956 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_2"));
957 TestUtils.updateComputeTemplateConsolidationData(
959 computeNodeTypeName, "server_ps02", Collections.singletonList("cm01_port_1"),
960 Collections.singletonList("cmaui_volume"), Collections.singletonList("cmaui_volume"),
961 Collections.singletonList("group_id1"),
966 portTypeToIdList = new ArrayList<>();
967 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_3"));
968 TestUtils.updateComputeTemplateConsolidationData(
970 computeNodeTypeName, "server_ps03", Collections.singletonList("cm01_port_2"),
971 Collections.singletonList
972 ("cmaui_volume"), Collections.singletonList("cmaui_volume"),
973 Collections.singletonList("group_id1"), null, null,
977 TestUtils.initPortConsolidationData(mainST, consolidationData);
978 TestUtils.updatePortConsolidationData(mainST, "cm01_port_1", CM_01_PORT_TYPE, null, null, null, null, null,
982 translationContext.setConsolidationData(consolidationData);
983 List<UnifiedCompositionMode> expectedUnifiedModes =
984 Collections.singletonList(UnifiedCompositionMode.ScalingInstances);
985 verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
989 public void testNodesOutRelationsDiffBetweenThreeComputes() throws IOException, URISyntaxException {
990 ConsolidationData consolidationData = new ConsolidationData();
991 String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
992 ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
993 ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/three_ports_similar_relations",
997 .initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
999 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
1000 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_1"));
1001 TestUtils.updateComputeTemplateConsolidationData(
1003 computeNodeTypeName, "server_ps01", Collections.singletonList("cm01_port_1"),
1004 Collections.singletonList
1005 ("cmaui_volume"), Collections.singletonList("cmaui_volume"),
1006 Collections.singletonList("group_id1"), null, null,
1010 portTypeToIdList = new ArrayList<>();
1011 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_2"));
1012 TestUtils.updateComputeTemplateConsolidationData(
1014 computeNodeTypeName, "server_ps02", Collections.singletonList("cm01_port_1"),
1015 Collections.singletonList("cmaui_volume"), Collections.singletonList("cmaui_volume"),
1016 Collections.singletonList("group_id1"),
1021 portTypeToIdList = new ArrayList<>();
1022 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_3"));
1023 TestUtils.updateComputeTemplateConsolidationData(
1025 computeNodeTypeName, "server_ps03", Collections.singletonList("cm01_port_1"),
1026 Collections.singletonList("cmaui_volume_1"), Collections.singletonList("cmaui_volume"),
1027 Collections.singletonList("group_id1"),
1032 TestUtils.initPortConsolidationData(mainST, consolidationData);
1033 TestUtils.updatePortConsolidationData(mainST, "cm01_port_1", CM_01_PORT_TYPE, null, null, null, null, null,
1037 translationContext.setConsolidationData(consolidationData);
1038 List<UnifiedCompositionMode> expectedUnifiedModes =
1039 Collections.singletonList(UnifiedCompositionMode.CatalogInstance);
1040 verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
1044 public void testVolumeRelationsDiffBetweenThreeComputes() throws IOException, URISyntaxException {
1045 ConsolidationData consolidationData = new ConsolidationData();
1046 String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
1047 ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
1048 ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/three_compute_valid",
1052 .initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
1054 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
1055 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_1"));
1056 TestUtils.updateComputeTemplateConsolidationData(
1058 computeNodeTypeName, "server_ps01", Collections.singletonList("cm01_port_1"),
1059 Collections.singletonList
1060 ("cmaui_volume"), Collections.singletonList("cmaui_volume"),
1061 Collections.singletonList("group_id1"), null, null,
1065 portTypeToIdList = new ArrayList<>();
1066 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_2"));
1067 TestUtils.updateComputeTemplateConsolidationData(
1069 computeNodeTypeName, "server_ps02", Collections.singletonList("cm01_port_1"),
1070 Collections.singletonList("cmaui_volume"), Collections.singletonList("cmaui_volume"),
1071 Collections.singletonList("group_id1"),
1076 portTypeToIdList = new ArrayList<>();
1077 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_3"));
1078 TestUtils.updateComputeTemplateConsolidationData(
1080 computeNodeTypeName, "server_ps03", Collections.singletonList("cm01_port_1"),
1081 Collections.singletonList("cmaui_volume"), Collections.singletonList("cmaui_volume_1"),
1082 Collections.singletonList("group_id1"),
1087 TestUtils.initPortConsolidationData(mainST, consolidationData);
1088 TestUtils.updatePortConsolidationData(mainST, "cm01_port_1", CM_01_PORT_TYPE, null, null, null, null, null,
1092 translationContext.setConsolidationData(consolidationData);
1093 List<UnifiedCompositionMode> expectedUnifiedModes =
1094 Collections.singletonList(UnifiedCompositionMode.CatalogInstance);
1095 verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
1099 public void testGroupRelationsDiffBetweenThreeComputes() throws IOException, URISyntaxException {
1100 ConsolidationData consolidationData = new ConsolidationData();
1101 String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
1102 ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
1103 ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/three_compute_valid",
1107 .initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
1109 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
1110 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_1"));
1111 TestUtils.updateComputeTemplateConsolidationData(
1113 computeNodeTypeName, "server_ps01", Collections.singletonList("cm01_port_1"),
1114 Collections.singletonList
1115 ("cmaui_volume"), Collections.singletonList("cmaui_volume"),
1116 Collections.singletonList("group_id_1"), null,
1121 portTypeToIdList = new ArrayList<>();
1122 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_2"));
1123 TestUtils.updateComputeTemplateConsolidationData(
1125 computeNodeTypeName, "server_ps02", Collections.singletonList("cm01_port_1"),
1126 Collections.singletonList("cmaui_volume"), Collections.singletonList("cmaui_volume"),
1127 Collections.singletonList("group_id_1"),
1132 portTypeToIdList = new ArrayList<>();
1133 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_3"));
1134 TestUtils.updateComputeTemplateConsolidationData(
1136 computeNodeTypeName, "server_ps03", Collections.singletonList("cm01_port_1"),
1137 Collections.singletonList("cmaui_volume"), Collections.singletonList("cmaui_volume"),
1138 Collections.singletonList("group_id_2"),
1143 TestUtils.initPortConsolidationData(mainST, consolidationData);
1144 TestUtils.updatePortConsolidationData(mainST, "cm01_port_1", CM_01_PORT_TYPE, null, null, null, null, null,
1148 translationContext.setConsolidationData(consolidationData);
1149 List<UnifiedCompositionMode> expectedUnifiedModes =
1150 Collections.singletonList(UnifiedCompositionMode.CatalogInstance);
1151 verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
1155 public void testPortConsolidationDataRelationsSimilar() throws IOException, URISyntaxException {
1156 ConsolidationData consolidationData = new ConsolidationData();
1157 String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
1158 ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
1159 ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/three_ports_similar_relations",
1163 .initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
1165 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
1166 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_1"));
1167 TestUtils.updateComputeTemplateConsolidationData(
1169 computeNodeTypeName, "server_ps01", Collections.singletonList("cm01_port_1"),
1170 Collections.singletonList
1171 ("cmaui_volume"), Collections.singletonList("cmaui_volume"),
1172 Collections.singletonList("group_id_1"), null,
1177 portTypeToIdList = new ArrayList<>();
1178 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_2"));
1179 TestUtils.updateComputeTemplateConsolidationData(
1181 computeNodeTypeName, "server_ps02", Collections.singletonList("cm01_port_1"),
1182 Collections.singletonList("cmaui_volume"), Collections.singletonList("cmaui_volume"),
1183 Collections.singletonList("group_id_1"),
1188 portTypeToIdList = new ArrayList<>();
1189 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_3"));
1190 TestUtils.updateComputeTemplateConsolidationData(
1192 computeNodeTypeName, "server_ps03", Collections.singletonList("cm01_port_1"),
1193 Collections.singletonList("cmaui_volume"), Collections.singletonList("cmaui_volume"),
1194 Collections.singletonList("group_id_1"),
1199 TestUtils.initPortConsolidationData(mainST, consolidationData);
1200 TestUtils.updatePortConsolidationData(mainST, "cm01_port_1", CM_01_PORT_TYPE,
1201 Collections.singletonList("node_in_1"), Collections.singletonList("net_id_1"),
1202 Collections.singletonList("group_id_1"), null,
1205 TestUtils.updatePortConsolidationData(mainST, "cm01_port_2", CM_01_PORT_TYPE,
1206 Collections.singletonList("node_in_1"), Collections.singletonList("net_id_1"),
1207 Collections.singletonList("group_id_1"), null,
1210 TestUtils.updatePortConsolidationData(mainST, "cm01_port_3", CM_01_PORT_TYPE,
1211 Collections.singletonList("node_in_1"), Collections.singletonList("net_id_1"),
1212 Collections.singletonList("group_id_1"), null,
1216 translationContext.setConsolidationData(consolidationData);
1217 List<UnifiedCompositionMode> expectedUnifiedModes =
1218 Collections.singletonList(UnifiedCompositionMode.ScalingInstances);
1219 verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
1223 public void testNodesInRelationsDiffBetweenThreePortConsolidationDatas() throws IOException, URISyntaxException {
1224 ConsolidationData consolidationData = new ConsolidationData();
1225 String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
1226 ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
1227 ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/three_ports_similar_relations",
1231 .initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
1233 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
1234 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_1"));
1235 TestUtils.updateComputeTemplateConsolidationData(
1237 computeNodeTypeName, "server_ps01", Collections.singletonList("cm01_port_1"),
1238 Collections.singletonList
1239 ("cmaui_volume"), Collections.singletonList("cmaui_volume"),
1240 Collections.singletonList("group_id_1"), null,
1245 portTypeToIdList = new ArrayList<>();
1246 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_2"));
1247 TestUtils.updateComputeTemplateConsolidationData(
1249 computeNodeTypeName, "server_ps02", Collections.singletonList("cm01_port_1"),
1250 Collections.singletonList("cmaui_volume"), Collections.singletonList("cmaui_volume"),
1251 Collections.singletonList("group_id_1"),
1256 portTypeToIdList = new ArrayList<>();
1257 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_3"));
1258 TestUtils.updateComputeTemplateConsolidationData(
1260 computeNodeTypeName, "server_ps03", Collections.singletonList("cm01_port_1"),
1261 Collections.singletonList("cmaui_volume"), Collections.singletonList("cmaui_volume"),
1262 Collections.singletonList("group_id_1"),
1267 TestUtils.initPortConsolidationData(mainST, consolidationData);
1268 TestUtils.updatePortConsolidationData(mainST, "cm01_port_1", CM_01_PORT_TYPE,
1269 Collections.singletonList("node_in_1"), Collections.singletonList("net_id_1"),
1270 Collections.singletonList("group_id_1"), null,
1273 TestUtils.updatePortConsolidationData(mainST, "cm01_port_2", CM_01_PORT_TYPE,
1274 Collections.singletonList("node_in_1"), Collections.singletonList("net_id_1"),
1275 Collections.singletonList("group_id_1"), null,
1278 TestUtils.updatePortConsolidationData(mainST, "cm01_port_3", CM_01_PORT_TYPE,
1279 Collections.singletonList("node_in_2"), Collections.singletonList("net_id_1"),
1280 Collections.singletonList("group_id_1"), null,
1284 translationContext.setConsolidationData(consolidationData);
1285 List<UnifiedCompositionMode> expectedUnifiedModes =
1286 Collections.singletonList(UnifiedCompositionMode.ScalingInstances);
1287 verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
1291 public void testNodesOutRelationsDiffBetweenThreePortConsolidationDatas() throws IOException, URISyntaxException {
1292 ConsolidationData consolidationData = new ConsolidationData();
1293 String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
1294 ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
1295 ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/three_ports_similar_relations",
1299 .initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
1301 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
1302 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_1"));
1303 TestUtils.updateComputeTemplateConsolidationData(
1305 computeNodeTypeName, "server_ps01", Collections.singletonList("cm01_port_1"),
1306 Collections.singletonList
1307 ("cmaui_volume"), Collections.singletonList("cmaui_volume"),
1308 Collections.singletonList("group_id_1"), null,
1313 portTypeToIdList = new ArrayList<>();
1314 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_2"));
1315 TestUtils.updateComputeTemplateConsolidationData(
1317 computeNodeTypeName, "server_ps02", Collections.singletonList("cm01_port_1"),
1318 Collections.singletonList("cmaui_volume"), Collections.singletonList("cmaui_volume"),
1319 Collections.singletonList("group_id_1"),
1324 portTypeToIdList = new ArrayList<>();
1325 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_3"));
1326 TestUtils.updateComputeTemplateConsolidationData(
1328 computeNodeTypeName, "server_ps03", Collections.singletonList("cm01_port_1"),
1329 Collections.singletonList("cmaui_volume"), Collections.singletonList("cmaui_volume"),
1330 Collections.singletonList("group_id_1"),
1335 TestUtils.initPortConsolidationData(mainST, consolidationData);
1336 TestUtils.updatePortConsolidationData(mainST, "cm01_port_1", CM_01_PORT_TYPE,
1337 Collections.singletonList("node_in_1"), Collections.singletonList("net_id_1"),
1338 Collections.singletonList("group_id_1"), null,
1341 TestUtils.updatePortConsolidationData(mainST, "cm01_port_2", CM_01_PORT_TYPE,
1342 Collections.singletonList("node_in_1"), Collections.singletonList("net_id_1"),
1343 Collections.singletonList("group_id_1"), null,
1346 TestUtils.updatePortConsolidationData(mainST, "cm01_port_3", CM_01_PORT_TYPE,
1347 Collections.singletonList("node_in_1"), Collections.singletonList("net_id_2"),
1348 Collections.singletonList("group_id_1"), null,
1352 translationContext.setConsolidationData(consolidationData);
1353 List<UnifiedCompositionMode> expectedUnifiedModes =
1354 Collections.singletonList(UnifiedCompositionMode.ScalingInstances);
1355 verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
1359 public void testGroupIdsRelationsDiffBetweenThreePortConsolidationDatas() throws IOException, URISyntaxException {
1360 ConsolidationData consolidationData = new ConsolidationData();
1361 String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
1362 ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
1363 ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/three_ports_similar_relations",
1367 .initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
1369 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
1370 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_1"));
1371 TestUtils.updateComputeTemplateConsolidationData(
1373 computeNodeTypeName, "server_ps01", Collections.singletonList("cm01_port_1"),
1374 Collections.singletonList
1375 ("cmaui_volume"), Collections.singletonList("cmaui_volume"),
1376 Collections.singletonList("group_id_1"), null,
1381 portTypeToIdList = new ArrayList<>();
1382 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_2"));
1383 TestUtils.updateComputeTemplateConsolidationData(
1385 computeNodeTypeName, "server_ps02", Collections.singletonList("cm01_port_1"),
1386 Collections.singletonList("cmaui_volume"), Collections.singletonList("cmaui_volume"),
1387 Collections.singletonList("group_id_1"),
1392 portTypeToIdList = new ArrayList<>();
1393 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_3"));
1394 TestUtils.updateComputeTemplateConsolidationData(
1396 computeNodeTypeName, "server_ps03", Collections.singletonList("cm01_port_1"),
1397 Collections.singletonList("cmaui_volume"), Collections.singletonList("cmaui_volume"),
1398 Collections.singletonList("group_id_1"),
1403 TestUtils.initPortConsolidationData(mainST, consolidationData);
1404 TestUtils.updatePortConsolidationData(mainST, "cm01_port_1", CM_01_PORT_TYPE,
1405 Collections.singletonList("node_in_1"), Collections.singletonList("net_id_1"),
1406 Arrays.asList("group_id_1", "group_id_2"), null, null,
1408 TestUtils.updatePortConsolidationData(mainST, "cm01_port_2", CM_01_PORT_TYPE,
1409 Collections.singletonList("node_in_1"), Collections.singletonList("net_id_1"),
1410 Arrays.asList("group_id_1", "group_id_2"), null, null,
1412 TestUtils.updatePortConsolidationData(mainST, "cm01_port_3", CM_01_PORT_TYPE,
1413 Collections.singletonList("node_in_1"), Collections.singletonList("net_id_1"),
1414 Arrays.asList("group_id_1", "group_id_3"), null, null,
1417 translationContext.setConsolidationData(consolidationData);
1418 List<UnifiedCompositionMode> expectedUnifiedModes =
1419 Collections.singletonList(UnifiedCompositionMode.CatalogInstance);
1420 verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
1424 public void testValidConsolidationForComputesWithValidGetAttr() throws IOException, URISyntaxException {
1425 ConsolidationData consolidationData = new ConsolidationData();
1426 String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
1427 ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
1428 ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/three_ports_similar_relations",
1432 .initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
1434 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
1435 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_1"));
1437 TestUtils.updateComputeTemplateConsolidationData(
1439 computeNodeTypeName, "server_ps01", Collections.singletonList("cm01_port_1"),
1440 Collections.singletonList
1441 ("cmaui_volume"), Collections.singletonList("cmaui_volume"),
1442 Collections.singletonList("group_id_1"),
1443 Collections.singletonList("node_1"), null,
1447 portTypeToIdList = new ArrayList<>();
1448 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_2"));
1449 TestUtils.updateComputeTemplateConsolidationData(
1451 computeNodeTypeName, "server_ps02", Collections.singletonList("cm01_port_1"),
1452 Collections.singletonList("cmaui_volume"), Collections.singletonList("cmaui_volume"),
1453 Collections.singletonList("group_id_1"),
1454 Collections.singletonList("node_2"), null,
1458 portTypeToIdList = new ArrayList<>();
1459 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_3"));
1460 TestUtils.updateComputeTemplateConsolidationData(
1462 computeNodeTypeName, "server_ps03", Collections.singletonList("cm01_port_1"),
1463 Collections.singletonList("cmaui_volume"), Collections.singletonList("cmaui_volume"),
1464 Collections.singletonList("group_id_1"),
1465 Collections.singletonList("node_3"), null,
1469 TestUtils.initPortConsolidationData(mainST, consolidationData);
1470 TestUtils.updatePortConsolidationData(mainST, "cm01_port_1", CM_01_PORT_TYPE,
1471 Collections.singletonList("node_in_1"), Collections.singletonList("net_id_1"),
1472 Arrays.asList("group_id_1", "group_id_2"), null, null,
1474 TestUtils.updatePortConsolidationData(mainST, "cm01_port_2", CM_01_PORT_TYPE,
1475 Collections.singletonList("node_in_1"), Collections.singletonList("net_id_1"),
1476 Arrays.asList("group_id_1", "group_id_2"), null, null,
1478 TestUtils.updatePortConsolidationData(mainST, "cm01_port_3", CM_01_PORT_TYPE,
1479 Collections.singletonList("node_in_1"), Collections.singletonList("net_id_1"),
1480 Arrays.asList("group_id_1", "group_id_2"), null, null,
1483 translationContext.setConsolidationData(consolidationData);
1484 List<UnifiedCompositionMode> expectedUnifiedModes =
1485 Collections.singletonList(UnifiedCompositionMode.ScalingInstances);
1486 verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
1490 public void testInvalidConsolidationForComputesWithGetAttrForEachOther() throws IOException, URISyntaxException {
1491 ConsolidationData consolidationData = new ConsolidationData();
1492 String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
1493 ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
1494 ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/three_ports_similar_relations",
1498 .initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
1500 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
1501 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_1"));
1503 TestUtils.updateComputeTemplateConsolidationData(
1505 computeNodeTypeName, "server_ps01", Collections.singletonList("cm01_port_1"),
1506 Collections.singletonList
1507 ("cmaui_volume"), Collections.singletonList("cmaui_volume"),
1508 Collections.singletonList("group_id_1"),
1509 Collections.singletonList("server_ps02"), null,
1513 portTypeToIdList = new ArrayList<>();
1514 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_2"));
1515 TestUtils.updateComputeTemplateConsolidationData(
1517 computeNodeTypeName, "server_ps02", Collections.singletonList("cm01_port_1"),
1518 Collections.singletonList("cmaui_volume"), Collections.singletonList("cmaui_volume"),
1519 Collections.singletonList("group_id_1"),
1520 Collections.singletonList("node_1"), null,
1524 portTypeToIdList = new ArrayList<>();
1525 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_3"));
1526 TestUtils.updateComputeTemplateConsolidationData(
1528 computeNodeTypeName, "server_ps03", Collections.singletonList("cm01_port_1"),
1529 Collections.singletonList("cmaui_volume"), Collections.singletonList("cmaui_volume"),
1530 Collections.singletonList("group_id_1"),
1531 Collections.singletonList("node_2"), null,
1535 TestUtils.initPortConsolidationData(mainST, consolidationData);
1536 TestUtils.updatePortConsolidationData(mainST, "cm01_port_1", CM_01_PORT_TYPE,
1537 Collections.singletonList("node_in_1"), Collections.singletonList("net_id_1"),
1538 Arrays.asList("group_id_1", "group_id_2"), null, null,
1540 TestUtils.updatePortConsolidationData(mainST, "cm01_port_2", CM_01_PORT_TYPE,
1541 Collections.singletonList("node_in_1"), Collections.singletonList("net_id_1"),
1542 Arrays.asList("group_id_1", "group_id_2"), null, null,
1544 TestUtils.updatePortConsolidationData(mainST, "cm01_port_3", CM_01_PORT_TYPE,
1545 Collections.singletonList("node_in_1"), Collections.singletonList("net_id_1"),
1546 Arrays.asList("group_id_1", "group_id_2"), null, null,
1549 translationContext.setConsolidationData(consolidationData);
1550 List<UnifiedCompositionMode> expectedUnifiedModes =
1551 Collections.singletonList(UnifiedCompositionMode.CatalogInstance);
1552 verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
1556 public void testValidConsolidationForPortsWithValidGetAttr() throws IOException, URISyntaxException {
1557 ConsolidationData consolidationData = new ConsolidationData();
1558 String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
1559 ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
1560 ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/three_ports_similar_relations",
1564 .initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
1566 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
1567 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_1"));
1569 TestUtils.updateComputeTemplateConsolidationData(
1571 computeNodeTypeName, "server_ps01", Collections.singletonList("cm01_port_1"),
1572 Collections.singletonList
1573 ("cmaui_volume"), Collections.singletonList("cmaui_volume"),
1574 Collections.singletonList("group_id_1"), null,
1579 portTypeToIdList = new ArrayList<>();
1580 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_2"));
1581 TestUtils.updateComputeTemplateConsolidationData(
1583 computeNodeTypeName, "server_ps02", Collections.singletonList("cm01_port_1"),
1584 Collections.singletonList("cmaui_volume"), Collections.singletonList("cmaui_volume"),
1585 Collections.singletonList("group_id_1"),
1590 portTypeToIdList = new ArrayList<>();
1591 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_3"));
1592 TestUtils.updateComputeTemplateConsolidationData(
1594 computeNodeTypeName, "server_ps03", Collections.singletonList("cm01_port_1"),
1595 Collections.singletonList("cmaui_volume"), Collections.singletonList("cmaui_volume"),
1596 Collections.singletonList("group_id_1"),
1601 TestUtils.initPortConsolidationData(mainST, consolidationData);
1602 List<String> portNodeTemplateIds =
1603 Arrays.asList("cm01_port_1", "cm01_port_2", "cm01_port_3");
1604 List<String> toUpdatePortTypeIds =
1605 Arrays.asList("cm01_port", "cm01_port", "cm01_port");
1606 List<List<String>> nodesConnectedInIds =
1607 Arrays.asList(Collections.singletonList("node_in_1"),
1608 Collections.singletonList("node_in_1"),
1609 Collections.singletonList("node_in_1"));
1610 List<List<String>> nodesConnectedOutIds =
1611 Arrays.asList(Collections.singletonList("node_out_1"),
1612 Collections.singletonList("node_out_1"),
1613 Collections.singletonList("node_out_1"));
1614 List<List<String>> getAttrInIds =
1615 Arrays.asList(Collections.singletonList("get_attr_1"),
1616 Collections.singletonList("get_attr_2"),
1617 Collections.singletonList("get_attr_3"));
1618 List<List<String>> groupIds =
1619 Arrays.asList(Arrays.asList("group_id_1", "group_id_2"),
1620 Arrays.asList("group_id_1", "group_id_2"), Arrays.asList("group_id_1", "group_id_2"));
1621 List<List<Pair<String, GetAttrFuncData>>> getAttrOut =
1622 Arrays.asList(null, null, null);
1624 TestUtils.updateMultiplePortConsolidationDatas(
1625 mainST, portNodeTemplateIds, toUpdatePortTypeIds, nodesConnectedInIds, nodesConnectedOutIds, groupIds,
1626 getAttrInIds, getAttrOut, consolidationData);
1628 translationContext.setConsolidationData(consolidationData);
1629 List<UnifiedCompositionMode> expectedUnifiedModes =
1630 Collections.singletonList(UnifiedCompositionMode.ScalingInstances);
1631 verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
1635 public void testInvalidConsolidationForPortsWithGetAttrInForEachOther() throws IOException, URISyntaxException {
1636 ConsolidationData consolidationData = new ConsolidationData();
1637 String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
1638 ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
1639 ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation" +
1640 "/three_ports_similar_relations",
1644 .initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
1646 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
1647 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_1"));
1649 TestUtils.updateComputeTemplateConsolidationData(
1651 computeNodeTypeName, "server_ps01", Collections.singletonList("cm01_port_1"),
1652 Collections.singletonList
1653 ("cmaui_volume"), Collections.singletonList("cmaui_volume"),
1654 Collections.singletonList("group_id_1"),
1655 Collections.singletonList("node_1"), null,
1659 portTypeToIdList = new ArrayList<>();
1660 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_2"));
1661 TestUtils.updateComputeTemplateConsolidationData(
1663 computeNodeTypeName, "server_ps02", Collections.singletonList("cm01_port_1"),
1664 Collections.singletonList("cmaui_volume"), Collections.singletonList("cmaui_volume"),
1665 Collections.singletonList("group_id_1"),
1666 Collections.singletonList("node_2"), null,
1670 portTypeToIdList = new ArrayList<>();
1671 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_3"));
1672 TestUtils.updateComputeTemplateConsolidationData(
1674 computeNodeTypeName, "server_ps03", Collections.singletonList("cm01_port_1"),
1675 Collections.singletonList("cmaui_volume"), Collections.singletonList("cmaui_volume"),
1676 Collections.singletonList("group_id_1"),
1677 Collections.singletonList("node_3"), null,
1681 TestUtils.initPortConsolidationData(mainST, consolidationData);
1682 List<String> portNodeTemplateIds =
1683 Arrays.asList("cm01_port_1", "cm01_port_2", "cm01_port_3");
1684 List<String> toUpdatePortTypeIds =
1685 Arrays.asList("cm01_port", "cm01_port", "cm01_port");
1686 List<List<String>> nodesConnectedInIds =
1687 Arrays.asList(Collections.singletonList("node_in_1"),
1688 Collections.singletonList("node_in_1"),
1689 Collections.singletonList("node_in_1"));
1690 List<List<String>> nodesConnectedOutIds =
1691 Arrays.asList(Collections.singletonList("node_out_1"),
1692 Collections.singletonList("node_out_1"),
1693 Collections.singletonList("node_out_1"));
1694 List<List<String>> getAttrInIds =
1695 Arrays.asList(Collections.singletonList("get_attr_1"),
1696 Collections.singletonList("get_attr_2"),
1697 Collections.singletonList("cm01_port_1"));
1698 List<List<String>> groupIds =
1699 Arrays.asList(Arrays.asList("group_id_1", "group_id_2"),
1700 Arrays.asList("group_id_1", "group_id_2"), Arrays.asList("group_id_1", "group_id_2"));
1701 List<List<Pair<String, GetAttrFuncData>>> getAttrOut =
1702 Arrays.asList(null, null, null);
1704 TestUtils.updateMultiplePortConsolidationDatas(
1705 mainST, portNodeTemplateIds, toUpdatePortTypeIds, nodesConnectedInIds, nodesConnectedOutIds, groupIds,
1706 getAttrInIds, getAttrOut, consolidationData);
1708 translationContext.setConsolidationData(consolidationData);
1709 List<UnifiedCompositionMode> expectedUnifiedModes =
1710 Collections.singletonList(UnifiedCompositionMode.CatalogInstance);
1711 verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
1715 public void testValidConsolidationForComputesWithSamePortTypesPointingByGetAttrIn() throws
1716 IOException, URISyntaxException {
1717 ConsolidationData consolidationData = new ConsolidationData();
1718 String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
1719 ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
1720 ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/three_ports_similar_relations",
1724 .initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
1726 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
1727 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_1"));
1729 TestUtils.updateComputeTemplateConsolidationData(
1731 computeNodeTypeName, "server_ps01", Collections.singletonList("cm01_port_1"),
1732 Collections.singletonList
1733 ("cmaui_volume"), Collections.singletonList("cmaui_volume"),
1734 Collections.singletonList("group_id_1"),
1735 Collections.singletonList("cm01_port_1"), null,
1739 portTypeToIdList = new ArrayList<>();
1740 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_2"));
1741 TestUtils.updateComputeTemplateConsolidationData(
1743 computeNodeTypeName, "server_ps02", Collections.singletonList("cm01_port_1"),
1744 Collections.singletonList("cmaui_volume"), Collections.singletonList("cmaui_volume"),
1745 Collections.singletonList("group_id_1"),
1746 Collections.singletonList("cm01_port_2"), null,
1750 portTypeToIdList = new ArrayList<>();
1751 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_3"));
1752 TestUtils.updateComputeTemplateConsolidationData(
1754 computeNodeTypeName, "server_ps03", Collections.singletonList("cm01_port_1"),
1755 Collections.singletonList("cmaui_volume"), Collections.singletonList("cmaui_volume"),
1756 Collections.singletonList("group_id_1"),
1757 Collections.singletonList("cm01_port_3"), null,
1761 TestUtils.initPortConsolidationData(mainST, consolidationData);
1762 List<String> portNodeTemplateIds =
1763 Arrays.asList("cm01_port_1", "cm01_port_2", "cm01_port_3");
1764 List<String> toUpdatePortTypeIds =
1765 Arrays.asList("cm01_port", "cm01_port", "cm01_port");
1766 List<List<String>> nodesConnectedInIds =
1767 Arrays.asList(Collections.singletonList("node_in_1"),
1768 Collections.singletonList("node_in_1"),
1769 Collections.singletonList("node_in_1"));
1770 List<List<String>> nodesConnectedOutIds =
1771 Arrays.asList(Collections.singletonList("node_out_1"),
1772 Collections.singletonList("node_out_1"),
1773 Collections.singletonList("node_out_1"));
1774 List<List<String>> getAttrInIds =
1775 Arrays.asList(Collections.singletonList("get_attr_1"),
1776 Collections.singletonList("get_attr_2"),
1777 Collections.singletonList("get_attr_3"));
1778 List<List<String>> groupIds =
1779 Arrays.asList(Arrays.asList("group_id_1", "group_id_2"),
1780 Arrays.asList("group_id_1", "group_id_2"), Arrays.asList("group_id_1", "group_id_2"));
1781 List<List<Pair<String, GetAttrFuncData>>> getAttrOut =
1782 Arrays.asList(null, null, null);
1784 TestUtils.updateMultiplePortConsolidationDatas(
1785 mainST, portNodeTemplateIds, toUpdatePortTypeIds, nodesConnectedInIds, nodesConnectedOutIds, groupIds,
1786 getAttrInIds, getAttrOut, consolidationData);
1788 translationContext.setConsolidationData(consolidationData);
1789 List<UnifiedCompositionMode> expectedUnifiedModes =
1790 Collections.singletonList(UnifiedCompositionMode.ScalingInstances);
1791 verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
1795 public void testValidGetAttrOutFromComputes() throws IOException, URISyntaxException {
1796 ConsolidationData consolidationData = new ConsolidationData();
1797 String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
1798 ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
1799 ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/three_ports_similar_relations",
1803 .initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
1805 GetAttrFuncData getAttrFuncData = new GetAttrFuncData("name", "c1_name");
1806 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
1807 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_1"));
1808 TestUtils.updateComputeTemplateConsolidationData(
1810 computeNodeTypeName, "server_ps01", Collections.singletonList("cm01_port_1"),
1811 Collections.singletonList
1812 ("cmaui_volume"), Collections.singletonList("cmaui_volume"),
1813 Collections.singletonList("group_id_1"),
1814 Collections.singletonList("cm01_port_1"),
1815 Collections.singletonList(
1816 new ImmutablePair<>("cm01_port_1", getAttrFuncData)),
1820 portTypeToIdList = new ArrayList<>();
1821 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_2"));
1822 TestUtils.updateComputeTemplateConsolidationData(
1824 computeNodeTypeName, "server_ps02", Collections.singletonList("cm01_port_1"),
1825 Collections.singletonList("cmaui_volume"), Collections.singletonList("cmaui_volume"),
1826 Collections.singletonList("group_id_1"),
1827 Collections.singletonList("cm01_port_1"),
1828 Collections.singletonList(
1829 new ImmutablePair<>("cm01_port_1", getAttrFuncData)),
1833 portTypeToIdList = new ArrayList<>();
1834 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_3"));
1835 TestUtils.updateComputeTemplateConsolidationData(
1837 computeNodeTypeName, "server_ps03", Collections.singletonList("cm01_port_1"),
1838 Collections.singletonList("cmaui_volume"), Collections.singletonList("cmaui_volume"),
1839 Collections.singletonList("group_id_1"),
1840 Collections.singletonList("cm01_port_1"),
1841 Collections.singletonList(
1842 new ImmutablePair<>("cm01_port_1", getAttrFuncData)),
1846 TestUtils.initPortConsolidationData(mainST, consolidationData);
1847 TestUtils.updatePortConsolidationData(mainST, "cm01_port_1", CM_01_PORT_TYPE,
1848 Collections.singletonList("node_in_1"), Collections.singletonList("net_id_1"),
1849 Arrays.asList("group_id_1", "group_id_2"),
1850 Collections.singletonList("sm01_port_2"), null,
1852 TestUtils.updatePortConsolidationData(mainST, "cm01_port_2", CM_01_PORT_TYPE,
1853 Collections.singletonList("node_in_1"), Collections.singletonList("net_id_1"),
1854 Arrays.asList("group_id_1", "group_id_2"),
1855 Collections.singletonList("sm01_port_1"), null,
1857 TestUtils.updatePortConsolidationData(mainST, "cm01_port_3", CM_01_PORT_TYPE,
1858 Collections.singletonList("node_in_1"), Collections.singletonList("net_id_1"),
1859 Arrays.asList("group_id_1", "group_id_2"),
1860 Collections.singletonList("rm01_port_1"), null,
1863 translationContext.setConsolidationData(consolidationData);
1864 List<UnifiedCompositionMode> expectedUnifiedModes =
1865 Collections.singletonList(UnifiedCompositionMode.ScalingInstances);
1866 verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
1870 public void testInValidGetAttrOutFromComputesPortTypeDifferent() throws IOException, URISyntaxException {
1871 ConsolidationData consolidationData = new ConsolidationData();
1872 String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
1873 ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
1874 ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/three_ports_similar_relations",
1878 .initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
1880 GetAttrFuncData getAttrFuncData = new GetAttrFuncData("name", "c1_name");
1881 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
1882 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_1"));
1883 portTypeToIdList.add(new ImmutablePair<>(SM_01_PORT_TYPE, "sm01_port_1"));
1884 TestUtils.updateComputeTemplateConsolidationData(
1886 computeNodeTypeName, "server_ps01", Collections.singletonList("cm01_port_1"),
1887 Collections.singletonList
1888 ("cmaui_volume"), Collections.singletonList("cmaui_volume"),
1889 Collections.singletonList("group_id_1"),
1890 Collections.singletonList("cm01_port_1"),
1891 Collections.singletonList(
1892 new ImmutablePair<>("cm01_port_1", getAttrFuncData)),
1896 portTypeToIdList = new ArrayList<>();
1897 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_2"));
1898 portTypeToIdList.add(new ImmutablePair<>(SM_01_PORT_TYPE, "sm01_port_2"));
1899 TestUtils.updateComputeTemplateConsolidationData(
1901 computeNodeTypeName, "server_ps02", Collections.singletonList("cm01_port_1"),
1902 Collections.singletonList("cmaui_volume"), Collections.singletonList("cmaui_volume"),
1903 Collections.singletonList("group_id_1"),
1904 Collections.singletonList("cm01_port_1"),
1905 Collections.singletonList(
1906 new ImmutablePair<>("cm01_port_1", getAttrFuncData)),
1910 portTypeToIdList = new ArrayList<>();
1911 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_3"));
1912 portTypeToIdList.add(new ImmutablePair<>(SM_01_PORT_TYPE, "sm01_port_3"));
1913 TestUtils.updateComputeTemplateConsolidationData(
1915 computeNodeTypeName, "server_ps03", Collections.singletonList("cm01_port_1"),
1916 Collections.singletonList("cmaui_volume"), Collections.singletonList("cmaui_volume"),
1917 Collections.singletonList("group_id_1"),
1918 Collections.singletonList("cm01_port_1"),
1919 Collections.singletonList(
1920 new ImmutablePair<>("sm01_port_1", getAttrFuncData)),
1924 TestUtils.initPortConsolidationData(mainST, consolidationData);
1926 List<String> portNodeTemplateIds =
1927 Arrays.asList("cm01_port_1", "cm01_port_2", "cm01_port_3", "sm01_port_1",
1930 List<String> toUpdatePortTypeIds =
1931 Arrays.asList("cm01_port", "cm01_port", "cm01_port", "sm01_port", "sm01_port", "sm01_port");
1932 List<List<String>> nodesConnectedInIds =
1933 Arrays.asList(Collections.singletonList("node_in_1"),
1934 Collections.singletonList("node_in_1"), Collections.singletonList
1935 ("node_in_1"), Collections.singletonList("node_in_1"),
1936 Collections.singletonList("node_in_1"),
1937 Collections.singletonList("node_in_1"));
1938 List<List<String>> nodesConnectedOutIds =
1939 Arrays.asList(Collections.singletonList("node_out_1"),
1940 Collections.singletonList("node_out_1"), Collections.singletonList
1941 ("node_out_1"), Collections.singletonList("node_out_1"),
1942 Collections.singletonList("node_out_1"),
1943 Collections.singletonList("node_out_1"));
1944 List<List<String>> getAttrInIds =
1945 Arrays.asList(Collections.singletonList("get_attr_1"),
1946 Collections.singletonList("get_attr_2"), Collections.singletonList
1947 ("get_attr_3"), Collections.singletonList("get_attr_1"),
1948 Collections.singletonList("get_attr_2"),
1949 Collections.singletonList("get_attr_3"));
1950 List<List<String>> groupIds =
1951 Arrays.asList(Arrays.asList("group_id_1", "group_id_2"),
1952 Arrays.asList("group_id_1",
1953 "group_id_2"), Arrays.asList("group_id_1", "group_id_2"),
1954 Arrays.asList("group_id_1", "group_id_2"),
1955 Arrays.asList("group_id_1",
1956 "group_id_2"), Arrays.asList("group_id_1", "group_id_2"));
1957 List<List<Pair<String, GetAttrFuncData>>> getAttrOut =
1958 Arrays.asList(null, null, null, null,
1961 TestUtils.updateMultiplePortConsolidationDatas(mainST, portNodeTemplateIds, toUpdatePortTypeIds,
1962 nodesConnectedInIds, nodesConnectedOutIds, groupIds, getAttrInIds, getAttrOut,
1965 translationContext.setConsolidationData(consolidationData);
1966 List<UnifiedCompositionMode> expectedUnifiedModes =
1967 Collections.singletonList(UnifiedCompositionMode.SingleSubstitution);
1968 verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
1972 public void testValidGetAttrOutFromPorts() throws IOException, URISyntaxException {
1973 ConsolidationData consolidationData = new ConsolidationData();
1974 String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
1975 ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
1976 ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/three_ports_similar_relations",
1980 .initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
1982 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
1983 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_1"));
1984 portTypeToIdList.add(new ImmutablePair<>(SM_01_PORT_TYPE, "sm01_port_1"));
1985 TestUtils.updateComputeTemplateConsolidationData(
1987 computeNodeTypeName, "server_ps01", Collections.singletonList("cm01_port_1"),
1988 Collections.singletonList
1989 ("cmaui_volume"), Collections.singletonList("cmaui_volume"),
1990 Collections.singletonList("group_id_1"),
1991 Collections.singletonList("cm01_port_1"), null,
1995 portTypeToIdList = new ArrayList<>();
1996 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_2"));
1997 portTypeToIdList.add(new ImmutablePair<>(SM_01_PORT_TYPE, "sm01_port_2"));
1998 TestUtils.updateComputeTemplateConsolidationData(
2000 computeNodeTypeName, "server_ps02", Collections.singletonList("cm01_port_1"),
2001 Collections.singletonList("cmaui_volume"), Collections.singletonList("cmaui_volume"),
2002 Collections.singletonList("group_id_1"),
2003 Collections.singletonList("cm01_port_1"), null,
2007 portTypeToIdList = new ArrayList<>();
2008 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_3"));
2009 portTypeToIdList.add(new ImmutablePair<>(SM_01_PORT_TYPE, "sm01_port_3"));
2010 TestUtils.updateComputeTemplateConsolidationData(
2012 computeNodeTypeName, "server_ps03", Collections.singletonList("cm01_port_1"),
2013 Collections.singletonList("cmaui_volume"), Collections.singletonList("cmaui_volume"),
2014 Collections.singletonList("group_id_1"),
2015 Collections.singletonList("cm01_port_1"), null,
2019 TestUtils.initPortConsolidationData(mainST, consolidationData);
2021 GetAttrFuncData getAttrFuncData = new GetAttrFuncData("name", "s1_name");
2022 List<String> portNodeTemplateIds =
2023 Arrays.asList("cm01_port_1", "cm01_port_2", "cm01_port_3", "sm01_port_1",
2026 List<String> toUpdatePortTypeIds =
2027 Arrays.asList("cm01_port", "cm01_port", "cm01_port", "sm01_port", "sm01_port", "sm01_port");
2028 List<List<String>> nodesConnectedInIds =
2029 Arrays.asList(Collections.singletonList("node_in_1"),
2030 Collections.singletonList("node_in_1"), Collections.singletonList
2031 ("node_in_1"), Collections.singletonList("node_in_1"),
2032 Collections.singletonList("node_in_1"),
2033 Collections.singletonList("node_in_1"));
2034 List<List<String>> nodesConnectedOutIds =
2035 Arrays.asList(Collections.singletonList("node_out_1"),
2036 Collections.singletonList("node_out_1"), Collections.singletonList
2037 ("node_out_1"), Collections.singletonList("node_out_1"),
2038 Collections.singletonList("node_out_1"),
2039 Collections.singletonList("node_out_1"));
2040 List<List<String>> getAttrInIds =
2041 Arrays.asList(null, null, null, null, null, null);
2042 List<List<String>> groupIds =
2043 Arrays.asList(Arrays.asList("group_id_1", "group_id_2"),
2044 Arrays.asList("group_id_1",
2045 "group_id_2"), Arrays.asList("group_id_1", "group_id_2"),
2046 Arrays.asList("group_id_1", "group_id_2"),
2047 Arrays.asList("group_id_1",
2048 "group_id_2"), Arrays.asList("group_id_1", "group_id_2"));
2049 List<List<Pair<String, GetAttrFuncData>>> getAttrOut = Arrays.asList(
2050 Collections.singletonList(
2051 new ImmutablePair<>("sm01_port_1", getAttrFuncData)),
2052 Collections.singletonList(
2053 new ImmutablePair<>("sm01_port_2", getAttrFuncData)),
2054 Collections.singletonList(
2055 new ImmutablePair<>("sm01_port_3", getAttrFuncData)),
2056 Collections.singletonList(
2057 new ImmutablePair<>("cm01_port_1", getAttrFuncData)),
2058 Collections.singletonList(
2059 new ImmutablePair<>("cm01_port_2", getAttrFuncData)),
2060 Collections.singletonList(
2061 new ImmutablePair<>("cm01_port_3", getAttrFuncData)));
2063 TestUtils.updateMultiplePortConsolidationDatas(mainST, portNodeTemplateIds, toUpdatePortTypeIds,
2064 nodesConnectedInIds, nodesConnectedOutIds, groupIds, getAttrInIds, getAttrOut,
2067 translationContext.setConsolidationData(consolidationData);
2068 List<UnifiedCompositionMode> expectedUnifiedModes =
2069 Collections.singletonList(UnifiedCompositionMode.ScalingInstances);
2070 verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
2074 public void testInvalidGetAttrOutFromPorts() throws IOException, URISyntaxException {
2075 ConsolidationData consolidationData = new ConsolidationData();
2076 String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
2077 ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
2078 ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/three_ports_similar_relations",
2082 .initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
2084 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
2085 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_1"));
2086 portTypeToIdList.add(new ImmutablePair<>(SM_01_PORT_TYPE, "sm01_port_1"));
2087 TestUtils.updateComputeTemplateConsolidationData(
2089 computeNodeTypeName, "server_ps01", Collections.singletonList("cm01_port_1"),
2090 Collections.singletonList
2091 ("cmaui_volume"), Collections.singletonList("cmaui_volume"),
2092 Collections.singletonList("group_id_1"),
2093 Collections.singletonList("cm01_port_1"), null,
2097 portTypeToIdList = new ArrayList<>();
2098 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_2"));
2099 portTypeToIdList.add(new ImmutablePair<>(SM_01_PORT_TYPE, "sm01_port_2"));
2100 TestUtils.updateComputeTemplateConsolidationData(
2102 computeNodeTypeName, "server_ps02", Collections.singletonList("cm01_port_1"),
2103 Collections.singletonList("cmaui_volume"), Collections.singletonList("cmaui_volume"),
2104 Collections.singletonList("group_id_1"),
2105 Collections.singletonList("cm01_port_1"), null,
2109 portTypeToIdList = new ArrayList<>();
2110 portTypeToIdList.add(new ImmutablePair<>(CM_01_PORT_TYPE, "cm01_port_3"));
2111 portTypeToIdList.add(new ImmutablePair<>(SM_01_PORT_TYPE, "sm01_port_3"));
2112 TestUtils.updateComputeTemplateConsolidationData(
2114 computeNodeTypeName, "server_ps03", Collections.singletonList("cm01_port_1"),
2115 Collections.singletonList("cmaui_volume"), Collections.singletonList("cmaui_volume"),
2116 Collections.singletonList("group_id_1"),
2117 Collections.singletonList("cm01_port_1"), null,
2121 TestUtils.initPortConsolidationData(mainST, consolidationData);
2123 GetAttrFuncData getAttrFuncData = new GetAttrFuncData("name", "s1_name");
2124 List<String> portNodeTemplateIds =
2125 Arrays.asList("cm01_port_1", "cm01_port_2", "cm01_port_3", "sm01_port_1",
2128 List<String> toUpdatePortTypeIds =
2129 Arrays.asList("cm01_port", "cm01_port", "cm01_port", "sm01_port", "sm01_port", "sm01_port");
2130 List<List<String>> nodesConnectedInIds =
2131 Arrays.asList(Collections.singletonList("node_in_1"),
2132 Collections.singletonList("node_in_1"), Collections.singletonList
2133 ("node_in_1"), Collections.singletonList("node_in_1"),
2134 Collections.singletonList("node_in_1"),
2135 Collections.singletonList("node_in_1"));
2136 List<List<String>> nodesConnectedOutIds =
2137 Arrays.asList(Collections.singletonList("node_out_1"),
2138 Collections.singletonList("node_out_1"), Collections.singletonList
2139 ("node_out_1"), Collections.singletonList("node_out_1"),
2140 Collections.singletonList("node_out_1"),
2141 Collections.singletonList("node_out_1"));
2142 List<List<String>> getAttrInIds =
2143 Arrays.asList(null, null, null, null, null, null);
2144 List<List<String>> groupIds =
2145 Arrays.asList(Arrays.asList("group_id_1", "group_id_2"),
2146 Arrays.asList("group_id_1", "group_id_2"), Arrays.asList("group_id_1", "group_id_2"),
2147 Arrays.asList("group_id_1", "group_id_2"),
2148 Arrays.asList("group_id_1",
2149 "group_id_2"), Arrays.asList("group_id_1", "group_id_2"));
2150 List<List<Pair<String, GetAttrFuncData>>> getAttrOut = Arrays.asList(
2151 Collections.singletonList(
2152 new ImmutablePair<>("server_ps01", getAttrFuncData)),
2153 Collections.singletonList(
2154 new ImmutablePair<>("server_ps01", getAttrFuncData)),
2155 Collections.singletonList(
2156 new ImmutablePair<>("sm01_port_3", getAttrFuncData)),
2157 Collections.singletonList(
2158 new ImmutablePair<>("cm01_port_1", getAttrFuncData)),
2159 Collections.singletonList(
2160 new ImmutablePair<>("cm01_port_2", getAttrFuncData)),
2161 Collections.singletonList(
2162 new ImmutablePair<>("cm01_port_3", getAttrFuncData)));
2164 TestUtils.updateMultiplePortConsolidationDatas(mainST, portNodeTemplateIds, toUpdatePortTypeIds,
2165 nodesConnectedInIds, nodesConnectedOutIds, groupIds, getAttrInIds, getAttrOut,
2168 translationContext.setConsolidationData(consolidationData);
2169 List<UnifiedCompositionMode> expectedUnifiedModes =
2170 Collections.singletonList(UnifiedCompositionMode.SingleSubstitution);
2171 verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
2175 public void testSubstitutionConsolidationPreConditionTrue() throws IOException, URISyntaxException {
2176 translationContext = new TranslationContext();
2177 String mainSTName = "MainServiceTemplate.yaml";
2178 String nestedServiceTemplateName = "nested-pcm_v0.1ServiceTemplate.yaml";
2180 ConsolidationData consolidationData = new ConsolidationData();
2181 TestUtils.updateNestedConsolidationData(mainSTName, Collections.singletonList("server_pcm_001"),
2183 TestUtils.initComputeNodeTypeInConsolidationData(mainSTName,
2184 "org.openecomp.resource.vfc.nodes.heat" +
2185 ".pcm_server", consolidationData);
2186 TestUtils.initComputeNodeTemplateIdInConsolidationData(mainSTName,
2187 "org.openecomp.resource.vfc.nodes.heat.pcm_server", "server_pcm_001", consolidationData);
2188 TestUtils.initComputeNodeTypeInConsolidationData(nestedServiceTemplateName,
2189 "org.openecomp.resource.vfc.nodes.heat" +
2190 ".pcm_server", consolidationData);
2191 TestUtils.initComputeNodeTemplateIdInConsolidationData(nestedServiceTemplateName,
2192 "org.openecomp.resource.vfc.nodes" +
2193 ".heat.pcm_server", "pcm_server", consolidationData);
2195 translationContext.setConsolidationData(consolidationData);
2197 addMockServiceTemplateToContext(mainSTName, "Main");
2198 addMockServiceTemplateToContext(nestedServiceTemplateName, "nested-pcm_v0.1");
2200 verifySubstitutionServiceTemplateConsolidation
2201 (1, translationContext.getTranslatedServiceTemplates().get(mainSTName),
2202 translationContext.getTranslatedServiceTemplates().get(nestedServiceTemplateName),
2203 UnifiedCompositionMode.NestedSingleCompute);
2207 public void testSubstitutionConsolidationPreConditionFalseMoreThanOneComputeType()
2208 throws IOException, URISyntaxException {
2209 translationContext = new TranslationContext();
2210 String mainSTName = "MainServiceTemplate.yaml";
2211 String nestedServiceTemplateName = "nested-pcm_v0.1ServiceTemplate.yaml";
2213 ConsolidationData consolidationData = new ConsolidationData();
2214 TestUtils.updateNestedConsolidationData(mainSTName, Collections.singletonList("server_pcm_001"),
2216 TestUtils.initComputeNodeTypeInConsolidationData(mainSTName,
2217 "org.openecomp.resource.vfc.nodes.heat" +
2218 ".pcm_server", consolidationData);
2219 TestUtils.initComputeNodeTemplateIdInConsolidationData(mainSTName,
2220 "org.openecomp.resource.vfc.nodes" +
2221 ".heat.pcm_server", "server_pcm_001", consolidationData);
2222 TestUtils.initComputeNodeTypeInConsolidationData(nestedServiceTemplateName,
2223 "org.openecomp.resource.vfc.nodes.heat" +
2224 ".pcm_server", consolidationData);
2226 TestUtils.updateNestedConsolidationData(mainSTName, Collections.singletonList("server_oam_001"),
2228 TestUtils.initComputeNodeTypeInConsolidationData(mainSTName,
2229 "org.openecomp.resource.vfc.nodes.heat" +
2230 ".oam_server", consolidationData);
2231 TestUtils.initComputeNodeTemplateIdInConsolidationData(mainSTName,
2232 "org.openecomp.resource.vfc.nodes.heat.oam_server", "server_oam_001", consolidationData);
2233 TestUtils.initComputeNodeTypeInConsolidationData(nestedServiceTemplateName,
2234 "org.openecomp.resource.vfc.nodes.heat" +
2235 ".oam_server", consolidationData);
2237 translationContext.setConsolidationData(consolidationData);
2239 addMockServiceTemplateToContext(mainSTName, "Main");
2240 addMockServiceTemplateToContext(nestedServiceTemplateName, "nested-pcm_v0.1");
2242 verifySubstitutionServiceTemplateConsolidation
2243 (1, translationContext.getTranslatedServiceTemplates().get(mainSTName),
2244 translationContext.getTranslatedServiceTemplates().get
2245 (nestedServiceTemplateName), UnifiedCompositionMode.SingleSubstitution);
2249 public void testSubstitutionConsolidationPreConditionFalseMoreThanOneComputeOfSameType()
2250 throws IOException, URISyntaxException {
2251 translationContext = new TranslationContext();
2252 String mainSTName = "MainServiceTemplate.yaml";
2253 String nestedServiceTemplateName = "nested-pcm_v0.1ServiceTemplate.yaml";
2255 ConsolidationData consolidationData = new ConsolidationData();
2256 TestUtils.updateNestedConsolidationData(mainSTName, Collections.singletonList("server_pcm_001"),
2258 TestUtils.initComputeNodeTypeInConsolidationData(nestedServiceTemplateName,
2259 "org.openecomp.resource.vfc.nodes.heat" +
2260 ".pcm_server", consolidationData);
2261 TestUtils.initComputeNodeTypeInConsolidationData(mainSTName,
2262 "org.openecomp.resource.vfc.nodes.heat" +
2263 ".pcm_server", consolidationData);
2264 TestUtils.initComputeNodeTemplateIdInConsolidationData(nestedServiceTemplateName,
2265 "org.openecomp.resource.vfc.nodes" +
2266 ".heat.pcm_server", "pcm_server_1", consolidationData);
2269 .updateNestedConsolidationData(nestedServiceTemplateName,
2270 Collections.singletonList("server_pcm_002"),
2272 TestUtils.initComputeNodeTemplateIdInConsolidationData(nestedServiceTemplateName,
2273 "org.openecomp.resource.vfc.nodes" +
2274 ".heat.pcm_server", "pcm_server_2", consolidationData);
2276 translationContext.setConsolidationData(consolidationData);
2278 addMockServiceTemplateToContext(mainSTName, "Main");
2279 addMockServiceTemplateToContext(nestedServiceTemplateName, "nested-pcm_v0.1");
2281 Mockito.doNothing().when(consolidationService).serviceTemplateConsolidation
2282 (translationContext.getTranslatedServiceTemplates().get(nestedServiceTemplateName),
2283 translationContext);
2284 verifySubstitutionServiceTemplateConsolidation
2285 (1, translationContext.getTranslatedServiceTemplates().get(mainSTName),
2286 translationContext.getTranslatedServiceTemplates().get(nestedServiceTemplateName),
2287 UnifiedCompositionMode.SingleSubstitution);
2291 public void testSubstitutionConsolidationPreConditionFalseNestedInsideNested() {
2292 translationContext = new TranslationContext();
2293 String mainSTName = "MainServiceTemplate.yaml";
2294 String nestedServiceTemplateName = "nested-pcm_v0.1ServiceTemplate.yaml";
2296 ConsolidationData consolidationData = new ConsolidationData();
2297 TestUtils.updateNestedConsolidationData(mainSTName, Collections.singletonList("server_pcm_001"),
2299 TestUtils.initComputeNodeTypeInConsolidationData(mainSTName,
2300 "org.openecomp.resource.vfc.nodes.heat" +
2301 ".pcm_server", consolidationData);
2302 TestUtils.initComputeNodeTemplateIdInConsolidationData(mainSTName,
2303 "org.openecomp.resource.vfc.nodes.heat.pcm_server", "server_pcm_001", consolidationData);
2304 TestUtils.initComputeNodeTypeInConsolidationData(nestedServiceTemplateName,
2305 "org.openecomp.resource.vfc.nodes.heat" +
2306 ".pcm_server", consolidationData);
2307 TestUtils.initComputeNodeTemplateIdInConsolidationData(nestedServiceTemplateName,
2308 "org.openecomp.resource.vfc.nodes" +
2309 ".heat.pcm_server", "pcm_server", consolidationData);
2312 .updateNestedConsolidationData(nestedServiceTemplateName,
2313 Collections.singletonList("nested_resource"),
2316 translationContext.setConsolidationData(consolidationData);
2318 addMockServiceTemplateToContext(mainSTName, "Main");
2319 addMockServiceTemplateToContext(nestedServiceTemplateName, "nested-pcm_v0.1");
2321 verifySubstitutionServiceTemplateConsolidation
2322 (0, translationContext.getTranslatedServiceTemplates().get(mainSTName),
2323 translationContext.getTranslatedServiceTemplates().get(nestedServiceTemplateName),
2324 UnifiedCompositionMode.SingleSubstitution);
2328 public void testConsolidationPreConditionFalseDiffSubportTypes() throws IOException, URISyntaxException {
2329 translationContext = new TranslationContext();
2330 String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
2331 ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
2332 ("/mock/services/heattotosca/consolidation/translatedfiles/pre_condition/different_subinterface_types",
2335 ConsolidationData consolidationData = new ConsolidationData();
2336 generateComputeAndPortConsolidationData(computeNodeTypeName, consolidationData);
2339 .addPortSubInterface(
2340 new SubInterfaceConsolidationDataTestInfo(mainST, "cm01_port_1", "nested1.yaml", 2,
2341 "role_1", "interface_1", null, null, null, null, consolidationData));
2343 .addPortSubInterface(
2344 new SubInterfaceConsolidationDataTestInfo(mainST, "cm01_port_2", "nested2.yaml", 2,
2345 "role_2", "interface_2", null, null, null, null, consolidationData));
2346 testConsolidation(1, toscaServiceModel, consolidationData, Collections.singletonList(UnifiedCompositionMode.SingleSubstitution));
2349 private void generateComputeAndPortConsolidationData(String computeNodeTypeName,
2350 ConsolidationData consolidationData) {
2352 .initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
2354 updateComputeConsolidationData("server_ps01", computeNodeTypeName, CM_01_PORT_TYPE,
2355 "cm01_port_1", consolidationData);
2357 updateComputeConsolidationData("server_ps02", computeNodeTypeName, CM_01_PORT_TYPE,
2358 "cm01_port_2", consolidationData);
2360 TestUtils.initPortConsolidationData(mainST, consolidationData);
2361 TestUtils.updatePortConsolidationData(mainST, "cm01_port_1", CM_01_PORT_TYPE,
2362 null, null, null, null, null,
2364 TestUtils.updatePortConsolidationData(mainST, "cm01_port_2", CM_01_PORT_TYPE,
2365 null, null, null, null, null,
2370 public void testConsolidationPreConditionFalseDiffSubportNumber() throws IOException, URISyntaxException {
2371 translationContext = new TranslationContext();
2372 String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
2373 ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
2374 ("/mock/services/heattotosca/consolidation/translatedfiles/pre_condition/different_subinterface_types",
2377 ConsolidationData consolidationData = new ConsolidationData();
2378 generateComputeAndPortConsolidationData(computeNodeTypeName, consolidationData);
2381 .addPortSubInterface(
2382 new SubInterfaceConsolidationDataTestInfo(mainST, "cm01_port_1", "nested1.yaml", 2,
2383 "role_1", "interface_1", null, null, null, null, consolidationData));
2385 .addPortSubInterface(
2386 new SubInterfaceConsolidationDataTestInfo(mainST, "cm01_port_2", "nested1.yaml", 2,
2387 "role_2", "interface_2", null, null, null, null, consolidationData));
2389 .addPortSubInterface(
2390 new SubInterfaceConsolidationDataTestInfo(mainST, "cm01_port_2", "nested1.yaml", 2,
2391 "role_3", "interface_3", null, null, null, null, consolidationData));
2393 testConsolidation(1, toscaServiceModel,
2394 consolidationData, Collections.singletonList(UnifiedCompositionMode.SingleSubstitution));
2398 public void testConsolidationRuleFalseDifferentCountInResourceGroup() throws IOException, URISyntaxException {
2399 translationContext = new TranslationContext();
2400 String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
2401 ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
2402 ("/mock/services/heattotosca/consolidation/translatedfiles/pre_condition/different_subinterface_types",
2405 ConsolidationData consolidationData = new ConsolidationData();
2406 generateComputeAndPortConsolidationData(computeNodeTypeName, consolidationData);
2409 .addPortSubInterface(
2410 new SubInterfaceConsolidationDataTestInfo(mainST, "cm01_port_1", "nested1.yaml", 2,
2411 "role_1", "interface_1", null, null, null, null, consolidationData));
2413 .addPortSubInterface(
2414 new SubInterfaceConsolidationDataTestInfo(mainST, "cm01_port_2", "nested1.yaml", 3,
2415 "role_1", "interface_2", null, null, null, null, consolidationData));
2417 testConsolidation(1, toscaServiceModel,
2418 consolidationData, Collections.singletonList(UnifiedCompositionMode.CatalogInstance));
2422 public void testConsolidationRuleFalseDifferentNodesConnectedInToResourceGroup()
2423 throws IOException, URISyntaxException {
2424 translationContext = new TranslationContext();
2425 String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
2426 ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
2427 ("/mock/services/heattotosca/consolidation/translatedfiles/pre_condition/different_subinterface_types",
2430 ConsolidationData consolidationData = new ConsolidationData();
2431 generateComputeAndPortConsolidationData(computeNodeTypeName, consolidationData);
2434 .addPortSubInterface(
2435 new SubInterfaceConsolidationDataTestInfo(mainST, "cm01_port_1", "nested1.yaml", 2,
2436 "role_1", "interface_1", Collections.singletonList("node_1"), null, null, null,
2437 consolidationData));
2439 .addPortSubInterface(
2440 new SubInterfaceConsolidationDataTestInfo(mainST, "cm01_port_2", "nested1.yaml", 2,
2441 "role_1", "interface_2", Collections.singletonList("node_2"), null, null, null,
2442 consolidationData));
2444 testConsolidation(1, toscaServiceModel, consolidationData, Collections.singletonList(UnifiedCompositionMode.ScalingInstances));
2448 public void testConsolidationRuleFalseDifferentNodesConnectedOutFromResourceGroup()
2449 throws IOException, URISyntaxException {
2450 translationContext = new TranslationContext();
2451 String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
2452 ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
2453 ("/mock/services/heattotosca/consolidation/translatedfiles/pre_condition/different_subinterface_types",
2456 ConsolidationData consolidationData = new ConsolidationData();
2457 generateComputeAndPortConsolidationData(computeNodeTypeName, consolidationData);
2460 .addPortSubInterface(
2461 new SubInterfaceConsolidationDataTestInfo(mainST, "cm01_port_1", "nested1.yaml", 2,
2462 "role_1", "interface_1", null, Collections.singletonList("node_1"), null, null,
2463 consolidationData));
2465 .addPortSubInterface(
2466 new SubInterfaceConsolidationDataTestInfo(mainST, "cm01_port_2", "nested1.yaml", 2,
2467 "role_1", "interface_2", null, Collections.singletonList("node_2"), null, null,
2468 consolidationData));
2470 testConsolidation(1, toscaServiceModel, consolidationData, Collections.singletonList(UnifiedCompositionMode.ScalingInstances));
2474 public void testConsolidationRuleFalseGetAttrInBetweenSubInterfacesOfSameType()
2475 throws IOException, URISyntaxException {
2476 translationContext = new TranslationContext();
2477 String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
2478 ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
2479 ("/mock/services/heattotosca/consolidation/translatedfiles/pre_condition/different_subinterface_types",
2482 ConsolidationData consolidationData = new ConsolidationData();
2483 generateComputeAndPortConsolidationData(computeNodeTypeName, consolidationData);
2486 .addPortSubInterface(
2487 new SubInterfaceConsolidationDataTestInfo(mainST, "cm01_port_1", "nested1.yaml", 2,
2488 "role_1", "interface_1", null, null, Collections.singletonList("in_node_1"), null,
2489 consolidationData));
2491 .addPortSubInterface(
2492 new SubInterfaceConsolidationDataTestInfo(mainST, "cm01_port_2", "nested1.yaml", 2,
2493 "role_1", "interface_2", null, null, Collections.singletonList("interface_1"), null,
2494 consolidationData));
2496 testConsolidation(1, toscaServiceModel, consolidationData, Collections.singletonList(UnifiedCompositionMode.CatalogInstance));
2500 public void testConsolidationRuleFalseGetAttrOutBetweenSubInterfacesOfSameType()
2501 throws IOException, URISyntaxException {
2502 translationContext = new TranslationContext();
2503 String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
2504 ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
2505 ("/mock/services/heattotosca/consolidation/translatedfiles/pre_condition/different_subinterface_types",
2508 ConsolidationData consolidationData = new ConsolidationData();
2510 .initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
2512 updateComputeConsolidationData("server_ps01", computeNodeTypeName, CM_01_PORT_TYPE,
2513 "cm01_port_1", consolidationData);
2514 updateComputeConsolidationData("server_ps02", computeNodeTypeName, CM_01_PORT_TYPE,
2515 "cm01_port_2", consolidationData);
2517 GetAttrFuncData getAttrFuncData = new GetAttrFuncData("name", "c1_name");
2518 Pair<String, GetAttrFuncData> getAttrOutInvalid1 =
2519 new ImmutablePair<>("interface_1", getAttrFuncData);
2520 Pair<String, GetAttrFuncData> getAttrOutInvalid2 =
2521 new ImmutablePair<>("interface_2", getAttrFuncData);
2523 TestUtils.initPortConsolidationData(mainST, consolidationData);
2524 TestUtils.updatePortConsolidationData(mainST, "cm01_port_1", CM_01_PORT_TYPE,
2525 null, null, null, null, null,
2527 TestUtils.updatePortConsolidationData(mainST, "cm01_port_2", CM_01_PORT_TYPE,
2528 null, null, null, null, null,
2532 .addPortSubInterface(
2533 new SubInterfaceConsolidationDataTestInfo(mainST, "cm01_port_1", "nested1.yaml", 2,
2534 "role_1", "interface_1", null, null, null,
2535 Collections.singletonList(getAttrOutInvalid1), consolidationData));
2537 .addPortSubInterface(
2538 new SubInterfaceConsolidationDataTestInfo(mainST, "cm01_port_2", "nested1.yaml", 2,
2539 "role_1", "interface_2", null, null, null,
2540 Collections.singletonList(getAttrOutInvalid2), consolidationData));
2542 testConsolidation(1, toscaServiceModel, consolidationData, Collections.singletonList(UnifiedCompositionMode.CatalogInstance));
2546 public void testConsolidationRuleFalseDifferentRoleInResourceGroup() throws IOException, URISyntaxException {
2547 translationContext = new TranslationContext();
2548 String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
2549 ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
2550 ("/mock/services/heattotosca/consolidation/translatedfiles/pre_condition/different_subinterface_types",
2553 ConsolidationData consolidationData = new ConsolidationData();
2554 generateComputeAndPortConsolidationData(computeNodeTypeName, consolidationData);
2557 .addPortSubInterface(
2558 new SubInterfaceConsolidationDataTestInfo(mainST, "cm01_port_1", "nested1.yaml", 2,
2559 "role_1", "interface_1", null, null, null, null, consolidationData));
2561 .addPortSubInterface(
2562 new SubInterfaceConsolidationDataTestInfo(mainST, "cm01_port_2", "nested1.yaml", 2,
2563 "role_2", "interface_2", null, null, null, null, consolidationData));
2565 testConsolidation(1, toscaServiceModel, consolidationData, Collections.singletonList(UnifiedCompositionMode.CatalogInstance));
2569 public void testConsolidationRuleTrueForSubInterfaces() throws IOException, URISyntaxException {
2570 translationContext = new TranslationContext();
2571 String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
2572 ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
2573 ("/mock/services/heattotosca/consolidation/translatedfiles/pre_condition/different_subinterface_types",
2576 ConsolidationData consolidationData = new ConsolidationData();
2577 generateComputeAndPortConsolidationData(computeNodeTypeName, consolidationData);
2580 .addPortSubInterface(
2581 new SubInterfaceConsolidationDataTestInfo(mainST, "cm01_port_1", "nested1.yaml", 2,
2582 "role_1", "interface_1", Collections.singletonList("node_1"),
2583 Collections.singletonList("node_1"), null, null, consolidationData));
2585 .addPortSubInterface(
2586 new SubInterfaceConsolidationDataTestInfo(mainST, "cm01_port_2", "nested1.yaml", 2,
2587 "role_1", "interface_2", Collections.singletonList("node_1"),
2588 Collections.singletonList("node_1"), null, null, consolidationData));
2590 testConsolidation(1, toscaServiceModel, consolidationData, Collections.singletonList(UnifiedCompositionMode.ScalingInstances));
2593 private void testConsolidation(int times, ToscaServiceModel toscaServiceModel,
2594 ConsolidationData consolidationData,
2595 List<UnifiedCompositionMode> expectedUnifiedModes) {
2596 Mockito.doNothing().when(unifiedCompositionServiceMock).createUnifiedComposition(
2602 translationContext.setConsolidationData(consolidationData);
2603 verifyMainServiceTemplateConsolidation(times, expectedUnifiedModes, toscaServiceModel);
2606 private void updateComputeConsolidationData(String computeNodeTemplateId,
2607 String computeNodeTypeName,
2609 String portNodeTemplateId,
2610 ConsolidationData consolidationData) {
2611 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
2612 portTypeToIdList.add(new ImmutablePair<>(portType, portNodeTemplateId));
2614 TestUtils.updateComputeTemplateConsolidationData(
2616 computeNodeTypeName, computeNodeTemplateId,
2617 null, null, null, null, null, null,
2618 portTypeToIdList, consolidationData);
2622 private void verifyMainServiceTemplateConsolidation(int times,
2623 List<UnifiedCompositionMode> expectedUnifiedCompositionModes,
2624 ToscaServiceModel toscaServiceModel) {
2625 consolidationService
2626 .serviceTemplateConsolidation(toscaServiceModel.getServiceTemplates().get(mainST),
2627 translationContext);
2629 ServiceTemplate mainServiceTemplate = toscaServiceModel.getServiceTemplates().get(mainST);
2630 verify(unifiedCompositionServiceMock, times(times))
2631 .createUnifiedComposition(
2632 eq(mainServiceTemplate),
2634 unifiedModelListArg.capture(),
2635 unifiedCompositionModeArg.capture(),
2636 eq(translationContext));
2638 List<UnifiedCompositionMode> actualUnifiedCompositionModes =
2639 unifiedCompositionModeArg.getAllValues();
2640 Assert.assertEquals(expectedUnifiedCompositionModes, actualUnifiedCompositionModes);
2643 private void verifySubstitutionServiceTemplateConsolidation(int times,
2644 ServiceTemplate mainST,
2645 ServiceTemplate nestedST,
2646 UnifiedCompositionMode expectedMode) {
2647 consolidationService.substitutionServiceTemplateConsolidation(null, mainST,
2648 nestedST, translationContext);
2650 if (expectedMode.equals(UnifiedCompositionMode.NestedSingleCompute)) {
2651 verify(unifiedCompositionServiceMock, times(times)).
2652 createUnifiedComposition(
2655 unifiedModelListArg.capture(),
2656 unifiedCompositionModeArg.capture(),
2657 eq(translationContext));
2658 Assert.assertEquals(expectedMode, unifiedCompositionModeArg.getValue());
2663 private void addMockServiceTemplateToContext(String serviceTemplateFileName,
2664 String templateName) {
2665 ServiceTemplate serviceTemplate = new ServiceTemplate();
2666 Map<String, String> metadata = new HashMap<>();
2667 metadata.put(ToscaConstants.ST_METADATA_TEMPLATE_NAME, templateName);
2668 serviceTemplate.setMetadata(metadata);
2669 translationContext.getTranslatedServiceTemplates()
2670 .put(serviceTemplateFileName, serviceTemplate);