1 package org.openecomp.sdc.translator.services.heattotosca;
3 import static org.junit.Assert.assertEquals;
4 import static org.mockito.Matchers.anyObject;
5 import static org.mockito.Matchers.anyString;
7 import org.apache.commons.lang3.tuple.ImmutablePair;
8 import org.apache.commons.lang3.tuple.Pair;
9 import org.junit.Before;
10 import org.junit.Ignore;
11 import org.junit.Test;
12 import org.mockito.InjectMocks;
13 import org.mockito.Mockito;
14 import org.mockito.MockitoAnnotations;
15 import org.mockito.Spy;
16 import org.openecomp.sdc.tosca.services.YamlUtil;
17 import org.openecomp.sdc.tosca.datatypes.model.NodeTemplate;
18 import org.openecomp.sdc.tosca.datatypes.model.ServiceTemplate;
19 import org.openecomp.sdc.tosca.services.DataModelUtil;
20 import org.openecomp.sdc.tosca.services.ToscaExtensionYamlUtil;
21 import org.openecomp.sdc.translator.TestUtils;
22 import org.openecomp.sdc.translator.datatypes.heattotosca.TranslationContext;
23 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.UnifiedCompositionData;
24 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.UnifiedCompositionEntity;
25 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.UnifiedSubstitutionData;
26 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.*;
27 import org.openecomp.sdc.translator.services.heattotosca.impl.unifiedcomposition.UnifiedCompositionSingleSubstitution;
29 import java.io.IOException;
33 public class UnifiedCompositionServiceTest {
36 UnifiedCompositionService unifiedCompositionService;
38 TranslationContext context;
40 String inputServiceTemplatesPath;
41 String outputServiceTemplatesPath;
42 Map<String, ServiceTemplate> inputServiceTemplates;
43 Map<String, ServiceTemplate> expectedOutserviceTemplates;
44 private static String mainSTName = "MainServiceTemplate.yaml";
45 private static String substitutionST = "SubstitutionServiceTemplate.yaml";
46 private static String globalSubstitutionST = "GlobalSubstitutionTypesServiceTemplate.yaml";
50 MockitoAnnotations.initMocks(this);
55 public void createUnifiedComposition() throws Exception {
60 public void createSubstitutionStNoConsolidationData() throws Exception {
61 inputServiceTemplatesPath =
62 "/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/NoOutParamDuplicatePortType/in";
63 outputServiceTemplatesPath =
64 "/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/NoOutParamDuplicatePortType/out";
66 loadInputAndOutputData();
67 ServiceTemplate expectedServiceTemplate =
68 TestUtils.loadServiceTemplate(outputServiceTemplatesPath);
70 List<UnifiedCompositionData> unifiedCompositionDataList = new ArrayList<>();
71 Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
72 .createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(mainSTName),
73 unifiedCompositionDataList,
74 context, "org.openecomp.resource.vfc.nodes.heat.FSB1", null);
75 assertEquals(false, substitutionServiceTemplate.isPresent());
79 public void createSubstitutionStNoOutputParamAndDuplicatePortType() throws Exception {
80 inputServiceTemplatesPath =
81 "/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/NoOutParamDuplicatePortType/in";
82 outputServiceTemplatesPath =
83 "/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/NoOutParamDuplicatePortType/out";
85 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
86 portTypeToIdList.add(new ImmutablePair<>("FSB1_Internal", "FSB1_Internal1"));
87 portTypeToIdList.add(new ImmutablePair<>("FSB2_Internal", "FSB2_Internal2"));
88 portTypeToIdList.add(new ImmutablePair<>("FSB2_Internal", "FSB2_Internal1"));
89 portTypeToIdList.add(new ImmutablePair<>("FSB_OAM", "FSB1_OAM"));
91 loadInputAndOutputData();
92 UnifiedCompositionData unifiedCompositionData =
93 createCompositionData("FSB1_template", portTypeToIdList);
94 List<UnifiedCompositionData> unifiedCompositionDataList = new ArrayList<>();
95 unifiedCompositionDataList.add(unifiedCompositionData);
97 Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
98 .createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(mainSTName),
99 unifiedCompositionDataList,
100 context, "org.openecomp.resource.abstract.nodes.FSB1", null);
101 assertEquals(true, substitutionServiceTemplate.isPresent());
102 substitutionServiceTemplate
104 subServiceTemplate -> checkSTResults(expectedOutserviceTemplates,
105 subServiceTemplate, context.getGlobalSubstitutionServiceTemplate(), null));
109 public void createSubstitutionStWithOutputParamNoConsolidation() throws Exception {
110 inputServiceTemplatesPath =
111 "/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate" +
112 "/WithOutputParameters/noConsolidation/in";
113 outputServiceTemplatesPath =
114 "/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/WithOutputParameters/noConsolidation/out";
116 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
117 portTypeToIdList.add(new ImmutablePair<>("FSB1_Internal", "FSB1_Internal1"));
118 portTypeToIdList.add(new ImmutablePair<>("FSB2_Internal", "FSB2_Internal2"));
119 portTypeToIdList.add(new ImmutablePair<>("FSB_OAM", "FSB1_OAM"));
121 loadInputAndOutputData();
122 UnifiedCompositionData unifiedCompositionData =
123 createCompositionData("FSB1_template", portTypeToIdList);
124 addGetAttrForCompute(unifiedCompositionData);
125 addGetAttrForPort(unifiedCompositionData);
126 List<UnifiedCompositionData> unifiedCompositionDataList = new ArrayList<>();
127 unifiedCompositionDataList.add(unifiedCompositionData);
129 Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
130 .createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(mainSTName),
131 unifiedCompositionDataList,
132 context, "org.openecomp.resource.abstract.nodes.FSB1", null);
133 assertEquals(true, substitutionServiceTemplate.isPresent());
134 substitutionServiceTemplate
136 subServiceTemplate -> checkSTResults(expectedOutserviceTemplates,
137 subServiceTemplate, context.getGlobalSubstitutionServiceTemplate(), null));
141 public void createSubstitutionStWithOutputParamWithConsolidation() throws Exception {
142 inputServiceTemplatesPath =
143 "/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/WithOutputParameters/consolidation/in";
144 outputServiceTemplatesPath =
145 "/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/WithOutputParameters/consolidation/out";
147 List<UnifiedCompositionData> unifiedCompositionDataList = new ArrayList<>();
148 List<Pair<String, String>> portTypeToIdList1 = new ArrayList<>();
149 portTypeToIdList1.add(new ImmutablePair<>("FSB1_Internal", "FSB1_Internal1"));
150 portTypeToIdList1.add(new ImmutablePair<>("FSB2_Internal", "FSB2_Internal2"));
152 loadInputAndOutputData();
153 UnifiedCompositionData unifiedCompositionData1 =
154 createCompositionData("FSB1_template", portTypeToIdList1);
155 addGetAttrForCompute(unifiedCompositionData1);
156 addGetAttrForPort(unifiedCompositionData1);
157 unifiedCompositionDataList.add(unifiedCompositionData1);
159 List<Pair<String, String>> portTypeToIdList2 = new ArrayList<>();
160 portTypeToIdList2.add(new ImmutablePair<>("FSB1_Internal", "FSB1_Internal2"));
161 portTypeToIdList2.add(new ImmutablePair<>("FSB2_Internal", "FSB2_Internal1"));
163 UnifiedCompositionData unifiedCompositionData2 =
164 createCompositionData("FSB2_template", portTypeToIdList2);
165 addGetAttrForCompute2(unifiedCompositionData2);
166 addGetAttrForPort2(unifiedCompositionData2);
167 unifiedCompositionDataList.add(unifiedCompositionData2);
169 Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
170 .createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(mainSTName),
171 unifiedCompositionDataList,
172 context, "org.openecomp.resource.abstract.nodes.FSB1", null);
173 assertEquals(true, substitutionServiceTemplate.isPresent());
174 substitutionServiceTemplate
176 subServiceTemplate -> checkSTResults(expectedOutserviceTemplates,
177 subServiceTemplate, context.getGlobalSubstitutionServiceTemplate(), null));
181 public void createSubstitutionStNoPorts() throws Exception {
182 inputServiceTemplatesPath =
183 "/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/NoPorts/in";
184 outputServiceTemplatesPath =
185 "/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/NoPorts/out";
187 loadInputAndOutputData();
189 UnifiedCompositionData unifiedCompositionData = new UnifiedCompositionData();
190 String computeNodeTemplateId = "FSB1_template";
191 unifiedCompositionData.setComputeTemplateConsolidationData(
192 TestUtils.createComputeTemplateConsolidationData(computeNodeTemplateId, null, null));
193 List<UnifiedCompositionData> unifiedCompositionDataList = new ArrayList<>();
194 unifiedCompositionDataList.add(unifiedCompositionData);
196 Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
197 .createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(mainSTName),
198 unifiedCompositionDataList,
199 context, "org.openecomp.resource.abstract.nodes.FSB1", null);
200 assertEquals(true, substitutionServiceTemplate.isPresent());
201 substitutionServiceTemplate
203 subServiceTemplate -> checkSTResults(expectedOutserviceTemplates,
204 subServiceTemplate, context.getGlobalSubstitutionServiceTemplate(), null));
209 public void createSubstitutionStWithIndex() throws Exception {
210 inputServiceTemplatesPath =
211 "/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/WithIndex/in";
212 outputServiceTemplatesPath =
213 "/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/WithIndex/out";
215 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
216 portTypeToIdList.add(new ImmutablePair<>("FSB1_Internal", "FSB1_Internal1"));
217 portTypeToIdList.add(new ImmutablePair<>("FSB2_Internal", "FSB2_Internal2"));
218 portTypeToIdList.add(new ImmutablePair<>("FSB_OAM", "FSB1_OAM"));
220 loadInputAndOutputData();
221 UnifiedCompositionData unifiedCompositionData =
222 createCompositionData("FSB1_template", portTypeToIdList);
223 List<UnifiedCompositionData> unifiedCompositionDataList = new ArrayList<>();
224 unifiedCompositionDataList.add(unifiedCompositionData);
226 Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
227 .createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(mainSTName),
228 unifiedCompositionDataList,
229 context,"org.openecomp.resource.abstract.nodes.FSB1", 2);
230 assertEquals(true, substitutionServiceTemplate.isPresent());
231 substitutionServiceTemplate
233 subServiceTemplate -> checkSTResults(expectedOutserviceTemplates,
234 subServiceTemplate, context.getGlobalSubstitutionServiceTemplate(), null));
239 public void createAbstractSubstituteOneComputeMultiplePortsDifferentTypesTest() throws Exception {
240 inputServiceTemplatesPath =
241 "/mock/services/heattotosca/unifiedComposition/createAbstractSubstitute/oneComputeMultiplePortsDiffType/in";
242 outputServiceTemplatesPath =
243 "/mock/services/heattotosca/unifiedComposition/createAbstractSubstitute/oneComputeMultiplePortsDiffType/out";
245 loadInputAndOutputData();
247 UnifiedCompositionData data = createComputeUnifiedCompositionData("FSB1_template");
248 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
249 portTypeToIdList.add(new ImmutablePair<>("FSB1_Internal", "FSB1_Internal1"));
250 portTypeToIdList.add(new ImmutablePair<>("FSB2_Internal", "FSB2_Internal2"));
251 portTypeToIdList.add(new ImmutablePair<>("FSB_OAM", "FSB1_OAM"));
252 addPortDataToCompositionData(portTypeToIdList, data);
254 List<UnifiedCompositionData> unifiedCompositionDataList = new LinkedList<>();
255 unifiedCompositionDataList.add(data);
256 Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
257 .createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(mainSTName),
258 unifiedCompositionDataList,
259 context, "org.openecomp.resource.vfc.nodes.heat.FSB", null);
260 assertEquals(true, substitutionServiceTemplate.isPresent());
261 if (substitutionServiceTemplate.isPresent()) {
262 String substitutionNodeTypeId =
263 unifiedCompositionService.getSubstitutionNodeTypeId(inputServiceTemplates.get(mainSTName),
264 unifiedCompositionDataList.get(0), null, context);
265 String nodeTemplateId = unifiedCompositionService.createAbstractSubstituteNodeTemplate(
266 inputServiceTemplates.get(mainSTName), substitutionServiceTemplate.get(),
267 unifiedCompositionDataList, substitutionNodeTypeId,
269 validateAbstractSubstitute();
275 public void createAbstractSubstituteOneComputeMultiplePortsSameTypesTest() throws Exception {
276 inputServiceTemplatesPath =
277 "/mock/services/heattotosca/unifiedComposition/createAbstractSubstitute/oneComputeMultiplePortsSameType/in";
278 outputServiceTemplatesPath =
279 "/mock/services/heattotosca/unifiedComposition/createAbstractSubstitute/oneComputeMultiplePortsSameType/out";
281 loadInputAndOutputData();
283 UnifiedCompositionData data = createComputeUnifiedCompositionData("FSB1_template");
284 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
285 portTypeToIdList.add(new ImmutablePair<>("FSB1_Internal", "FSB1_Internal1"));
286 portTypeToIdList.add(new ImmutablePair<>("FSB1_Internal", "FSB1_Internal2"));
287 addPortDataToCompositionData(portTypeToIdList, data);
289 List<UnifiedCompositionData> unifiedCompositionDataList = new LinkedList<>();
290 unifiedCompositionDataList.add(data);
291 Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
292 .createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(mainSTName),
293 unifiedCompositionDataList
294 , context, "org.openecomp.resource.vfc.nodes.heat.FSB", null);
296 assertEquals(true, substitutionServiceTemplate.isPresent());
297 if (substitutionServiceTemplate.isPresent()) {
298 String substitutionNodeTypeId =
299 unifiedCompositionService.getSubstitutionNodeTypeId(inputServiceTemplates.get(mainSTName),
300 unifiedCompositionDataList.get(0), null, context);
301 String nodeTemplateId = unifiedCompositionService.createAbstractSubstituteNodeTemplate(
302 inputServiceTemplates.get(mainSTName), substitutionServiceTemplate.get(),
303 unifiedCompositionDataList, substitutionNodeTypeId,
305 validateAbstractSubstitute();
311 public void createAbstractSubstituteTwoComputesMultiplePorts() throws Exception {
312 inputServiceTemplatesPath =
313 "/mock/services/heattotosca/unifiedComposition/createAbstractSubstitute/twoComputesMultiplePorts/in";
314 outputServiceTemplatesPath =
315 "/mock/services/heattotosca/unifiedComposition/createAbstractSubstitute/twoComputesMultiplePorts/out";
317 loadInputAndOutputData();
318 List<UnifiedCompositionData> unifiedCompositionDataList =
319 createAbstractSubstituteCompositionDataComputeAndPort();
320 Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
321 .createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(mainSTName),
322 unifiedCompositionDataList
323 , context, "org.openecomp.resource.vfc.nodes.heat.FSB", null);
324 assertEquals(true, substitutionServiceTemplate.isPresent());
325 if (substitutionServiceTemplate.isPresent()) {
326 String substitutionNodeTypeId =
327 unifiedCompositionService.getSubstitutionNodeTypeId(inputServiceTemplates.get(mainSTName),
328 unifiedCompositionDataList.get(0), null, context);
329 String nodeTemplateId = unifiedCompositionService.createAbstractSubstituteNodeTemplate(
330 inputServiceTemplates.get(mainSTName), substitutionServiceTemplate.get(),
331 unifiedCompositionDataList, substitutionNodeTypeId,
333 validateAbstractSubstitute();
339 public void updNodesConnectedOutWithConsolidationTest() throws Exception {
340 inputServiceTemplatesPath =
341 "/mock/services/heattotosca/unifiedComposition/updNodesConnectedOut/consolidation/in";
342 outputServiceTemplatesPath =
343 "/mock/services/heattotosca/unifiedComposition/updNodesConnectedOut/consolidation/out";
345 loadInputAndOutputData();
346 List<UnifiedCompositionData> unifiedCompositionDataList =
347 createAbstractSubstituteCompositionDataComputeAndPort();
348 Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
349 .createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(mainSTName),
350 unifiedCompositionDataList
351 , context, "org.openecomp.resource.vfc.nodes.heat.FSB", null);
352 assertEquals(true, substitutionServiceTemplate.isPresent());
353 if (substitutionServiceTemplate.isPresent()) {
354 String substitutionNodeTypeId =
355 unifiedCompositionService.getSubstitutionNodeTypeId(inputServiceTemplates.get(mainSTName),
356 unifiedCompositionDataList.get(0), null, context);
357 String nodeTemplateId = unifiedCompositionService.createAbstractSubstituteNodeTemplate(
358 inputServiceTemplates.get(mainSTName), substitutionServiceTemplate.get(),
359 unifiedCompositionDataList, substitutionNodeTypeId,
362 unifiedCompositionService
363 .updateCompositionConnectivity(inputServiceTemplates.get(mainSTName),
364 unifiedCompositionDataList, context);
365 validateAbstractSubstitute();
369 private void validateAbstractSubstitute() {
370 YamlUtil yamlUtil = new YamlUtil();
371 assertEquals(yamlUtil.objectToYaml(expectedOutserviceTemplates.get(mainSTName)), yamlUtil
372 .objectToYaml(inputServiceTemplates.get(mainSTName)));
377 public void updNodesConnectedOutNoConsolidationTest() throws Exception {
378 inputServiceTemplatesPath =
379 "/mock/services/heattotosca/unifiedComposition/updNodesConnectedOut/noConsolidation/in";
380 outputServiceTemplatesPath =
381 "/mock/services/heattotosca/unifiedComposition/updNodesConnectedOut/noConsolidation/out";
383 loadInputAndOutputData();
385 UnifiedCompositionData data = createComputeUnifiedCompositionData("FSB1_template");
386 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
387 portTypeToIdList.add(new ImmutablePair<>("FSB1_Internal", "FSB1_Internal1"));
388 portTypeToIdList.add(new ImmutablePair<>("FSB2_Internal", "FSB2_Internal2"));
389 portTypeToIdList.add(new ImmutablePair<>("FSB_OAM", "FSB1_OAM"));
390 addPortDataToCompositionData(portTypeToIdList, data);
392 List<UnifiedCompositionData> unifiedCompositionDataList = new LinkedList<>();
393 unifiedCompositionDataList.add(data);
395 Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
396 .createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(mainSTName),
397 unifiedCompositionDataList
398 , context, "org.openecomp.resource.vfc.nodes.heat.FSB", null);
399 assertEquals(true, substitutionServiceTemplate.isPresent());
400 if (substitutionServiceTemplate.isPresent()) {
401 String substitutionNodeTypeId =
402 unifiedCompositionService.getSubstitutionNodeTypeId(inputServiceTemplates.get(mainSTName),
403 unifiedCompositionDataList.get(0), null, context);
404 String nodeTemplateId = unifiedCompositionService.createAbstractSubstituteNodeTemplate(
405 inputServiceTemplates.get(mainSTName), substitutionServiceTemplate.get(),
406 unifiedCompositionDataList, substitutionNodeTypeId,
409 unifiedCompositionService
410 .updateCompositionConnectivity(inputServiceTemplates.get(mainSTName),
411 unifiedCompositionDataList, context);
412 validateAbstractSubstitute();
418 public void updNodesConnectedInNoConsolidationTest() throws Exception {
419 inputServiceTemplatesPath =
420 "/mock/services/heattotosca/unifiedComposition/updNodesConnectedIn/noConsolidation/in";
421 outputServiceTemplatesPath =
422 "/mock/services/heattotosca/unifiedComposition/updNodesConnectedIn/noConsolidation/out";
424 loadInputAndOutputData();
426 UnifiedCompositionData data = createComputeUnifiedCompositionData("QRouter");
427 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
428 portTypeToIdList.add(new ImmutablePair<>("cdr_network_port", "cdr_network_port"));
430 .add(new ImmutablePair<>("oam_private_net_network_port", "oam_private_net_network_port"));
431 addPortDataToCompositionData(portTypeToIdList, data);
433 List<UnifiedCompositionData> unifiedCompositionDataList = new LinkedList<>();
434 unifiedCompositionDataList.add(data);
436 Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
437 .createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(mainSTName),
438 unifiedCompositionDataList
439 , context, "org.openecomp.resource.abstract.nodes.QRouter", null);
441 String substitutionNodeTypeId =
442 unifiedCompositionService.getSubstitutionNodeTypeId(inputServiceTemplates.get(mainSTName),
443 unifiedCompositionDataList.get(0), null, context);
444 String nodeTemplateId = unifiedCompositionService.createAbstractSubstituteNodeTemplate(
445 inputServiceTemplates.get(mainSTName), substitutionServiceTemplate.get(),
446 unifiedCompositionDataList, substitutionNodeTypeId,
449 unifiedCompositionService
450 .updateCompositionConnectivity(inputServiceTemplates.get(mainSTName),
451 unifiedCompositionDataList, context);
452 validateAbstractSubstitute();
457 public void updNodesConnectedInWithConsolidationTest() throws Exception {
458 inputServiceTemplatesPath =
459 "/mock/services/heattotosca/unifiedComposition/updNodesConnectedIn/consolidation/in";
460 outputServiceTemplatesPath =
461 "/mock/services/heattotosca/unifiedComposition/updNodesConnectedIn/consolidation/out";
463 loadInputAndOutputData();
465 List<UnifiedCompositionData> unifiedCompositionDataList =
466 createAbstractSubstituteCompositionDataComputeAndPort();
468 Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
469 .createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(mainSTName),
470 unifiedCompositionDataList
471 , context, "org.openecomp.resource.abstract.nodes.FSB", null);
473 String substitutionNodeTypeId =
474 unifiedCompositionService.getSubstitutionNodeTypeId(inputServiceTemplates.get(mainSTName),
475 unifiedCompositionDataList.get(0), null, context);
476 String nodeTemplateId = unifiedCompositionService.createAbstractSubstituteNodeTemplate(
477 inputServiceTemplates.get(mainSTName), substitutionServiceTemplate.get(),
478 unifiedCompositionDataList, substitutionNodeTypeId,
481 unifiedCompositionService
482 .updateCompositionConnectivity(inputServiceTemplates.get(mainSTName),
483 unifiedCompositionDataList, context);
484 validateAbstractSubstitute();
489 public void updVolumesNoConsolidationTest() throws Exception {
490 inputServiceTemplatesPath =
491 "/mock/services/heattotosca/unifiedComposition/updVolumes/noConsolidation/in";
492 outputServiceTemplatesPath =
493 "/mock/services/heattotosca/unifiedComposition/updVolumes/noConsolidation/out";
495 loadInputAndOutputData();
497 UnifiedCompositionData data = createComputeUnifiedCompositionData("FSB1_template");
498 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
499 portTypeToIdList.add(new ImmutablePair<>("FSB1_Internal", "FSB1_Internal1"));
500 portTypeToIdList.add(new ImmutablePair<>("FSB2_Internal", "FSB2_Internal2"));
501 portTypeToIdList.add(new ImmutablePair<>("FSB_OAM", "FSB1_OAM"));
502 addPortDataToCompositionData(portTypeToIdList, data);
504 List<UnifiedCompositionData> unifiedCompositionDataList = new LinkedList<>();
505 unifiedCompositionDataList.add(data);
507 Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
508 .createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(mainSTName),
509 unifiedCompositionDataList
510 , context, "org.openecomp.resource.vfc.nodes.heat.FSB", null);
512 String substitutionNodeTypeId =
513 unifiedCompositionService.getSubstitutionNodeTypeId(inputServiceTemplates.get(mainSTName),
514 unifiedCompositionDataList.get(0), null, context);
515 String nodeTemplateId = unifiedCompositionService.createAbstractSubstituteNodeTemplate(
516 inputServiceTemplates.get(mainSTName), substitutionServiceTemplate.get(),
517 unifiedCompositionDataList, substitutionNodeTypeId,
520 unifiedCompositionService
521 .updateCompositionConnectivity(inputServiceTemplates.get(mainSTName),
522 unifiedCompositionDataList, context);
523 validateAbstractSubstitute();
528 public void updVolumesWithConsolidationTest() throws Exception {
529 inputServiceTemplatesPath =
530 "/mock/services/heattotosca/unifiedComposition/updVolumes/consolidation/in";
531 outputServiceTemplatesPath =
532 "/mock/services/heattotosca/unifiedComposition/updVolumes/consolidation/out";
534 loadInputAndOutputData();
535 List<UnifiedCompositionData> unifiedCompositionDataList =
536 createAbstractSubstituteCompositionDataComputeAndPort();
537 Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
538 .createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(mainSTName),
539 unifiedCompositionDataList
540 , context, "org.openecomp.resource.vfc.nodes.heat.FSB", null);
542 String substitutionNodeTypeId =
543 unifiedCompositionService.getSubstitutionNodeTypeId(inputServiceTemplates.get(mainSTName),
544 unifiedCompositionDataList.get(0), null, context);
545 String nodeTemplateId = unifiedCompositionService.createAbstractSubstituteNodeTemplate(
546 inputServiceTemplates.get(mainSTName), substitutionServiceTemplate.get(),
547 unifiedCompositionDataList, substitutionNodeTypeId,
550 unifiedCompositionService
551 .updateCompositionConnectivity(inputServiceTemplates.get(mainSTName),
552 unifiedCompositionDataList, context);
553 validateAbstractSubstitute();
558 public void updGroupsNoConsolidationTest() throws Exception {
559 inputServiceTemplatesPath =
560 "/mock/services/heattotosca/unifiedComposition/updGroupsConnectivity/noConsolidation/in";
561 outputServiceTemplatesPath =
562 "/mock/services/heattotosca/unifiedComposition/updGroupsConnectivity/noConsolidation/out";
564 loadInputAndOutputData();
566 UnifiedCompositionData data = createComputeUnifiedCompositionData("server_smp1");
567 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
568 portTypeToIdList.add(new ImmutablePair<>("port", "port1"));
569 portTypeToIdList.add(new ImmutablePair<>("port", "port2"));
570 addPortDataToCompositionData(portTypeToIdList, data);
573 List<String> computeGroupIdList =
574 TestUtils.getGroupsForNode(inputServiceTemplates.get(mainSTName), "server_smp1");
575 data.getComputeTemplateConsolidationData().setGroupIds(computeGroupIdList);
577 List<UnifiedCompositionData> unifiedCompositionDataList = new LinkedList<>();
578 unifiedCompositionDataList.add(data);
580 Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
581 .createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(mainSTName),
582 unifiedCompositionDataList
583 , context, "org.openecomp.resource.abstract.nodes.smp", null);
585 String substitutionNodeTypeId =
586 unifiedCompositionService.getSubstitutionNodeTypeId(inputServiceTemplates.get(mainSTName),
587 unifiedCompositionDataList.get(0), null, context);
588 String nodeTemplateId = unifiedCompositionService.createAbstractSubstituteNodeTemplate(
589 inputServiceTemplates.get(mainSTName), substitutionServiceTemplate.get(),
590 unifiedCompositionDataList, substitutionNodeTypeId,
593 unifiedCompositionService
594 .updateCompositionConnectivity(inputServiceTemplates.get(mainSTName),
595 unifiedCompositionDataList, context);
596 validateAbstractSubstitute();
601 public void updGroupsWithConsolidationTest() throws Exception {
602 inputServiceTemplatesPath =
603 "/mock/services/heattotosca/unifiedComposition/updGroupsConnectivity/consolidation/in";
604 outputServiceTemplatesPath =
605 "/mock/services/heattotosca/unifiedComposition/updGroupsConnectivity/consolidation/out";
607 loadInputAndOutputData();
609 List<UnifiedCompositionData> unifiedCompositionDataList =
610 createAbstractSubstituteCompositionDataComputeAndPort();
612 Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
613 .createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(mainSTName),
614 unifiedCompositionDataList
615 , context, "org.openecomp.resource.vfc.nodes.heat.FSB", null);
617 String substitutionNodeTypeId =
618 unifiedCompositionService.getSubstitutionNodeTypeId(inputServiceTemplates.get(mainSTName),
619 unifiedCompositionDataList.get(0), null, context);
620 String nodeTemplateId = unifiedCompositionService.createAbstractSubstituteNodeTemplate(
621 inputServiceTemplates.get(mainSTName), substitutionServiceTemplate.get(),
622 unifiedCompositionDataList, substitutionNodeTypeId,
625 unifiedCompositionService
626 .updateCompositionConnectivity(inputServiceTemplates.get(mainSTName),
627 unifiedCompositionDataList, context);
628 validateAbstractSubstitute();
632 public void updOutParamGetAttrInNoConsolidationTest() throws Exception {
633 inputServiceTemplatesPath =
634 "/mock/services/heattotosca/unifiedComposition/updOutputGetAttrIn/noConsolidation/in";
635 outputServiceTemplatesPath =
636 "/mock/services/heattotosca/unifiedComposition/updOutputGetAttrIn/noConsolidation/out";
638 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
639 portTypeToIdList.add(new ImmutablePair<>("FSB1_Internal", "FSB1_Internal1"));
640 portTypeToIdList.add(new ImmutablePair<>("FSB2_Internal", "FSB2_Internal2"));
641 portTypeToIdList.add(new ImmutablePair<>("FSB_OAM", "FSB1_OAM"));
643 loadInputAndOutputData();
644 UnifiedCompositionData unifiedCompositionData =
645 createCompositionData("FSB1_template", portTypeToIdList);
646 addOutputGetAttrInForComputeNoConsolidation(unifiedCompositionData);
647 addOutputGetAttrInForPortNoConsolidation(unifiedCompositionData);
649 List<UnifiedCompositionData> unifiedCompositionDataList = new ArrayList<>();
650 unifiedCompositionDataList.add(unifiedCompositionData);
651 Mockito.doNothing().when(unifiedCompositionService).updNodesConnectedOutConnectivity
652 (inputServiceTemplates.get(mainSTName), unifiedCompositionDataList, context);
653 Mockito.doReturn("FSB1").when(context).getUnifiedAbstractNodeTemplateId(anyObject(),
655 unifiedCompositionService
656 .updateCompositionConnectivity(inputServiceTemplates.get(mainSTName),
657 unifiedCompositionDataList, context);
659 checkSTResults(expectedOutserviceTemplates, null, null, inputServiceTemplates.get(mainSTName));
663 public void updOutParamGetAttrInWithConsolidationTest() throws Exception {
664 inputServiceTemplatesPath =
665 "/mock/services/heattotosca/unifiedComposition/updOutputGetAttrIn/consolidation/in";
666 outputServiceTemplatesPath =
667 "/mock/services/heattotosca/unifiedComposition/updOutputGetAttrIn/consolidation/out";
669 List<UnifiedCompositionData> unifiedCompositionDataList = new ArrayList<>();
670 List<Pair<String, String>> portTypeToIdList1 = new ArrayList<>();
671 portTypeToIdList1.add(new ImmutablePair<>("FSB1_Internal", "FSB1_Internal1"));
672 portTypeToIdList1.add(new ImmutablePair<>("FSB2_Internal", "FSB2_Internal2"));
674 loadInputAndOutputData();
675 UnifiedCompositionData unifiedCompositionData1 =
676 createCompositionData("FSB1_template", portTypeToIdList1);
677 addOutputGetAttrInForCompute1WithConsolidation(unifiedCompositionData1);
678 addOutputGetAttrInForPortWithConsolidation1(unifiedCompositionData1);
679 unifiedCompositionDataList.add(unifiedCompositionData1);
681 List<Pair<String, String>> portTypeToIdList2 = new ArrayList<>();
682 portTypeToIdList2.add(new ImmutablePair<>("FSB1_Internal", "FSB1_Internal2"));
683 portTypeToIdList2.add(new ImmutablePair<>("FSB2_Internal", "FSB2_Internal1"));
685 UnifiedCompositionData unifiedCompositionData2 =
686 createCompositionData("FSB2_template", portTypeToIdList2);
687 unifiedCompositionDataList.add(unifiedCompositionData2);
688 addOutputGetAttrInForCompute2WithConsolidation(unifiedCompositionData2);
689 addOutputGetAttrInForPortWithConsolidation2(unifiedCompositionData2);
691 Mockito.doNothing().when(unifiedCompositionService).updNodesConnectedOutConnectivity
692 (inputServiceTemplates.get(mainSTName), unifiedCompositionDataList, context);
693 Mockito.doReturn("FSB1").when(context).getUnifiedAbstractNodeTemplateId(anyObject(),
696 unifiedCompositionService
697 .updateCompositionConnectivity(inputServiceTemplates.get(mainSTName),
698 unifiedCompositionDataList, context);
700 checkSTResults(expectedOutserviceTemplates, null, null, inputServiceTemplates.get(mainSTName));
704 public void updNodeGetAttrInNoConsolidationTest() throws Exception {
705 inputServiceTemplatesPath =
706 "/mock/services/heattotosca/unifiedComposition/updNodesGetAttrIn/noConsolidation/in";
707 outputServiceTemplatesPath =
708 "/mock/services/heattotosca/unifiedComposition/updNodesGetAttrIn/noConsolidation/out";
710 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
711 portTypeToIdList.add(new ImmutablePair<>("FSB1_Internal", "FSB1_Internal1"));
712 portTypeToIdList.add(new ImmutablePair<>("FSB2_Internal", "FSB2_Internal2"));
713 portTypeToIdList.add(new ImmutablePair<>("FSB_OAM", "FSB1_OAM"));
715 loadInputAndOutputData();
716 UnifiedCompositionData unifiedCompositionData =
717 createCompositionData("FSB1_template", portTypeToIdList);
718 addGetAttrForCompute(unifiedCompositionData);
719 addGetAttrForPort(unifiedCompositionData);
720 addGetAttrForPortInnerUC(unifiedCompositionData);
722 List<UnifiedCompositionData> unifiedCompositionDataList = new ArrayList<>();
723 unifiedCompositionDataList.add(unifiedCompositionData);
724 Mockito.doNothing().when(unifiedCompositionService).updNodesConnectedOutConnectivity
725 (inputServiceTemplates.get(mainSTName), unifiedCompositionDataList, context);
726 Mockito.doReturn("FSB1").when(context).getUnifiedAbstractNodeTemplateId(anyObject(),
728 unifiedCompositionService
729 .updateCompositionConnectivity(inputServiceTemplates.get(mainSTName),
730 unifiedCompositionDataList, context);
732 checkSTResults(expectedOutserviceTemplates, null, null, inputServiceTemplates.get(mainSTName));
736 public void updNodeGetAttrInWithConsolidationTest() throws Exception {
737 inputServiceTemplatesPath =
738 "/mock/services/heattotosca/unifiedComposition/updNodesGetAttrIn/consolidation/in";
739 outputServiceTemplatesPath =
740 "/mock/services/heattotosca/unifiedComposition/updNodesGetAttrIn/consolidation/out";
742 List<UnifiedCompositionData> unifiedCompositionDataList = new ArrayList<>();
743 List<Pair<String, String>> portTypeToIdList1 = new ArrayList<>();
744 portTypeToIdList1.add(new ImmutablePair<>("FSB1_Internal", "FSB1_Internal1"));
745 portTypeToIdList1.add(new ImmutablePair<>("FSB2_Internal", "FSB2_Internal2"));
747 loadInputAndOutputData();
748 UnifiedCompositionData unifiedCompositionData1 =
749 createCompositionData("FSB1_template", portTypeToIdList1);
750 addGetAttrForCompute(unifiedCompositionData1);
751 addGetAttrForPort(unifiedCompositionData1);
752 unifiedCompositionDataList.add(unifiedCompositionData1);
754 List<Pair<String, String>> portTypeToIdList2 = new ArrayList<>();
755 portTypeToIdList2.add(new ImmutablePair<>("FSB1_Internal", "FSB1_Internal2"));
756 portTypeToIdList2.add(new ImmutablePair<>("FSB2_Internal", "FSB2_Internal1"));
758 UnifiedCompositionData unifiedCompositionData2 =
759 createCompositionData("FSB2_template", portTypeToIdList2);
760 addGetAttrForCompute2(unifiedCompositionData2);
761 addGetAttrForPort2(unifiedCompositionData2);
762 unifiedCompositionDataList.add(unifiedCompositionData2);
765 Mockito.doNothing().when(unifiedCompositionService).updNodesConnectedOutConnectivity
766 (inputServiceTemplates.get(mainSTName), unifiedCompositionDataList, context);
767 Mockito.doReturn("FSB1").when(context).getUnifiedAbstractNodeTemplateId(anyObject(),
770 unifiedCompositionService
771 .updateCompositionConnectivity(inputServiceTemplates.get(mainSTName),
772 unifiedCompositionDataList, context);
774 checkSTResults(expectedOutserviceTemplates, null, null, inputServiceTemplates.get(mainSTName));
779 public void updNodesGetAttrFromInnerNodesTest() throws Exception {
780 inputServiceTemplatesPath =
781 "/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/updNodesGetAttrInFromInnerNodes/noConsolidation/in";
782 outputServiceTemplatesPath =
783 "/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/updNodesGetAttrInFromInnerNodes/noConsolidation/out";
785 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
786 portTypeToIdList.add(new ImmutablePair<>("FSB1_Internal", "FSB1_Internal1"));
787 portTypeToIdList.add(new ImmutablePair<>("FSB2_Internal", "FSB2_Internal2"));
788 portTypeToIdList.add(new ImmutablePair<>("FSB_OAM", "FSB1_OAM"));
790 loadInputAndOutputData();
791 UnifiedCompositionData unifiedCompositionData =
792 createCompositionData("FSB1_template", portTypeToIdList);
793 addGetAttrForCompute(unifiedCompositionData);
794 addGetAttrForPort(unifiedCompositionData);
795 addGetAttrForPortInnerUC(unifiedCompositionData);
796 List<UnifiedCompositionData> unifiedCompositionDataList = new ArrayList<>();
797 unifiedCompositionDataList.add(unifiedCompositionData);
799 Mockito.doReturn("FSB1").when(context).getUnifiedAbstractNodeTemplateId(anyObject(),
802 Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
803 .createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(mainSTName),
804 unifiedCompositionDataList,
805 context, "org.openecomp.resource.abstract.nodes.FSB1", null);
806 assertEquals(true, substitutionServiceTemplate.isPresent());
807 substitutionServiceTemplate
809 subServiceTemplate -> checkSTResults(expectedOutserviceTemplates,
810 subServiceTemplate, context.getGlobalSubstitutionServiceTemplate(), null));
815 public void updNodesGetAttrFromConsolidationNodesTest() throws Exception {
816 inputServiceTemplatesPath =
817 "/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/updNodesGetAttrInFromInnerNodes/consolidation/in";
818 outputServiceTemplatesPath =
819 "/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/updNodesGetAttrInFromInnerNodes/consolidation/out";
821 List<UnifiedCompositionData> unifiedCompositionDataList = new ArrayList<>();
822 List<Pair<String, String>> portTypeToIdList1 = new ArrayList<>();
823 portTypeToIdList1.add(new ImmutablePair<>("FSB1_Internal", "FSB1_Internal1"));
824 portTypeToIdList1.add(new ImmutablePair<>("FSB2_Internal", "FSB2_Internal2"));
826 loadInputAndOutputData();
827 UnifiedCompositionData unifiedCompositionData1 =
828 createCompositionData("FSB1_template", portTypeToIdList1);
829 addGetAttrForCompute(unifiedCompositionData1);
830 addGetAttrForPort(unifiedCompositionData1);
831 unifiedCompositionDataList.add(unifiedCompositionData1);
833 List<Pair<String, String>> portTypeToIdList2 = new ArrayList<>();
834 portTypeToIdList2.add(new ImmutablePair<>("FSB1_Internal", "FSB1_Internal2"));
835 portTypeToIdList2.add(new ImmutablePair<>("FSB2_Internal", "FSB2_Internal1"));
837 UnifiedCompositionData unifiedCompositionData2 =
838 createCompositionData("FSB2_template", portTypeToIdList2);
839 addGetAttrForCompute2(unifiedCompositionData2);
840 addGetAttrForPort2(unifiedCompositionData2);
841 unifiedCompositionDataList.add(unifiedCompositionData2);
843 Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
844 .createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(mainSTName),
845 unifiedCompositionDataList,
846 context, "org.openecomp.resource.abstract.nodes.FSB1", null);
847 assertEquals(true, substitutionServiceTemplate.isPresent());
848 substitutionServiceTemplate
850 subServiceTemplate -> checkSTResults(expectedOutserviceTemplates,
851 subServiceTemplate, context.getGlobalSubstitutionServiceTemplate(), null));
855 public void cleanMainServiceTemplateTestNoConsolidation() throws IOException {
856 inputServiceTemplatesPath =
857 "/mock/services/heattotosca/unifiedComposition/cleanMainSt/noConsolidation/in";
858 outputServiceTemplatesPath =
859 "/mock/services/heattotosca/unifiedComposition/cleanMainSt/noConsolidation/out";
861 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
862 portTypeToIdList.add(new ImmutablePair<>("FSB1_Internal", "FSB1_Internal1"));
863 portTypeToIdList.add(new ImmutablePair<>("FSB2_Internal", "FSB2_Internal2"));
864 portTypeToIdList.add(new ImmutablePair<>("FSB_OAM", "FSB1_OAM"));
866 loadInputAndOutputData();
867 UnifiedCompositionData unifiedCompositionData =
868 createCompositionData("FSB1_template", portTypeToIdList);
869 addGetAttrForCompute(unifiedCompositionData);
870 addGetAttrForPort(unifiedCompositionData);
872 List<UnifiedCompositionData> unifiedCompositionDataList = new ArrayList<>();
873 unifiedCompositionDataList.add(unifiedCompositionData);
875 NodeTemplate abstractNodeTemplate = getMockNode(
876 "/mock/services/heattotosca/unifiedComposition/cleanMainSt/mockAbstractNodeTemplate.yaml");
877 inputServiceTemplates.get(mainSTName).getTopology_template().getNode_templates()
878 .put("FSB1", abstractNodeTemplate);
880 Mockito.doReturn("FSB1").when(context).getUnifiedAbstractNodeTemplateId(anyObject(),
883 unifiedCompositionService.
884 cleanUnifiedCompositionEntities(inputServiceTemplates.get(mainSTName),
885 unifiedCompositionDataList, context);
887 checkSTResults(expectedOutserviceTemplates, null, null, inputServiceTemplates.get(mainSTName));
891 public void cleanMainServiceTemplateTestWithConsolidation() throws IOException {
892 inputServiceTemplatesPath =
893 "/mock/services/heattotosca/unifiedComposition/cleanMainSt/consolidation/in";
894 outputServiceTemplatesPath =
895 "/mock/services/heattotosca/unifiedComposition/cleanMainSt/consolidation/out";
897 loadInputAndOutputData();
899 List<UnifiedCompositionData> unifiedCompositionDataList = new ArrayList<>();
900 List<Pair<String, String>> portTypeToIdList1 = new ArrayList<>();
901 portTypeToIdList1.add(new ImmutablePair<>("FSB1_Internal", "FSB1_Internal1"));
902 portTypeToIdList1.add(new ImmutablePair<>("FSB2_Internal", "FSB2_Internal2"));
904 UnifiedCompositionData unifiedCompositionData1 =
905 createCompositionData("FSB1_template", portTypeToIdList1);
906 addOutputGetAttrInForCompute1WithConsolidation(unifiedCompositionData1);
907 addOutputGetAttrInForPortWithConsolidation1(unifiedCompositionData1);
908 unifiedCompositionDataList.add(unifiedCompositionData1);
910 List<Pair<String, String>> portTypeToIdList2 = new ArrayList<>();
911 portTypeToIdList2.add(new ImmutablePair<>("FSB1_Internal", "FSB1_Internal2"));
912 portTypeToIdList2.add(new ImmutablePair<>("FSB2_Internal", "FSB2_Internal1"));
914 UnifiedCompositionData unifiedCompositionData2 =
915 createCompositionData("FSB2_template", portTypeToIdList2);
916 addOutputGetAttrInForCompute2WithConsolidation(unifiedCompositionData2);
917 addOutputGetAttrInForPortWithConsolidation2(unifiedCompositionData2);
918 unifiedCompositionDataList.add(unifiedCompositionData2);
920 NodeTemplate abstractNodeTemplate = getMockNode(
921 "/mock/services/heattotosca/unifiedComposition/cleanMainSt/mockAbstractNodeTemplate.yaml");
922 inputServiceTemplates.get(mainSTName).getTopology_template().getNode_templates()
923 .put("FSB1", abstractNodeTemplate);
925 Mockito.doReturn("FSB1").when(context).getUnifiedAbstractNodeTemplateId(anyObject(),
928 unifiedCompositionService.
929 cleanUnifiedCompositionEntities(inputServiceTemplates.get(mainSTName),
930 unifiedCompositionDataList, context);
932 checkSTResults(expectedOutserviceTemplates, null, null, inputServiceTemplates.get(mainSTName));
936 public void updateNewAbstractNodeTemplateNoConsolidation() throws IOException {
937 inputServiceTemplatesPath =
938 "/mock/services/heattotosca/unifiedComposition/fixNewAbstractNodeTemplate/noConsolidation/in";
939 outputServiceTemplatesPath =
940 "/mock/services/heattotosca/unifiedComposition/fixNewAbstractNodeTemplate/noConsolidation/out";
942 loadInputAndOutputData();
944 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
945 portTypeToIdList.add(new ImmutablePair<>("FSB1_Internal", "FSB1_Internal1"));
946 portTypeToIdList.add(new ImmutablePair<>("FSB1_Internal", "FSB1_Internal2"));
948 NodeTemplate cleanedComputeNodeTemplate =
950 "/mock/services/heattotosca/unifiedComposition/fixNewAbstractNodeTemplate/mockComputeNodeTemplate.yaml");
953 context.setConsolidationData(
954 createConsolidationData(Arrays.asList("FSB1_template"), portTypeToIdList));
955 context.addCleanedNodeTemplate(mainSTName, "FSB1_template",
956 UnifiedCompositionEntity.Compute, cleanedComputeNodeTemplate);
957 context.addCleanedNodeTemplate(mainSTName, "FSB1_Internal1",
958 UnifiedCompositionEntity.Port, cleanedComputeNodeTemplate);
959 context.addCleanedNodeTemplate(mainSTName, "FSB1_Internal2",
960 UnifiedCompositionEntity.Port, cleanedComputeNodeTemplate);
962 setUnifiedCompositionData(Arrays.asList("FSB1_template", "FSB1_Internal1", "FSB1_Internal2"));
964 unifiedCompositionService
965 .updateUnifiedAbstractNodesConnectivity(inputServiceTemplates.get(mainSTName), context);
967 checkSTResults(expectedOutserviceTemplates, null, null, inputServiceTemplates.get(mainSTName));
971 public void updateNewAbstractNodeTemplateWithConsolidation() throws IOException {
972 inputServiceTemplatesPath =
973 "/mock/services/heattotosca/unifiedComposition/fixNewAbstractNodeTemplate/consolidation/in";
974 outputServiceTemplatesPath =
975 "/mock/services/heattotosca/unifiedComposition/fixNewAbstractNodeTemplate/consolidation/out";
977 loadInputAndOutputData();
979 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
980 portTypeToIdList.add(new ImmutablePair<>("FSB1_Internal", "FSB1_Internal1"));
981 portTypeToIdList.add(new ImmutablePair<>("FSB2_Internal", "FSB2_Internal1"));
983 NodeTemplate cleanedComputeNodeTemplate =
985 "/mock/services/heattotosca/unifiedComposition/fixNewAbstractNodeTemplate/mockComputeNodeTemplate.yaml");
988 context.setConsolidationData(
989 createConsolidationData(Arrays.asList("FSB1_template_1", "FSB1_template_2"),
991 context.addCleanedNodeTemplate(mainSTName, "FSB1_template_1",
992 UnifiedCompositionEntity.Compute, cleanedComputeNodeTemplate);
993 context.addCleanedNodeTemplate(mainSTName, "FSB1_template_2",
994 UnifiedCompositionEntity.Compute, cleanedComputeNodeTemplate);
995 context.addCleanedNodeTemplate(mainSTName, "FSB1_Internal1",
996 UnifiedCompositionEntity.Port, cleanedComputeNodeTemplate);
997 context.addCleanedNodeTemplate(mainSTName, "FSB2_Internal1",
998 UnifiedCompositionEntity.Port, cleanedComputeNodeTemplate);
1000 setUnifiedCompositionData(
1001 Arrays.asList("FSB1_template_1", "FSB1_template_2", "FSB1_Internal1", "FSB2_Internal1"));
1003 unifiedCompositionService
1004 .updateUnifiedAbstractNodesConnectivity(inputServiceTemplates.get(mainSTName), context);
1006 checkSTResults(expectedOutserviceTemplates, null, null, inputServiceTemplates.get(mainSTName));
1010 public void testThreeNovaOfSameTypePreConditionFalse() throws IOException {
1011 inputServiceTemplatesPath =
1012 "/mock/services/heattotosca/unifiedComposition/pattern1b/noConsolidation/in";
1013 outputServiceTemplatesPath =
1014 "/mock/services/heattotosca/unifiedComposition/pattern1b/noConsolidation/out";
1016 loadInputAndOutputData();
1018 List<UnifiedCompositionData> unifiedCompositionDataList = new ArrayList<>();
1019 List<Pair<String, String>> portTypeToIdList1 = new ArrayList<>();
1020 portTypeToIdList1.add(new ImmutablePair<>("FSB1_Internal", "FSB1_Internal1"));
1021 portTypeToIdList1.add(new ImmutablePair<>("FSB2_Internal", "FSB2_Internal2"));
1023 UnifiedCompositionData unifiedCompositionData1 =
1024 createCompositionData("FSB1_template", portTypeToIdList1);
1025 addOutputGetAttrInForCompute1WithConsolidation(unifiedCompositionData1);
1026 addOutputGetAttrInForPortWithConsolidation1(unifiedCompositionData1);
1027 unifiedCompositionDataList.add(unifiedCompositionData1);
1029 UnifiedCompositionData unifiedCompositionData2 =
1030 createCompositionData("FSB2_template", portTypeToIdList1);
1031 addOutputGetAttrInForCompute1WithConsolidation(unifiedCompositionData2);
1032 addOutputGetAttrInForPortWithConsolidation1(unifiedCompositionData2);
1033 unifiedCompositionDataList.add(unifiedCompositionData2);
1035 portTypeToIdList1.remove(1);
1036 UnifiedCompositionData unifiedCompositionData3 =
1037 createCompositionData("FSB3_template", portTypeToIdList1);
1038 addOutputGetAttrInForCompute1WithConsolidation(unifiedCompositionData3);
1039 addOutputGetAttrInForPortWithConsolidation1(unifiedCompositionData3);
1040 unifiedCompositionDataList.add(unifiedCompositionData3);
1042 UnifiedCompositionSingleSubstitution unifiedCompositionSingleSubstitution =
1043 new UnifiedCompositionSingleSubstitution();
1044 unifiedCompositionSingleSubstitution
1045 .createUnifiedComposition(inputServiceTemplates.get(mainSTName), null,
1046 unifiedCompositionDataList, context);
1048 checkSTResults(expectedOutserviceTemplates, null, null, inputServiceTemplates.get(mainSTName));
1052 public void testUnifiedNestedCompositionOneComputeInNested() throws IOException {
1053 inputServiceTemplatesPath =
1054 "/mock/services/heattotosca/unifiedComposition/pattern4/oneNestedNode/in";
1055 outputServiceTemplatesPath =
1056 "/mock/services/heattotosca/unifiedComposition/pattern4/oneNestedNode/out";
1058 loadInputAndOutputData();
1060 ConsolidationData consolidationData = new ConsolidationData();
1061 String nestedFileName = "nested-pcm_v0.1ServiceTemplate.yaml";
1062 TestUtils.updateNestedConsolidationData(mainSTName, Arrays.asList("server_pcm_001"),
1065 TestUtils.initComputeNodeTypeInConsolidationData(nestedFileName,
1066 "org.openecomp.resource.vfc.nodes.heat.pcm_server", consolidationData);
1067 TestUtils.initComputeNodeTemplateIdInConsolidationData(nestedFileName,
1068 "org.openecomp.resource.vfc.nodes.heat.pcm_server", "server_pcm", consolidationData);
1070 context.setConsolidationData(consolidationData);
1071 context.getTranslatedServiceTemplates()
1072 .put(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME,
1073 inputServiceTemplates.get(globalSubstitutionST));
1074 context.getTranslatedServiceTemplates()
1075 .put(nestedFileName, inputServiceTemplates.get(nestedFileName));
1076 context.getTranslatedServiceTemplates()
1077 .put(mainSTName, inputServiceTemplates.get(mainSTName));
1079 UnifiedCompositionData unifiedComposition = createUnifiedCompositionOnlyNested("server_pcm_001");
1080 unifiedCompositionService.handleUnifiedNestedDefinition(inputServiceTemplates.get(mainSTName),
1081 inputServiceTemplates.get(nestedFileName), unifiedComposition, context);
1083 checkSTResults(expectedOutserviceTemplates, nestedFileName,
1084 context.getTranslatedServiceTemplates().get(nestedFileName),
1085 context.getTranslatedServiceTemplates()
1086 .get(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME), null);
1090 public void testTwoNestedWithOneCompute() throws IOException {
1091 inputServiceTemplatesPath =
1092 "/mock/services/heattotosca/unifiedComposition/pattern4/twoNestedWithOneCompute/in";
1093 outputServiceTemplatesPath =
1094 "/mock/services/heattotosca/unifiedComposition/pattern4/twoNestedWithOneCompute/out";
1096 loadInputAndOutputData();
1098 ConsolidationData consolidationData = new ConsolidationData();
1099 String nestedFileName1 = "nested-pcm_v0.1ServiceTemplate.yaml";
1100 String nestedFileName2 = "nested-oam_v0.1ServiceTemplate.yaml";
1102 TestUtils.updateNestedConsolidationData(mainSTName,
1103 Arrays.asList("server_pcm_001", "server_oam_001"), consolidationData);
1105 TestUtils.initComputeNodeTypeInConsolidationData(nestedFileName1,
1106 "org.openecomp.resource.vfc.nodes.heat.pcm_server", consolidationData);
1107 TestUtils.initComputeNodeTemplateIdInConsolidationData(nestedFileName1,
1108 "org.openecomp.resource.vfc.nodes.heat.pcm_server", "server_pcm", consolidationData);
1109 TestUtils.initComputeNodeTypeInConsolidationData(nestedFileName2,
1110 "org.openecomp.resource.vfc.nodes.heat.oam_server", consolidationData);
1111 TestUtils.initComputeNodeTemplateIdInConsolidationData(nestedFileName2,
1112 "org.openecomp.resource.vfc.nodes.heat.oam_server", "server_oam", consolidationData);
1114 context.setConsolidationData(consolidationData);
1115 context.getTranslatedServiceTemplates()
1116 .put(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME,
1117 inputServiceTemplates.get(globalSubstitutionST));
1118 context.getTranslatedServiceTemplates()
1119 .put(nestedFileName1, inputServiceTemplates.get(nestedFileName1));
1120 context.getTranslatedServiceTemplates()
1121 .put(nestedFileName2, inputServiceTemplates.get(nestedFileName2));
1122 context.getTranslatedServiceTemplates()
1123 .put(mainSTName, inputServiceTemplates.get(mainSTName));
1125 UnifiedCompositionData unifiedComposition =
1126 createUnifiedCompositionOnlyNested("server_pcm_001");
1127 unifiedCompositionService.handleUnifiedNestedDefinition(inputServiceTemplates.get(mainSTName),
1128 inputServiceTemplates.get(nestedFileName1), unifiedComposition, context);
1129 unifiedComposition = createUnifiedCompositionOnlyNested("server_oam_001");
1130 unifiedCompositionService.handleUnifiedNestedDefinition(inputServiceTemplates.get(mainSTName),
1131 inputServiceTemplates.get(nestedFileName2), unifiedComposition, context);
1133 checkSTResults(expectedOutserviceTemplates, nestedFileName1,
1134 context.getTranslatedServiceTemplates().get(nestedFileName1),
1135 context.getTranslatedServiceTemplates()
1136 .get(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME), null);
1137 checkSTResults(expectedOutserviceTemplates, nestedFileName2,
1138 context.getTranslatedServiceTemplates().get(nestedFileName2),
1143 public void testNestedCompositionNodesConnectedIn() throws IOException {
1144 inputServiceTemplatesPath =
1145 "/mock/services/heattotosca/unifiedComposition/pattern4/nestedNodesConnectedIn/in";
1146 outputServiceTemplatesPath =
1147 "/mock/services/heattotosca/unifiedComposition/pattern4/nestedNodesConnectedIn/out";
1149 loadInputAndOutputData();
1150 ConsolidationData consolidationData = new ConsolidationData();
1151 String nestedFileName = "nested-pcm_v0.1ServiceTemplate.yaml";
1152 TestUtils.updateNestedConsolidationData(mainSTName, Arrays.asList("server_pcm_001"),
1154 context.getTranslatedServiceTemplates()
1155 .put(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME,
1156 inputServiceTemplates.get(globalSubstitutionST));
1157 context.getTranslatedServiceTemplates()
1158 .put(nestedFileName, inputServiceTemplates.get(nestedFileName));
1159 context.getTranslatedServiceTemplates()
1160 .put(mainSTName, inputServiceTemplates.get(mainSTName));
1161 context.addUnifiedNestedNodeTemplateId(mainSTName, "server_pcm_001", "abstract_pcm_server_0");
1163 Map<String, List<RequirementAssignmentData>> nodeConnectedInList =
1164 TestUtils.getNodeConnectedInList("server_pcm_001", inputServiceTemplates.get(mainSTName),
1166 UnifiedCompositionData unifiedComposition =
1167 createUnifiedCompositionOnlyNested("server_pcm_001");
1168 unifiedComposition.getNestedTemplateConsolidationData()
1169 .setNodesConnectedIn(nodeConnectedInList);
1171 unifiedCompositionService.updNestedCompositionNodesConnectedInConnectivity
1172 (inputServiceTemplates.get(mainSTName), unifiedComposition, context);
1173 checkSTResults(expectedOutserviceTemplates, nestedFileName,
1174 context.getTranslatedServiceTemplates().get(nestedFileName),
1175 context.getTranslatedServiceTemplates()
1176 .get(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME), context
1177 .getTranslatedServiceTemplates().get(mainSTName));
1182 public void testNestedCompositionNodesGetAttrIn() throws IOException {
1183 inputServiceTemplatesPath =
1184 "/mock/services/heattotosca/unifiedComposition/pattern4/nestedNodesGetAttrIn/in";
1185 outputServiceTemplatesPath =
1186 "/mock/services/heattotosca/unifiedComposition/pattern4/nestedNodesGetAttrIn/out";
1188 loadInputAndOutputData();
1189 ConsolidationData consolidationData = new ConsolidationData();
1190 String nestedFileName = "nested-pcm_v0.1ServiceTemplate.yaml";
1191 TestUtils.updateNestedConsolidationData(mainSTName, Arrays.asList("server_pcm_001"),
1193 context.getTranslatedServiceTemplates()
1194 .put(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME,
1195 inputServiceTemplates.get(globalSubstitutionST));
1196 context.getTranslatedServiceTemplates()
1197 .put(nestedFileName, inputServiceTemplates.get(nestedFileName));
1198 context.getTranslatedServiceTemplates()
1199 .put(mainSTName, inputServiceTemplates.get(mainSTName));
1200 context.addUnifiedNestedNodeTemplateId(mainSTName, "server_pcm_001", "abstract_pcm_server_0");
1202 Map<String, List<RequirementAssignmentData>> nodeConnectedInList =
1203 TestUtils.getNodeConnectedInList("server_pcm_001", inputServiceTemplates.get(mainSTName),
1205 UnifiedCompositionData unifiedComposition =
1206 createUnifiedCompositionOnlyNested("server_pcm_001");
1207 addGetAttInUnifiedCompositionData(unifiedComposition
1208 .getNestedTemplateConsolidationData(), "tenant_id", "oam_net_gw", "packet_mirror_network");
1209 addGetAttInUnifiedCompositionData(unifiedComposition
1210 .getNestedTemplateConsolidationData(), "user_data_format", "oam_net_gw",
1211 "server_compute_get_attr_test");
1212 addGetAttInUnifiedCompositionData(unifiedComposition
1213 .getNestedTemplateConsolidationData(), "metadata", "server_pcm_id",
1214 "server_compute_get_attr_test");
1215 unifiedCompositionService.updNestedCompositionNodesGetAttrInConnectivity
1216 (inputServiceTemplates.get(mainSTName), unifiedComposition, context);
1217 checkSTResults(expectedOutserviceTemplates, nestedFileName,
1218 context.getTranslatedServiceTemplates().get(nestedFileName),
1219 context.getTranslatedServiceTemplates()
1220 .get(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME), context
1221 .getTranslatedServiceTemplates().get(mainSTName));
1225 public void testNestedCompositionOutputParamGetAttrIn() throws IOException {
1226 inputServiceTemplatesPath =
1227 "/mock/services/heattotosca/unifiedComposition/pattern4/nestedOutputParamGetAttrIn/in";
1228 outputServiceTemplatesPath =
1229 "/mock/services/heattotosca/unifiedComposition/pattern4/nestedOutputParamGetAttrIn/out";
1231 loadInputAndOutputData();
1232 ConsolidationData consolidationData = new ConsolidationData();
1233 String nestedFileName = "nested-pcm_v0.1ServiceTemplate.yaml";
1234 TestUtils.updateNestedConsolidationData(mainSTName, Arrays.asList("server_pcm_001"),
1236 context.getTranslatedServiceTemplates()
1237 .put(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME,
1238 inputServiceTemplates.get(globalSubstitutionST));
1239 context.getTranslatedServiceTemplates()
1240 .put(nestedFileName, inputServiceTemplates.get(nestedFileName));
1241 context.getTranslatedServiceTemplates()
1242 .put(mainSTName, inputServiceTemplates.get(mainSTName));
1243 context.addUnifiedNestedNodeTemplateId(mainSTName, "server_pcm_001", "abstract_pcm_server_0");
1245 Map<String, List<RequirementAssignmentData>> nodeConnectedInList =
1246 TestUtils.getNodeConnectedInList("server_pcm_001", inputServiceTemplates.get(mainSTName),
1248 UnifiedCompositionData unifiedComposition =
1249 createUnifiedCompositionOnlyNested("server_pcm_001");
1250 addOutputGetAttInUnifiedCompositionData(unifiedComposition
1251 .getNestedTemplateConsolidationData(), "output_attr_1", "accessIPv4");
1252 addOutputGetAttInUnifiedCompositionData(unifiedComposition
1253 .getNestedTemplateConsolidationData(), "output_attr_2", "accessIPv6");
1254 unifiedCompositionService.updNestedCompositionOutputParamGetAttrInConnectivity
1255 (inputServiceTemplates.get(mainSTName), unifiedComposition, context);
1256 checkSTResults(expectedOutserviceTemplates, nestedFileName,
1257 context.getTranslatedServiceTemplates().get(nestedFileName),
1258 context.getTranslatedServiceTemplates()
1259 .get(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME), context
1260 .getTranslatedServiceTemplates().get(mainSTName));
1264 public void testInputOutputParameterType() throws IOException{
1265 inputServiceTemplatesPath =
1266 "/mock/services/heattotosca/unifiedComposition/inputoutputparamtype/in";
1267 outputServiceTemplatesPath =
1268 "/mock/services/heattotosca/unifiedComposition/inputoutputparamtype/out";
1270 loadInputAndOutputData();
1271 ConsolidationData consolidationData = new ConsolidationData();
1272 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
1273 portTypeToIdList.add(new ImmutablePair<>("FSB1_Port", "FSB1_Port1"));
1274 portTypeToIdList.add(new ImmutablePair<>("VMI", "VMI1"));
1276 UnifiedCompositionData unifiedCompositionData = createCompositionData("FSB1", portTypeToIdList);
1278 Map<String, NodeTemplate> nodeTemplates =
1279 inputServiceTemplates.get(mainSTName).getTopology_template().getNode_templates();
1280 for (Map.Entry<String, NodeTemplate> nodeTemplateEntry : nodeTemplates.entrySet() ) {
1281 String nodeTemplateId = nodeTemplateEntry.getKey();
1282 if (nodeTemplateId.equals("cmaui_volume_test_compute_properties")) {
1283 Map<String, List<GetAttrFuncData>> nodesGetAttrIn =
1284 TestUtils.getNodesGetAttrIn(nodeTemplateEntry.getValue(), nodeTemplateId);
1285 unifiedCompositionData.getComputeTemplateConsolidationData()
1286 .setNodesGetAttrIn(nodesGetAttrIn);
1289 if (nodeTemplateId.equals("cmaui_volume_test_neutron_port_properties")) {
1290 Map<String, List<GetAttrFuncData>> nodesGetAttrIn =
1291 TestUtils.getNodesGetAttrIn(nodeTemplateEntry.getValue(), nodeTemplateId);
1292 unifiedCompositionData.getPortTemplateConsolidationDataList().get(0)
1293 .setNodesGetAttrIn(nodesGetAttrIn);
1296 if (nodeTemplateId.equals("cmaui_volume_test_contrailv2_VMI_properties")) {
1297 Map<String, List<GetAttrFuncData>> nodesGetAttrIn =
1298 TestUtils.getNodesGetAttrIn(nodeTemplateEntry.getValue(), nodeTemplateId);
1299 unifiedCompositionData.getPortTemplateConsolidationDataList().get(1)
1300 .setNodesGetAttrIn(nodesGetAttrIn);
1304 List<UnifiedCompositionData> unifiedCompositionDataList = new LinkedList<>();
1305 unifiedCompositionDataList.add(unifiedCompositionData);
1307 UnifiedCompositionSingleSubstitution unifiedCompositionSingleSubstitution =
1308 new UnifiedCompositionSingleSubstitution();
1309 unifiedCompositionSingleSubstitution
1310 .createUnifiedComposition(inputServiceTemplates.get(mainSTName), null,
1311 unifiedCompositionDataList, context);
1312 checkSTResults(expectedOutserviceTemplates, null, null, inputServiceTemplates.get(mainSTName));
1313 System.out.println();
1318 private UnifiedCompositionData createUnifiedCompositionOnlyNested(
1319 String nestedNodeTemplateId) {
1320 NestedTemplateConsolidationData nestedTemplateConsolidationData =
1321 new NestedTemplateConsolidationData();
1322 nestedTemplateConsolidationData.setNodeTemplateId(nestedNodeTemplateId);
1323 UnifiedCompositionData unifiedCompositionData = new UnifiedCompositionData();
1324 unifiedCompositionData.setNestedTemplateConsolidationData(nestedTemplateConsolidationData);
1325 return unifiedCompositionData;
1328 private void setUnifiedCompositionData(List<String> nodeTemplateIds) {
1329 UnifiedSubstitutionData unifiedSubstitutionData =
1330 context.getUnifiedSubstitutionData().get(mainSTName) == null ? new UnifiedSubstitutionData()
1331 : context.getUnifiedSubstitutionData().get(mainSTName);
1332 Map<String, String> substitutionAbstractNodeIds = new HashMap<>();
1333 for (String id : nodeTemplateIds) {
1334 substitutionAbstractNodeIds.put(id, "FSB2");
1337 substitutionAbstractNodeIds.put("", "FSB1");
1339 unifiedSubstitutionData.setNodesRelatedAbstractNode(substitutionAbstractNodeIds);
1342 private void checkSTResults(
1343 Map<String, ServiceTemplate> expectedOutserviceTemplates,
1344 ServiceTemplate substitutionServiceTemplate,
1345 ServiceTemplate gloablSubstitutionServiceTemplate, ServiceTemplate mainServiceTemplate) {
1346 YamlUtil yamlUtil = new YamlUtil();
1347 if (Objects.nonNull(substitutionServiceTemplate)) {
1348 assertEquals("difference substitution service template: ",
1349 yamlUtil.objectToYaml(expectedOutserviceTemplates.get(substitutionST)),
1350 yamlUtil.objectToYaml(substitutionServiceTemplate));
1352 if (Objects.nonNull(gloablSubstitutionServiceTemplate)) {
1353 assertEquals("difference global substitution service template: ",
1354 yamlUtil.objectToYaml(expectedOutserviceTemplates.get(globalSubstitutionST)),
1355 yamlUtil.objectToYaml(gloablSubstitutionServiceTemplate));
1357 if (Objects.nonNull(mainServiceTemplate)) {
1358 assertEquals("difference main service template: ",
1359 yamlUtil.objectToYaml(expectedOutserviceTemplates.get(mainSTName)),
1360 yamlUtil.objectToYaml(mainServiceTemplate));
1364 private void checkSTResults(
1365 Map<String, ServiceTemplate> expectedOutserviceTemplates,
1366 String nestedSTFileName, ServiceTemplate nestedServiceTemplate,
1367 ServiceTemplate gloablSubstitutionServiceTemplate, ServiceTemplate mainServiceTemplate) {
1368 YamlUtil yamlUtil = new YamlUtil();
1370 if (Objects.nonNull(nestedServiceTemplate)) {
1371 assertEquals("difference nested service template: ",
1372 yamlUtil.objectToYaml(expectedOutserviceTemplates.get(nestedSTFileName)),
1373 yamlUtil.objectToYaml(nestedServiceTemplate));
1375 checkSTResults(expectedOutserviceTemplates, null, gloablSubstitutionServiceTemplate,
1376 mainServiceTemplate);
1380 private void loadInputAndOutputData() throws IOException {
1381 inputServiceTemplates = new HashMap<>();
1382 TestUtils.loadServiceTemplates(inputServiceTemplatesPath, new ToscaExtensionYamlUtil(),
1383 inputServiceTemplates);
1384 expectedOutserviceTemplates = new HashMap<>();
1385 TestUtils.loadServiceTemplates(outputServiceTemplatesPath, new ToscaExtensionYamlUtil(),
1386 expectedOutserviceTemplates);
1390 private void addGetAttInUnifiedCompositionData(EntityConsolidationData entityConsolidationData,
1391 String propertyName, String attributeName,
1392 String nodeTemplateId) {
1393 GetAttrFuncData getAttrFuncData = new GetAttrFuncData();
1394 getAttrFuncData.setAttributeName(attributeName);
1395 getAttrFuncData.setFieldName(propertyName);
1396 entityConsolidationData.addNodesGetAttrIn(nodeTemplateId, getAttrFuncData);
1399 private void addOutputGetAttInUnifiedCompositionData(
1400 EntityConsolidationData entityConsolidationData,
1401 String outParamName, String attributeName) {
1402 GetAttrFuncData getAttrFuncData = new GetAttrFuncData();
1403 getAttrFuncData.setAttributeName(attributeName);
1404 getAttrFuncData.setFieldName(outParamName);
1405 entityConsolidationData.addOutputParamGetAttrIn(getAttrFuncData);
1408 private ConsolidationData createConsolidationData(List<String> computeNodeIds,
1409 List<Pair<String, String>> portTypeToIdList) {
1411 ConsolidationData consolidationData = new ConsolidationData();
1412 String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.FSB2";
1415 .initComputeNodeTypeInConsolidationData(mainSTName, computeNodeTypeName, consolidationData);
1416 TestUtils.initPortConsolidationData(mainSTName, consolidationData);
1418 for (String computeId : computeNodeIds) {
1419 ComputeTemplateConsolidationData computeTemplateConsolidationData =
1420 new ComputeTemplateConsolidationData();
1421 TestUtils.updatePortsInComputeTemplateConsolidationData(portTypeToIdList,
1422 computeTemplateConsolidationData);
1423 consolidationData.getComputeConsolidationData().getFileComputeConsolidationData(mainSTName)
1424 .getTypeComputeConsolidationData(computeNodeTypeName)
1425 .setComputeTemplateConsolidationData(computeId,
1426 computeTemplateConsolidationData);
1429 for (Pair<String, String> portTypeToId : portTypeToIdList) {
1430 consolidationData.getPortConsolidationData().getFilePortConsolidationData(mainSTName)
1431 .setPortTemplateConsolidationData(portTypeToId.getRight(),
1432 new PortTemplateConsolidationData());
1435 return consolidationData;
1438 private UnifiedCompositionData createCompositionData(String computeNodeTemplateId,
1439 List<Pair<String, String>> portTypeToIdList) {
1441 UnifiedCompositionData unifiedCompositionData = new UnifiedCompositionData();
1442 NodeTemplate computeNodeTemplate =
1443 DataModelUtil.getNodeTemplate(inputServiceTemplates.get(mainSTName), computeNodeTemplateId);
1444 Optional<List<RequirementAssignmentData>> requirementAssignmentDataList =
1445 TestUtils.getRequirementAssignmentDataList(computeNodeTemplate, "local_storage");
1446 List<RequirementAssignmentData> requirementAssignmentList =
1447 (requirementAssignmentDataList.isPresent()) ? requirementAssignmentDataList.get() : null;
1448 Map<String, List<RequirementAssignmentData>> volume = null;
1449 if (requirementAssignmentList != null) {
1450 volume = getVolume(requirementAssignmentList);
1452 unifiedCompositionData.setComputeTemplateConsolidationData(
1453 TestUtils.createComputeTemplateConsolidationData(computeNodeTemplateId, portTypeToIdList,
1455 if (portTypeToIdList != null) {
1456 for (Pair<String, String> port : portTypeToIdList) {
1457 NodeTemplate portNodeTemplate =
1458 DataModelUtil.getNodeTemplate(inputServiceTemplates.get(mainSTName), port.getRight());
1460 Map<String, List<RequirementAssignmentData>> nodeConnectedOut =
1461 TestUtils.getNodeConnectedOutList(portNodeTemplate, "link");
1462 PortTemplateConsolidationData portTemplateConsolidationData =
1463 TestUtils.createPortTemplateConsolidationData(port.getRight());
1464 portTemplateConsolidationData.setNodesConnectedOut(nodeConnectedOut);
1465 unifiedCompositionData.addPortTemplateConsolidationData(portTemplateConsolidationData);
1468 return unifiedCompositionData;
1471 private List<UnifiedCompositionData> createAbstractSubstituteCompositionDataComputeAndPort() {
1472 List<UnifiedCompositionData> unifiedCompositionDataList = new ArrayList<>();
1473 UnifiedCompositionData data1 = createComputeUnifiedCompositionData("FSB1_template");
1474 UnifiedCompositionData data2 = createComputeUnifiedCompositionData("FSB2_template");
1476 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
1477 ImmutablePair<String, String> portTypePair1 = new ImmutablePair<>("FSB1_Internal",
1479 ImmutablePair<String, String> portTypePair2 = new ImmutablePair<>("FSB2_Internal",
1481 portTypeToIdList.add(portTypePair1);
1482 portTypeToIdList.add(portTypePair2);
1483 addPortDataToCompositionData(portTypeToIdList, data1);
1484 portTypeToIdList.remove(portTypePair1);
1485 portTypeToIdList.remove(portTypePair2);
1486 portTypeToIdList.add(new ImmutablePair<>("FSB1_Internal", "FSB1_Internal2"));
1487 portTypeToIdList.add(new ImmutablePair<>("FSB2_Internal", "FSB2_Internal2"));
1488 addPortDataToCompositionData(portTypeToIdList, data2);
1490 unifiedCompositionDataList.add(data1);
1491 unifiedCompositionDataList.add(data2);
1492 return unifiedCompositionDataList;
1496 private UnifiedCompositionData createComputeUnifiedCompositionData(String computeNodeTemplateId) {
1497 NodeTemplate computeNodeTemplate =
1498 DataModelUtil.getNodeTemplate(inputServiceTemplates.get(mainSTName), computeNodeTemplateId);
1499 Optional<List<RequirementAssignmentData>> requirementAssignmentDataList =
1500 TestUtils.getRequirementAssignmentDataList(computeNodeTemplate, "local_storage");
1501 Map<String, List<RequirementAssignmentData>> volume = null;
1502 if (requirementAssignmentDataList.isPresent()) {
1503 volume = getVolume(requirementAssignmentDataList.get());
1505 UnifiedCompositionData data = new UnifiedCompositionData();
1506 Map<String, List<RequirementAssignmentData>> computeNodeConnectedOut =
1507 TestUtils.getNodeConnectedOutList(computeNodeTemplate, "dependency");
1508 Map<String, List<RequirementAssignmentData>> computeNodeConnectedIn =
1510 .getNodeConnectedInList(computeNodeTemplateId, inputServiceTemplates.get(mainSTName),
1512 ComputeTemplateConsolidationData computeTemplateConsolidationData = TestUtils
1513 .createComputeTemplateConsolidationData(computeNodeTemplateId, null, volume);
1514 List<String> computeNodeGroups =
1515 TestUtils.getGroupsForNode(inputServiceTemplates.get(mainSTName),
1516 computeNodeTemplateId);
1517 if (!computeNodeGroups.isEmpty()) {
1518 computeTemplateConsolidationData.setGroupIds(computeNodeGroups);
1520 computeTemplateConsolidationData.setNodesConnectedOut(computeNodeConnectedOut);
1521 computeTemplateConsolidationData.setNodesConnectedIn(computeNodeConnectedIn);
1522 data.setComputeTemplateConsolidationData(computeTemplateConsolidationData);
1526 private void addPortDataToCompositionData(List<Pair<String, String>> portTypeToIdList,
1527 UnifiedCompositionData data) {
1528 ComputeTemplateConsolidationData computeTemplateConsolidationData = data
1529 .getComputeTemplateConsolidationData();
1531 for (Pair<String, String> port : portTypeToIdList) {
1532 NodeTemplate portNodeTemplate =
1533 DataModelUtil.getNodeTemplate(inputServiceTemplates.get(mainSTName), port.getRight());
1535 Optional<List<RequirementAssignmentData>> bindingReqList =
1536 TestUtils.getRequirementAssignmentDataList(portNodeTemplate, "binding");
1538 if (bindingReqList.isPresent()) {
1539 for (RequirementAssignmentData reqData : bindingReqList.get()) {
1540 String nodeId = reqData.getRequirementAssignment().getNode();
1541 if (nodeId.equals(computeTemplateConsolidationData.getNodeTemplateId())) {
1542 computeTemplateConsolidationData.addPort(port.getLeft(), port.getRight());
1546 Map<String, List<RequirementAssignmentData>> portNodeConnectedOut =
1547 TestUtils.getNodeConnectedOutList(portNodeTemplate, "link");
1548 PortTemplateConsolidationData portTemplateConsolidationData = TestUtils
1549 .createPortTemplateConsolidationData(port.getRight());
1550 portTemplateConsolidationData.setNodesConnectedOut(portNodeConnectedOut);
1552 //Add node connected in info to test data
1553 Map<String, List<RequirementAssignmentData>> portNodeConnectedIn =
1554 TestUtils.getNodeConnectedInList(port.getRight(), inputServiceTemplates.get(mainSTName),
1556 portTemplateConsolidationData.setNodesConnectedIn(portNodeConnectedIn);
1558 //Add group infromation for ports
1559 List<String> portGroups =
1560 TestUtils.getGroupsForNode(inputServiceTemplates.get(mainSTName), port.getRight());
1561 portTemplateConsolidationData.setGroupIds(portGroups);
1562 data.addPortTemplateConsolidationData(portTemplateConsolidationData);
1565 addGetAttrForCompute(data);
1566 addGetAttrForPort(data);
1569 private Map<String, List<RequirementAssignmentData>> getVolume(
1570 List<RequirementAssignmentData> requirementAssignmentList) {
1571 Map<String, List<RequirementAssignmentData>> volume = new HashMap<>();
1572 for (RequirementAssignmentData requirementAssignmentData : requirementAssignmentList) {
1573 String volumeNodeTemplateId = requirementAssignmentData.getRequirementAssignment().getNode();
1574 volume.computeIfAbsent(volumeNodeTemplateId, k -> new ArrayList<>());
1575 volume.get(volumeNodeTemplateId).add(requirementAssignmentData);
1580 private void addGetAttrForPort(UnifiedCompositionData unifiedCompositionData) {
1581 for (PortTemplateConsolidationData portTemplateConsolidationData : unifiedCompositionData
1582 .getPortTemplateConsolidationDataList()) {
1583 if (portTemplateConsolidationData.getNodeTemplateId().equals("FSB1_Internal1")) {
1584 addGetAttInUnifiedCompositionData(portTemplateConsolidationData, "network_name",
1585 "network_id", "jsa_net1");
1586 addGetAttInUnifiedCompositionData(portTemplateConsolidationData, "size",
1587 "device_owner", "cmaui_volume1");
1588 } else if (portTemplateConsolidationData.getNodeTemplateId().equals("FSB2_Internal2")) {
1589 addGetAttInUnifiedCompositionData(portTemplateConsolidationData, "tenant_id",
1590 "network_id", "jsa_net1");
1591 addGetAttInUnifiedCompositionData(portTemplateConsolidationData, "qos_policy",
1592 "network_id", "jsa_net1");
1593 addGetAttInUnifiedCompositionData(portTemplateConsolidationData, "volume_type",
1594 "tenant_id", "cmaui_volume1");
1595 } else if (portTemplateConsolidationData.getNodeTemplateId().equals("FSB1_OAM")) {
1596 addGetAttInUnifiedCompositionData(portTemplateConsolidationData, "size",
1597 "status", "cmaui_volume1");
1602 private void addGetAttrForPort2(UnifiedCompositionData unifiedCompositionData) {
1603 for (PortTemplateConsolidationData portTemplateConsolidationData : unifiedCompositionData
1604 .getPortTemplateConsolidationDataList()) {
1605 if (portTemplateConsolidationData.getNodeTemplateId().equals("FSB2_Internal1")) {
1606 addGetAttInUnifiedCompositionData(portTemplateConsolidationData, "volume_type",
1607 "tenant_id", "cmaui_volume3");
1608 } else if (portTemplateConsolidationData.getNodeTemplateId().equals("FSB1_Internal2")) {
1609 addGetAttInUnifiedCompositionData(portTemplateConsolidationData, "size",
1610 "device_owner", "cmaui_volume3");
1611 addGetAttInUnifiedCompositionData(portTemplateConsolidationData, "size",
1612 "status", "cmaui_volume1");
1617 private void addGetAttrForPortInnerUC(UnifiedCompositionData unifiedCompositionData) {
1618 for (PortTemplateConsolidationData portTemplateConsolidationData : unifiedCompositionData
1619 .getPortTemplateConsolidationDataList()) {
1620 if (portTemplateConsolidationData.getNodeTemplateId().equals("FSB1_Internal1")) {
1621 addGetAttInUnifiedCompositionData(portTemplateConsolidationData, "availability_zone",
1622 "myAttr", "FSB1_template");
1623 addGetAttInUnifiedCompositionData(portTemplateConsolidationData, "metadata",
1624 "myAttr", "FSB1_template");
1625 addGetAttInUnifiedCompositionData(portTemplateConsolidationData, "name",
1626 "myAttr", "FSB1_template");
1627 addGetAttInUnifiedCompositionData(portTemplateConsolidationData, "availability_zone",
1628 "tenant_id", "FSB1_template");
1633 private void addGetAttrForCompute(UnifiedCompositionData unifiedCompositionData) {
1634 addGetAttInUnifiedCompositionData(unifiedCompositionData.getComputeTemplateConsolidationData(),
1635 "dhcp_agent_ids", "addresses", "jsa_net1");
1636 addGetAttInUnifiedCompositionData(unifiedCompositionData.getComputeTemplateConsolidationData(),
1637 "volume_type", "addresses", "cmaui_volume1");
1638 addGetAttInUnifiedCompositionData(unifiedCompositionData.getComputeTemplateConsolidationData(),
1639 "size", "accessIPv6", "cmaui_volume2");
1642 private void addGetAttrForCompute2(UnifiedCompositionData unifiedCompositionData) {
1643 addGetAttInUnifiedCompositionData(unifiedCompositionData.getComputeTemplateConsolidationData(),
1644 "volume_type", "addresses", "cmaui_volume3");
1645 addGetAttInUnifiedCompositionData(unifiedCompositionData.getComputeTemplateConsolidationData(),
1646 "size", "user_data_format", "cmaui_volume3");
1649 private void addOutputGetAttrInForComputeNoConsolidation(
1650 UnifiedCompositionData unifiedCompositionData) {
1651 addOutputGetAttInUnifiedCompositionData(unifiedCompositionData
1652 .getComputeTemplateConsolidationData(), "simpleOutput1", "accessIPv4");
1653 addOutputGetAttInUnifiedCompositionData(unifiedCompositionData
1654 .getComputeTemplateConsolidationData(), "simpleOutput2", "addresses");
1655 addOutputGetAttInUnifiedCompositionData(unifiedCompositionData
1656 .getComputeTemplateConsolidationData(), "complexOutput1", "addresses");
1657 addOutputGetAttInUnifiedCompositionData(unifiedCompositionData
1658 .getComputeTemplateConsolidationData(), "complexOutput3", "accessIPv6");
1662 private void addOutputGetAttrInForCompute1WithConsolidation(
1663 UnifiedCompositionData unifiedCompositionData) {
1664 addOutputGetAttInUnifiedCompositionData(unifiedCompositionData
1665 .getComputeTemplateConsolidationData(), "simpleOutput1", "accessIPv4");
1666 addOutputGetAttInUnifiedCompositionData(unifiedCompositionData
1667 .getComputeTemplateConsolidationData(), "complexOutput1", "addresses");
1671 private void addOutputGetAttrInForCompute2WithConsolidation(
1672 UnifiedCompositionData unifiedCompositionData) {
1673 addOutputGetAttInUnifiedCompositionData(unifiedCompositionData
1674 .getComputeTemplateConsolidationData(), "simpleOutput2", "addresses");
1677 private void addOutputGetAttrInForPortNoConsolidation(
1678 UnifiedCompositionData unifiedCompositionData) {
1679 for (PortTemplateConsolidationData portTemplateConsolidationData : unifiedCompositionData
1680 .getPortTemplateConsolidationDataList()) {
1681 if (portTemplateConsolidationData.getNodeTemplateId().equals("FSB1_Internal1")) {
1682 addOutputGetAttInUnifiedCompositionData(portTemplateConsolidationData, "complexOutput2",
1684 addOutputGetAttInUnifiedCompositionData(portTemplateConsolidationData, "complexOutput3",
1686 } else if (portTemplateConsolidationData.getNodeTemplateId().equals("FSB2_Internal2")) {
1687 addOutputGetAttInUnifiedCompositionData(portTemplateConsolidationData, "complexOutput1",
1689 } else if (portTemplateConsolidationData.getNodeTemplateId().equals("FSB1_OAM")) {
1690 addOutputGetAttInUnifiedCompositionData(portTemplateConsolidationData, "complexOutput2",
1691 "user_data_format");
1696 private void addOutputGetAttrInForPortWithConsolidation1(
1697 UnifiedCompositionData unifiedCompositionData) {
1698 for (PortTemplateConsolidationData portTemplateConsolidationData : unifiedCompositionData
1699 .getPortTemplateConsolidationDataList()) {
1700 if (portTemplateConsolidationData.getNodeTemplateId().equals("FSB2_Internal2")) {
1701 addOutputGetAttInUnifiedCompositionData(portTemplateConsolidationData, "complexOutput1",
1703 } else if (portTemplateConsolidationData.getNodeTemplateId().equals("FSB1_Internal1")) {
1704 addOutputGetAttInUnifiedCompositionData(portTemplateConsolidationData, "complexOutput3",
1710 private void addOutputGetAttrInForPortWithConsolidation2(
1711 UnifiedCompositionData unifiedCompositionData) {
1712 for (PortTemplateConsolidationData portTemplateConsolidationData : unifiedCompositionData
1713 .getPortTemplateConsolidationDataList()) {
1714 if (portTemplateConsolidationData.getNodeTemplateId().equals("FSB2_Internal1")) {
1715 addOutputGetAttInUnifiedCompositionData(portTemplateConsolidationData, "complexOutput2",
1716 "user_data_format");
1717 } else if (portTemplateConsolidationData.getNodeTemplateId().equals("FSB1_Internal2")) {
1718 addOutputGetAttInUnifiedCompositionData(portTemplateConsolidationData, "complexOutput2",
1724 private NodeTemplate getMockNode(String path) throws IOException {
1725 URL resource = this.getClass().getResource(path);
1726 YamlUtil yamlUtil = new YamlUtil();
1727 return yamlUtil.yamlToObject(resource.openStream(), NodeTemplate.class);