1 package org.openecomp.sdc.translator.services.heattotosca;
3 import org.apache.commons.lang3.tuple.ImmutablePair;
4 import org.apache.commons.lang3.tuple.Pair;
5 import org.junit.Before;
6 import org.junit.Ignore;
8 import org.mockito.InjectMocks;
9 import org.mockito.Mockito;
10 import org.mockito.MockitoAnnotations;
11 import org.mockito.Spy;
12 import org.openecomp.sdc.tosca.datatypes.model.NodeTemplate;
13 import org.openecomp.sdc.tosca.datatypes.model.ServiceTemplate;
14 import org.openecomp.sdc.tosca.services.DataModelUtil;
15 import org.openecomp.sdc.tosca.services.ToscaExtensionYamlUtil;
16 import org.openecomp.sdc.tosca.services.YamlUtil;
17 import org.openecomp.sdc.translator.TestUtils;
18 import org.openecomp.sdc.translator.datatypes.heattotosca.TranslationContext;
19 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.UnifiedCompositionData;
20 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.UnifiedCompositionEntity;
21 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.UnifiedSubstitutionData;
22 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.ComputeTemplateConsolidationData;
23 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.ConsolidationData;
24 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.EntityConsolidationData;
25 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.GetAttrFuncData;
26 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.NestedTemplateConsolidationData;
27 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.PortTemplateConsolidationData;
28 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.RequirementAssignmentData;
29 import org.openecomp.sdc.translator.services.heattotosca.impl.unifiedcomposition.UnifiedCompositionSingleSubstitution;
31 import java.io.IOException;
33 import java.util.ArrayList;
34 import java.util.Arrays;
35 import java.util.Collections;
36 import java.util.HashMap;
37 import java.util.LinkedList;
38 import java.util.List;
40 import java.util.Objects;
41 import java.util.Optional;
43 import static org.junit.Assert.assertEquals;
44 import static org.mockito.Matchers.anyObject;
45 import static org.mockito.Matchers.anyString;
47 public class UnifiedCompositionServiceTest {
48 private static final String BASE_DIRECTORY = "/mock/services/heattotosca/unifiedComposition/";
51 UnifiedCompositionService unifiedCompositionService;
53 TranslationContext context;
55 private static final String IN_PREFIX = "/in";
56 private static final String OUT_PREFIX = "/out";
57 private static final String FSB1_template = "FSB1_template";
58 private static final String FSB2_template = "FSB2_template";
59 private static final String FSB3_template = "FSB3_template";
60 private static final String FSB1_INTERNAL = "FSB1_Internal";
61 private static final String FSB2_INTERNAL = "FSB2_Internal";
62 private static final String FSB1_INTERNAL1 = "FSB1_Internal1";
63 private static final String FSB1_INTERNAL2 = "FSB1_Internal2";
64 private static final String FSB2_INTERNAL1 = "FSB2_Internal1";
65 private static final String FSB2_INTERNAL2 = "FSB2_Internal2";
66 private static final String PORT = "port";
67 private static final String PORT1 = "port1";
68 private static final String PORT2 = "port2";
69 private static final String FSB1_OAM = "FSB1_OAM";
70 private static final String ORG_OPENECOMP_RESOURCE_ABSTRACT_NODES_FSB1 = "org.openecomp.resource.abstract.nodes.FSB1";
71 private static final String ORG_OPENECOMP_RESOURCE_VFC_NODES_HEAT_FSB = "org.openecomp.resource.vfc.nodes.heat.FSB";
72 private static final String DEVICE_OWNER = "device_owner";
73 private static final String COMPLEX_OUTPUT1 = "complexOutput1";
74 private static final String COMPLEX_OUTPUT2 = "complexOutput2";
75 private static final String COMPLEX_OUTPUT3 = "complexOutput3";
76 private static final String USER_DATA_FORMAT = "user_data_format";
77 private static final String TENANT_ID = "tenant_id";
78 private static final String SIMPLE_OUTPUT1 = "simpleOutput1";
79 private static final String SIMPLE_OUTPUT2 = "simpleOutput2";
80 private static final String ADDRESSES = "addresses";
81 private static final String CMAUI_VOLUME1 = "cmaui_volume1";
82 private static final String CMAUI_VOLUME2 = "cmaui_volume2";
83 private static final String CMAUI_VOLUME3 = "cmaui_volume3";
84 private static final String ACCESS_IPv4 = "accessIPv4";
85 private static final String ACCESS_IPv6 = "accessIPv6";
86 private static final String FSB1 = "FSB1";
87 private static final String MYATTR = "myAttr";
88 private static final String VOLUME_TYPE = "volume_type";
89 private static final String SIZE = "size";
90 private static final String NETWORK_ID = "network_id";
91 private static final String JSA_NET1 = "jsa_net1";
92 private static final String STATUS = "status";
93 private static final String AVAILABILITY_ZONE = "availability_zone";
94 private static final String DEPENDENCY = "dependency";
96 Map<String, ServiceTemplate> inputServiceTemplates;
97 Map<String, ServiceTemplate> expectedOutserviceTemplates;
99 private static final String MAIN_SERVICE_TEMPLATE_YAML = "MainServiceTemplate.yaml";
100 private static final String GLOBAL_SUBSTITUTION_TYPES_SERVICE_TEMPLATE_YAML =
101 "GlobalSubstitutionTypesServiceTemplate.yaml";
104 public void setUp() {
105 MockitoAnnotations.initMocks(this);
110 public void createUnifiedComposition() throws Exception {
115 public void createSubstitutionStNoConsolidationData() throws Exception {
116 String path = BASE_DIRECTORY + "creSubstitutionServiceTemplate/NoOutParamDuplicatePortType";
117 loadInputAndOutputData(path);
118 ServiceTemplate expectedServiceTemplate =
119 TestUtils.loadServiceTemplate(BASE_DIRECTORY +
120 "creSubstitutionServiceTemplate/NoOutParamDuplicatePortType" + OUT_PREFIX);
122 List<UnifiedCompositionData> unifiedCompositionDataList = new ArrayList<>();
123 Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
124 .createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
125 unifiedCompositionDataList,
126 context, "org.openecomp.resource.vfc.nodes.heat.FSB1", null);
127 assertEquals(false, substitutionServiceTemplate.isPresent());
131 public void createSubstitutionStNoOutputParamAndDuplicatePortType() throws Exception {
132 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
133 portTypeToIdList.add(new ImmutablePair<>(FSB1_INTERNAL, FSB1_INTERNAL1));
134 portTypeToIdList.add(new ImmutablePair<>(FSB2_INTERNAL, FSB2_INTERNAL2));
135 portTypeToIdList.add(new ImmutablePair<>(FSB2_INTERNAL, FSB2_INTERNAL1));
136 portTypeToIdList.add(new ImmutablePair<>(FSB1_OAM, FSB1_OAM));
138 loadInputAndOutputData(BASE_DIRECTORY + "creSubstitutionServiceTemplate/NoOutParamDuplicatePortType");
139 UnifiedCompositionData unifiedCompositionData =
140 createCompositionData(FSB1_template, portTypeToIdList);
141 List<UnifiedCompositionData> unifiedCompositionDataList = new ArrayList<>();
142 unifiedCompositionDataList.add(unifiedCompositionData);
144 Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
145 .createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
146 unifiedCompositionDataList,
147 context, ORG_OPENECOMP_RESOURCE_ABSTRACT_NODES_FSB1, null);
148 assertEquals(true, substitutionServiceTemplate.isPresent());
149 substitutionServiceTemplate
151 subServiceTemplate -> checkSTResults(expectedOutserviceTemplates,
152 subServiceTemplate, context.getGlobalSubstitutionServiceTemplate(), null));
156 public void createSubstitutionStWithOutputParamNoConsolidation() throws Exception {
157 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
158 portTypeToIdList.add(new ImmutablePair<>(FSB1_INTERNAL, FSB1_INTERNAL1));
159 portTypeToIdList.add(new ImmutablePair<>(FSB2_INTERNAL, FSB2_INTERNAL2));
160 portTypeToIdList.add(new ImmutablePair<>(FSB1_OAM, FSB1_OAM));
162 loadInputAndOutputData(BASE_DIRECTORY + "creSubstitutionServiceTemplate/WithOutputParameters/noConsolidation");
163 UnifiedCompositionData unifiedCompositionData =
164 createCompositionData(FSB1_template, portTypeToIdList);
165 addGetAttrForCompute(unifiedCompositionData);
166 addGetAttrForPort(unifiedCompositionData);
167 List<UnifiedCompositionData> unifiedCompositionDataList = new ArrayList<>();
168 unifiedCompositionDataList.add(unifiedCompositionData);
170 Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
171 .createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
172 unifiedCompositionDataList,
173 context, ORG_OPENECOMP_RESOURCE_ABSTRACT_NODES_FSB1, null);
174 assertEquals(true, substitutionServiceTemplate.isPresent());
175 substitutionServiceTemplate
177 subServiceTemplate -> checkSTResults(expectedOutserviceTemplates,
178 subServiceTemplate, context.getGlobalSubstitutionServiceTemplate(), null));
182 public void createSubstitutionStWithOutputParamWithConsolidation() throws Exception {
183 List<UnifiedCompositionData> unifiedCompositionDataList = new ArrayList<>();
184 List<Pair<String, String>> portTypeToIdList1 = new ArrayList<>();
185 portTypeToIdList1.add(new ImmutablePair<>(FSB1_INTERNAL, FSB1_INTERNAL1));
186 portTypeToIdList1.add(new ImmutablePair<>(FSB2_INTERNAL, FSB2_INTERNAL2));
188 loadInputAndOutputData(BASE_DIRECTORY + "creSubstitutionServiceTemplate/WithOutputParameters/consolidation");
189 UnifiedCompositionData unifiedCompositionData1 =
190 createCompositionData(FSB1_template, portTypeToIdList1);
191 addGetAttrForCompute(unifiedCompositionData1);
192 addGetAttrForPort(unifiedCompositionData1);
193 unifiedCompositionDataList.add(unifiedCompositionData1);
195 List<Pair<String, String>> portTypeToIdList2 = new ArrayList<>();
196 portTypeToIdList2.add(new ImmutablePair<>(FSB1_INTERNAL, FSB1_INTERNAL2));
197 portTypeToIdList2.add(new ImmutablePair<>(FSB2_INTERNAL, FSB2_INTERNAL1));
199 UnifiedCompositionData unifiedCompositionData2 =
200 createCompositionData(FSB2_template, portTypeToIdList2);
201 addGetAttrForCompute2(unifiedCompositionData2);
202 addGetAttrForPort2(unifiedCompositionData2);
203 unifiedCompositionDataList.add(unifiedCompositionData2);
205 Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
206 .createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
207 unifiedCompositionDataList,
208 context, ORG_OPENECOMP_RESOURCE_ABSTRACT_NODES_FSB1, null);
209 assertEquals(true, substitutionServiceTemplate.isPresent());
210 substitutionServiceTemplate
212 subServiceTemplate -> checkSTResults(expectedOutserviceTemplates,
213 subServiceTemplate, context.getGlobalSubstitutionServiceTemplate(), null));
217 public void createSubstitutionStNoPorts() throws Exception {
218 loadInputAndOutputData(BASE_DIRECTORY + "creSubstitutionServiceTemplate/NoPorts");
220 UnifiedCompositionData unifiedCompositionData = new UnifiedCompositionData();
221 unifiedCompositionData.setComputeTemplateConsolidationData(
222 TestUtils.createComputeTemplateConsolidationData(FSB1_template, null, null));
223 List<UnifiedCompositionData> unifiedCompositionDataList = new ArrayList<>();
224 unifiedCompositionDataList.add(unifiedCompositionData);
226 Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
227 .createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
228 unifiedCompositionDataList,
229 context, ORG_OPENECOMP_RESOURCE_ABSTRACT_NODES_FSB1, null);
230 assertEquals(true, substitutionServiceTemplate.isPresent());
231 substitutionServiceTemplate
233 subServiceTemplate -> checkSTResults(expectedOutserviceTemplates,
234 subServiceTemplate, context.getGlobalSubstitutionServiceTemplate(), null));
239 public void createSubstitutionStWithIndex() throws Exception {
240 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
241 portTypeToIdList.add(new ImmutablePair<>(FSB1_INTERNAL, FSB1_INTERNAL1));
242 portTypeToIdList.add(new ImmutablePair<>(FSB2_INTERNAL, FSB2_INTERNAL2));
243 portTypeToIdList.add(new ImmutablePair<>(FSB1_OAM, FSB1_OAM));
245 loadInputAndOutputData(BASE_DIRECTORY + "creSubstitutionServiceTemplate/WithIndex");
246 UnifiedCompositionData unifiedCompositionData =
247 createCompositionData(FSB1_template, portTypeToIdList);
248 List<UnifiedCompositionData> unifiedCompositionDataList = new ArrayList<>();
249 unifiedCompositionDataList.add(unifiedCompositionData);
251 Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
252 .createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
253 unifiedCompositionDataList,
254 context,ORG_OPENECOMP_RESOURCE_ABSTRACT_NODES_FSB1, 2);
255 assertEquals(true, substitutionServiceTemplate.isPresent());
256 substitutionServiceTemplate
258 subServiceTemplate -> checkSTResults(expectedOutserviceTemplates,
259 subServiceTemplate, context.getGlobalSubstitutionServiceTemplate(), null));
264 public void createAbstractSubstituteOneComputeMultiplePortsDifferentTypesTest() throws Exception {
265 loadInputAndOutputData(BASE_DIRECTORY + "createAbstractSubstitute/oneComputeMultiplePortsDiffType");
267 UnifiedCompositionData data = createComputeUnifiedCompositionData(FSB1_template);
268 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
269 portTypeToIdList.add(new ImmutablePair<>(FSB1_INTERNAL, FSB1_INTERNAL1));
270 portTypeToIdList.add(new ImmutablePair<>(FSB2_INTERNAL, FSB2_INTERNAL2));
271 portTypeToIdList.add(new ImmutablePair<>(FSB1_OAM, FSB1_OAM));
272 addPortDataToCompositionData(portTypeToIdList, data);
274 List<UnifiedCompositionData> unifiedCompositionDataList = new LinkedList<>();
275 unifiedCompositionDataList.add(data);
276 Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
277 .createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
278 unifiedCompositionDataList,
279 context, ORG_OPENECOMP_RESOURCE_VFC_NODES_HEAT_FSB, null);
280 assertEquals(true, substitutionServiceTemplate.isPresent());
281 if (substitutionServiceTemplate.isPresent()) {
282 String substitutionNodeTypeId =
283 unifiedCompositionService.getSubstitutionNodeTypeId(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
284 unifiedCompositionDataList.get(0), null, context);
285 String nodeTemplateId = unifiedCompositionService.createAbstractSubstituteNodeTemplate(
286 inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML), substitutionServiceTemplate.get(),
287 unifiedCompositionDataList, substitutionNodeTypeId,
289 validateAbstractSubstitute();
295 public void createAbstractSubstituteOneComputeMultiplePortsSameTypesTest() throws Exception {
296 loadInputAndOutputData(BASE_DIRECTORY + "createAbstractSubstitute/oneComputeMultiplePortsSameType");
298 UnifiedCompositionData data = createComputeUnifiedCompositionData(FSB1_template);
299 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
300 portTypeToIdList.add(new ImmutablePair<>(FSB1_INTERNAL, FSB1_INTERNAL1));
301 portTypeToIdList.add(new ImmutablePair<>(FSB1_INTERNAL, FSB1_INTERNAL2));
302 addPortDataToCompositionData(portTypeToIdList, data);
304 List<UnifiedCompositionData> unifiedCompositionDataList = new LinkedList<>();
305 unifiedCompositionDataList.add(data);
306 Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
307 .createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
308 unifiedCompositionDataList
309 , context, ORG_OPENECOMP_RESOURCE_VFC_NODES_HEAT_FSB, null);
311 assertEquals(true, substitutionServiceTemplate.isPresent());
312 if (substitutionServiceTemplate.isPresent()) {
313 String substitutionNodeTypeId =
314 unifiedCompositionService.getSubstitutionNodeTypeId(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
315 unifiedCompositionDataList.get(0), null, context);
316 String nodeTemplateId = unifiedCompositionService.createAbstractSubstituteNodeTemplate(
317 inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML), substitutionServiceTemplate.get(),
318 unifiedCompositionDataList, substitutionNodeTypeId,
320 validateAbstractSubstitute();
326 public void createAbstractSubstituteTwoComputesMultiplePorts() throws Exception {
327 loadInputAndOutputData(BASE_DIRECTORY + "createAbstractSubstitute/twoComputesMultiplePorts");
328 List<UnifiedCompositionData> unifiedCompositionDataList =
329 createAbstractSubstituteCompositionDataComputeAndPort();
330 Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
331 .createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
332 unifiedCompositionDataList
333 , context, ORG_OPENECOMP_RESOURCE_VFC_NODES_HEAT_FSB, null);
334 assertEquals(true, substitutionServiceTemplate.isPresent());
335 if (substitutionServiceTemplate.isPresent()) {
336 String substitutionNodeTypeId =
337 unifiedCompositionService.getSubstitutionNodeTypeId(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
338 unifiedCompositionDataList.get(0), null, context);
339 String nodeTemplateId = unifiedCompositionService.createAbstractSubstituteNodeTemplate(
340 inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML), substitutionServiceTemplate.get(),
341 unifiedCompositionDataList, substitutionNodeTypeId,
343 validateAbstractSubstitute();
349 public void updNodesConnectedOutWithConsolidationTest() throws Exception {
350 loadInputAndOutputData(BASE_DIRECTORY + "updNodesConnectedOut/consolidation");
351 List<UnifiedCompositionData> unifiedCompositionDataList =
352 createAbstractSubstituteCompositionDataComputeAndPort();
353 Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
354 .createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
355 unifiedCompositionDataList
356 , context, ORG_OPENECOMP_RESOURCE_VFC_NODES_HEAT_FSB, null);
357 assertEquals(true, substitutionServiceTemplate.isPresent());
358 if (substitutionServiceTemplate.isPresent()) {
359 String substitutionNodeTypeId =
360 unifiedCompositionService.getSubstitutionNodeTypeId(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
361 unifiedCompositionDataList.get(0), null, context);
362 String nodeTemplateId = unifiedCompositionService.createAbstractSubstituteNodeTemplate(
363 inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML), substitutionServiceTemplate.get(),
364 unifiedCompositionDataList, substitutionNodeTypeId,
367 unifiedCompositionService
368 .updateCompositionConnectivity(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
369 unifiedCompositionDataList, context);
370 validateAbstractSubstitute();
374 private void validateAbstractSubstitute() {
375 YamlUtil yamlUtil = new YamlUtil();
376 assertEquals(yamlUtil.objectToYaml(expectedOutserviceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML)), yamlUtil
377 .objectToYaml(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML)));
382 public void updNodesConnectedOutNoConsolidationTest() throws Exception {
383 loadInputAndOutputData(BASE_DIRECTORY + "updNodesConnectedOut/noConsolidation");
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<>(FSB1_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(MAIN_SERVICE_TEMPLATE_YAML),
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(MAIN_SERVICE_TEMPLATE_YAML),
403 unifiedCompositionDataList.get(0), null, context);
404 String nodeTemplateId = unifiedCompositionService.createAbstractSubstituteNodeTemplate(
405 inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML), substitutionServiceTemplate.get(),
406 unifiedCompositionDataList, substitutionNodeTypeId,
409 unifiedCompositionService
410 .updateCompositionConnectivity(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
411 unifiedCompositionDataList, context);
412 validateAbstractSubstitute();
418 public void updNodesConnectedInNoConsolidationTest() throws Exception {
419 loadInputAndOutputData(BASE_DIRECTORY + "updNodesConnectedIn/noConsolidation");
421 UnifiedCompositionData data = createComputeUnifiedCompositionData("QRouter");
422 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
423 portTypeToIdList.add(new ImmutablePair<>("cdr_network_port", "cdr_network_port"));
425 .add(new ImmutablePair<>("oam_private_net_network_port", "oam_private_net_network_port"));
426 addPortDataToCompositionData(portTypeToIdList, data);
428 List<UnifiedCompositionData> unifiedCompositionDataList = new LinkedList<>();
429 unifiedCompositionDataList.add(data);
431 Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
432 .createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
433 unifiedCompositionDataList
434 , context, "org.openecomp.resource.abstract.nodes.QRouter", null);
436 String substitutionNodeTypeId =
437 unifiedCompositionService.getSubstitutionNodeTypeId(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
438 unifiedCompositionDataList.get(0), null, context);
439 String nodeTemplateId = unifiedCompositionService.createAbstractSubstituteNodeTemplate(
440 inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML), substitutionServiceTemplate.get(),
441 unifiedCompositionDataList, substitutionNodeTypeId,
444 unifiedCompositionService
445 .updateCompositionConnectivity(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
446 unifiedCompositionDataList, context);
447 validateAbstractSubstitute();
452 public void updNodesConnectedInWithConsolidationTest() throws Exception {
453 loadInputAndOutputData(BASE_DIRECTORY + "updNodesConnectedIn/consolidation");
455 List<UnifiedCompositionData> unifiedCompositionDataList =
456 createAbstractSubstituteCompositionDataComputeAndPort();
458 Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
459 .createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
460 unifiedCompositionDataList
461 , context, "org.openecomp.resource.abstract.nodes.FSB", null);
463 String substitutionNodeTypeId =
464 unifiedCompositionService.getSubstitutionNodeTypeId(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
465 unifiedCompositionDataList.get(0), null, context);
466 String nodeTemplateId = unifiedCompositionService.createAbstractSubstituteNodeTemplate(
467 inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML), substitutionServiceTemplate.get(),
468 unifiedCompositionDataList, substitutionNodeTypeId,
471 unifiedCompositionService
472 .updateCompositionConnectivity(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
473 unifiedCompositionDataList, context);
474 validateAbstractSubstitute();
479 public void updVolumesNoConsolidationTest() throws Exception {
480 loadInputAndOutputData(BASE_DIRECTORY + "updVolumes/noConsolidation");
482 UnifiedCompositionData data = createComputeUnifiedCompositionData(FSB1_template);
483 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
484 portTypeToIdList.add(new ImmutablePair<>(FSB1_INTERNAL, FSB1_INTERNAL1));
485 portTypeToIdList.add(new ImmutablePair<>(FSB2_INTERNAL, FSB2_INTERNAL2));
486 portTypeToIdList.add(new ImmutablePair<>(FSB1_OAM, FSB1_OAM));
487 addPortDataToCompositionData(portTypeToIdList, data);
489 List<UnifiedCompositionData> unifiedCompositionDataList = new LinkedList<>();
490 unifiedCompositionDataList.add(data);
492 Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
493 .createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
494 unifiedCompositionDataList
495 , context, ORG_OPENECOMP_RESOURCE_VFC_NODES_HEAT_FSB, null);
497 String substitutionNodeTypeId =
498 unifiedCompositionService.getSubstitutionNodeTypeId(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
499 unifiedCompositionDataList.get(0), null, context);
500 String nodeTemplateId = unifiedCompositionService.createAbstractSubstituteNodeTemplate(
501 inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML), substitutionServiceTemplate.get(),
502 unifiedCompositionDataList, substitutionNodeTypeId,
505 unifiedCompositionService
506 .updateCompositionConnectivity(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
507 unifiedCompositionDataList, context);
508 validateAbstractSubstitute();
513 public void updVolumesWithConsolidationTest() throws Exception {
514 loadInputAndOutputData(BASE_DIRECTORY + "updVolumes/consolidation");
515 List<UnifiedCompositionData> unifiedCompositionDataList =
516 createAbstractSubstituteCompositionDataComputeAndPort();
517 Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
518 .createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
519 unifiedCompositionDataList
520 , context, ORG_OPENECOMP_RESOURCE_VFC_NODES_HEAT_FSB, null);
522 String substitutionNodeTypeId =
523 unifiedCompositionService.getSubstitutionNodeTypeId(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
524 unifiedCompositionDataList.get(0), null, context);
525 String nodeTemplateId = unifiedCompositionService.createAbstractSubstituteNodeTemplate(
526 inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML), substitutionServiceTemplate.get(),
527 unifiedCompositionDataList, substitutionNodeTypeId,
530 unifiedCompositionService
531 .updateCompositionConnectivity(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
532 unifiedCompositionDataList, context);
533 validateAbstractSubstitute();
538 public void updGroupsNoConsolidationTest() throws Exception {
539 loadInputAndOutputData(BASE_DIRECTORY + "updGroupsConnectivity/noConsolidation");
540 UnifiedCompositionData data = createComputeUnifiedCompositionData("server_smp1");
541 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
542 portTypeToIdList.add(new ImmutablePair<>(PORT, PORT1));
543 portTypeToIdList.add(new ImmutablePair<>(PORT, PORT2));
544 addPortDataToCompositionData(portTypeToIdList, data);
547 List<String> computeGroupIdList =
548 TestUtils.getGroupsForNode(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML), "server_smp1");
549 data.getComputeTemplateConsolidationData().setGroupIds(computeGroupIdList);
551 List<UnifiedCompositionData> unifiedCompositionDataList = new LinkedList<>();
552 unifiedCompositionDataList.add(data);
554 Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
555 .createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
556 unifiedCompositionDataList
557 , context, "org.openecomp.resource.abstract.nodes.smp", null);
559 String substitutionNodeTypeId =
560 unifiedCompositionService.getSubstitutionNodeTypeId(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
561 unifiedCompositionDataList.get(0), null, context);
562 String nodeTemplateId = unifiedCompositionService.createAbstractSubstituteNodeTemplate(
563 inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML), substitutionServiceTemplate.get(),
564 unifiedCompositionDataList, substitutionNodeTypeId,
567 unifiedCompositionService
568 .updateCompositionConnectivity(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
569 unifiedCompositionDataList, context);
570 validateAbstractSubstitute();
575 public void updGroupsWithConsolidationTest() throws Exception {
576 loadInputAndOutputData(BASE_DIRECTORY + "updGroupsConnectivity/consolidation");
578 List<UnifiedCompositionData> unifiedCompositionDataList =
579 createAbstractSubstituteCompositionDataComputeAndPort();
581 Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
582 .createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
583 unifiedCompositionDataList
584 , context, ORG_OPENECOMP_RESOURCE_VFC_NODES_HEAT_FSB, null);
586 String substitutionNodeTypeId =
587 unifiedCompositionService.getSubstitutionNodeTypeId(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
588 unifiedCompositionDataList.get(0), null, context);
589 String nodeTemplateId = unifiedCompositionService.createAbstractSubstituteNodeTemplate(
590 inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML), substitutionServiceTemplate.get(),
591 unifiedCompositionDataList, substitutionNodeTypeId,
594 unifiedCompositionService
595 .updateCompositionConnectivity(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
596 unifiedCompositionDataList, context);
597 validateAbstractSubstitute();
601 public void updOutParamGetAttrInNoConsolidationTest() throws Exception {
602 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
603 portTypeToIdList.add(new ImmutablePair<>(FSB1_INTERNAL, FSB1_INTERNAL1));
604 portTypeToIdList.add(new ImmutablePair<>(FSB2_INTERNAL, FSB2_INTERNAL2));
605 portTypeToIdList.add(new ImmutablePair<>(FSB1_OAM, FSB1_OAM));
607 loadInputAndOutputData(BASE_DIRECTORY + "updOutputGetAttrIn/noConsolidation");
608 UnifiedCompositionData unifiedCompositionData =
609 createCompositionData(FSB1_template, portTypeToIdList);
610 addOutputGetAttrInForComputeNoConsolidation(unifiedCompositionData);
611 addOutputGetAttrInForPortNoConsolidation(unifiedCompositionData);
613 List<UnifiedCompositionData> unifiedCompositionDataList = new ArrayList<>();
614 unifiedCompositionDataList.add(unifiedCompositionData);
615 Mockito.doNothing().when(unifiedCompositionService).updNodesConnectedOutConnectivity
616 (inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML), unifiedCompositionDataList, context);
617 Mockito.doReturn(FSB1).when(context).getUnifiedAbstractNodeTemplateId(anyObject(),
619 unifiedCompositionService
620 .updateCompositionConnectivity(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
621 unifiedCompositionDataList, context);
623 checkSTResults(expectedOutserviceTemplates, null, null, inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML));
627 public void updOutParamGetAttrInWithConsolidationTest() throws Exception {
628 List<UnifiedCompositionData> unifiedCompositionDataList = new ArrayList<>();
629 List<Pair<String, String>> portTypeToIdList1 = new ArrayList<>();
630 portTypeToIdList1.add(new ImmutablePair<>(FSB1_INTERNAL, FSB1_INTERNAL1));
631 portTypeToIdList1.add(new ImmutablePair<>(FSB2_INTERNAL, FSB2_INTERNAL2));
633 loadInputAndOutputData(BASE_DIRECTORY + "updOutputGetAttrIn/consolidation");
634 UnifiedCompositionData unifiedCompositionData1 =
635 createCompositionData(FSB1_template, portTypeToIdList1);
636 addOutputGetAttrInForCompute1WithConsolidation(unifiedCompositionData1);
637 addOutputGetAttrInForPortWithConsolidation1(unifiedCompositionData1);
638 unifiedCompositionDataList.add(unifiedCompositionData1);
640 List<Pair<String, String>> portTypeToIdList2 = new ArrayList<>();
641 portTypeToIdList2.add(new ImmutablePair<>(FSB1_INTERNAL, FSB1_INTERNAL2));
642 portTypeToIdList2.add(new ImmutablePair<>(FSB2_INTERNAL, FSB2_INTERNAL1));
644 UnifiedCompositionData unifiedCompositionData2 =
645 createCompositionData(FSB2_template, portTypeToIdList2);
646 unifiedCompositionDataList.add(unifiedCompositionData2);
647 addOutputGetAttrInForCompute2WithConsolidation(unifiedCompositionData2);
648 addOutputGetAttrInForPortWithConsolidation2(unifiedCompositionData2);
650 Mockito.doNothing().when(unifiedCompositionService).updNodesConnectedOutConnectivity
651 (inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML), unifiedCompositionDataList, context);
652 Mockito.doReturn(FSB1).when(context).getUnifiedAbstractNodeTemplateId(anyObject(),
655 unifiedCompositionService
656 .updateCompositionConnectivity(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
657 unifiedCompositionDataList, context);
659 checkSTResults(expectedOutserviceTemplates, null, null, inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML));
663 public void updNodeGetAttrInNoConsolidationTest() throws Exception {
664 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
665 portTypeToIdList.add(new ImmutablePair<>(FSB1_INTERNAL, FSB1_INTERNAL1));
666 portTypeToIdList.add(new ImmutablePair<>(FSB2_INTERNAL, FSB2_INTERNAL2));
667 portTypeToIdList.add(new ImmutablePair<>(FSB1_OAM, FSB1_OAM));
669 loadInputAndOutputData(BASE_DIRECTORY + "updNodesGetAttrIn/noConsolidation");
670 UnifiedCompositionData unifiedCompositionData =
671 createCompositionData(FSB1_template, portTypeToIdList);
672 addGetAttrForCompute(unifiedCompositionData);
673 addGetAttrForPort(unifiedCompositionData);
674 addGetAttrForPortInnerUC(unifiedCompositionData);
676 List<UnifiedCompositionData> unifiedCompositionDataList = new ArrayList<>();
677 unifiedCompositionDataList.add(unifiedCompositionData);
678 Mockito.doNothing().when(unifiedCompositionService).updNodesConnectedOutConnectivity
679 (inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML), unifiedCompositionDataList, context);
680 Mockito.doReturn(FSB1).when(context).getUnifiedAbstractNodeTemplateId(anyObject(),
682 unifiedCompositionService
683 .updateCompositionConnectivity(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
684 unifiedCompositionDataList, context);
686 checkSTResults(expectedOutserviceTemplates, null, null, inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML));
690 public void updNodeGetAttrInWithConsolidationTest() throws Exception {
691 List<UnifiedCompositionData> unifiedCompositionDataList = new ArrayList<>();
692 List<Pair<String, String>> portTypeToIdList1 = new ArrayList<>();
693 portTypeToIdList1.add(new ImmutablePair<>(FSB1_INTERNAL, FSB1_INTERNAL1));
694 portTypeToIdList1.add(new ImmutablePair<>(FSB2_INTERNAL, FSB2_INTERNAL2));
696 loadInputAndOutputData(BASE_DIRECTORY + "updNodesGetAttrIn/consolidation");
697 UnifiedCompositionData unifiedCompositionData1 =
698 createCompositionData(FSB1_template, portTypeToIdList1);
699 addGetAttrForCompute(unifiedCompositionData1);
700 addGetAttrForPort(unifiedCompositionData1);
701 unifiedCompositionDataList.add(unifiedCompositionData1);
703 List<Pair<String, String>> portTypeToIdList2 = new ArrayList<>();
704 portTypeToIdList2.add(new ImmutablePair<>(FSB1_INTERNAL, FSB1_INTERNAL2));
705 portTypeToIdList2.add(new ImmutablePair<>(FSB2_INTERNAL, FSB2_INTERNAL1));
707 UnifiedCompositionData unifiedCompositionData2 =
708 createCompositionData(FSB2_template, portTypeToIdList2);
709 addGetAttrForCompute2(unifiedCompositionData2);
710 addGetAttrForPort2(unifiedCompositionData2);
711 unifiedCompositionDataList.add(unifiedCompositionData2);
714 Mockito.doNothing().when(unifiedCompositionService).updNodesConnectedOutConnectivity
715 (inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML), unifiedCompositionDataList, context);
716 Mockito.doReturn(FSB1).when(context).getUnifiedAbstractNodeTemplateId(anyObject(),
719 unifiedCompositionService
720 .updateCompositionConnectivity(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
721 unifiedCompositionDataList, context);
723 checkSTResults(expectedOutserviceTemplates, null, null, inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML));
728 public void updNodesGetAttrFromInnerNodesTest() throws Exception {
729 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
730 portTypeToIdList.add(new ImmutablePair<>(FSB1_INTERNAL, FSB1_INTERNAL1));
731 portTypeToIdList.add(new ImmutablePair<>(FSB2_INTERNAL, FSB2_INTERNAL2));
732 portTypeToIdList.add(new ImmutablePair<>(FSB1_OAM, FSB1_OAM));
734 loadInputAndOutputData(BASE_DIRECTORY +
735 "creSubstitutionServiceTemplate/updNodesGetAttrInFromInnerNodes/noConsolidation");
736 UnifiedCompositionData unifiedCompositionData =
737 createCompositionData(FSB1_template, portTypeToIdList);
738 addGetAttrForCompute(unifiedCompositionData);
739 addGetAttrForPort(unifiedCompositionData);
740 addGetAttrForPortInnerUC(unifiedCompositionData);
741 List<UnifiedCompositionData> unifiedCompositionDataList = new ArrayList<>();
742 unifiedCompositionDataList.add(unifiedCompositionData);
744 Mockito.doReturn(FSB1).when(context).getUnifiedAbstractNodeTemplateId(anyObject(),
747 Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
748 .createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
749 unifiedCompositionDataList,
750 context, ORG_OPENECOMP_RESOURCE_ABSTRACT_NODES_FSB1, null);
751 assertEquals(true, substitutionServiceTemplate.isPresent());
752 substitutionServiceTemplate
754 subServiceTemplate -> checkSTResults(expectedOutserviceTemplates,
755 subServiceTemplate, context.getGlobalSubstitutionServiceTemplate(), null));
760 public void updNodesGetAttrFromConsolidationNodesTest() throws Exception {
761 List<UnifiedCompositionData> unifiedCompositionDataList = new ArrayList<>();
762 List<Pair<String, String>> portTypeToIdList1 = new ArrayList<>();
763 portTypeToIdList1.add(new ImmutablePair<>(FSB1_INTERNAL, FSB1_INTERNAL1));
764 portTypeToIdList1.add(new ImmutablePair<>(FSB2_INTERNAL, FSB2_INTERNAL2));
766 loadInputAndOutputData(BASE_DIRECTORY +
767 "creSubstitutionServiceTemplate/updNodesGetAttrInFromInnerNodes/consolidation");
768 UnifiedCompositionData unifiedCompositionData1 =
769 createCompositionData(FSB1_template, portTypeToIdList1);
770 addGetAttrForCompute(unifiedCompositionData1);
771 addGetAttrForPort(unifiedCompositionData1);
772 unifiedCompositionDataList.add(unifiedCompositionData1);
774 List<Pair<String, String>> portTypeToIdList2 = new ArrayList<>();
775 portTypeToIdList2.add(new ImmutablePair<>(FSB1_INTERNAL, FSB1_INTERNAL2));
776 portTypeToIdList2.add(new ImmutablePair<>(FSB2_INTERNAL, FSB2_INTERNAL1));
778 UnifiedCompositionData unifiedCompositionData2 =
779 createCompositionData(FSB2_template, portTypeToIdList2);
780 addGetAttrForCompute2(unifiedCompositionData2);
781 addGetAttrForPort2(unifiedCompositionData2);
782 unifiedCompositionDataList.add(unifiedCompositionData2);
784 Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
785 .createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
786 unifiedCompositionDataList,
787 context, ORG_OPENECOMP_RESOURCE_ABSTRACT_NODES_FSB1, null);
788 assertEquals(true, substitutionServiceTemplate.isPresent());
789 substitutionServiceTemplate
791 subServiceTemplate -> checkSTResults(expectedOutserviceTemplates,
792 subServiceTemplate, context.getGlobalSubstitutionServiceTemplate(), null));
796 public void cleanMainServiceTemplateTestNoConsolidation() throws IOException {
797 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
798 portTypeToIdList.add(new ImmutablePair<>(FSB1_INTERNAL, FSB1_INTERNAL1));
799 portTypeToIdList.add(new ImmutablePair<>(FSB2_INTERNAL, FSB2_INTERNAL2));
800 portTypeToIdList.add(new ImmutablePair<>("FSB_OAM", FSB1_OAM));
802 loadInputAndOutputData(BASE_DIRECTORY + "cleanMainSt/noConsolidation");
803 UnifiedCompositionData unifiedCompositionData =
804 createCompositionData(FSB1_template, portTypeToIdList);
805 addGetAttrForCompute(unifiedCompositionData);
806 addGetAttrForPort(unifiedCompositionData);
808 List<UnifiedCompositionData> unifiedCompositionDataList = new ArrayList<>();
809 unifiedCompositionDataList.add(unifiedCompositionData);
811 NodeTemplate abstractNodeTemplate = getMockNode(
812 BASE_DIRECTORY + "cleanMainSt/mockAbstractNodeTemplate.yaml");
813 inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML).getTopology_template().getNode_templates()
814 .put(FSB1, abstractNodeTemplate);
816 Mockito.doReturn(FSB1).when(context).getUnifiedAbstractNodeTemplateId(anyObject(),
819 unifiedCompositionService.
820 cleanUnifiedCompositionEntities(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
821 unifiedCompositionDataList, context);
823 checkSTResults(expectedOutserviceTemplates, null, null, inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML));
827 public void cleanMainServiceTemplateTestWithConsolidation() throws IOException {
828 loadInputAndOutputData(BASE_DIRECTORY + "cleanMainSt/consolidation");
830 List<UnifiedCompositionData> unifiedCompositionDataList = new ArrayList<>();
831 List<Pair<String, String>> portTypeToIdList1 = new ArrayList<>();
832 portTypeToIdList1.add(new ImmutablePair<>(FSB1_INTERNAL, FSB1_INTERNAL1));
833 portTypeToIdList1.add(new ImmutablePair<>(FSB2_INTERNAL, FSB2_INTERNAL2));
835 UnifiedCompositionData unifiedCompositionData1 =
836 createCompositionData(FSB1_template, portTypeToIdList1);
837 addOutputGetAttrInForCompute1WithConsolidation(unifiedCompositionData1);
838 addOutputGetAttrInForPortWithConsolidation1(unifiedCompositionData1);
839 unifiedCompositionDataList.add(unifiedCompositionData1);
841 List<Pair<String, String>> portTypeToIdList2 = new ArrayList<>();
842 portTypeToIdList2.add(new ImmutablePair<>(FSB1_INTERNAL, FSB1_INTERNAL2));
843 portTypeToIdList2.add(new ImmutablePair<>(FSB2_INTERNAL, FSB2_INTERNAL1));
845 UnifiedCompositionData unifiedCompositionData2 =
846 createCompositionData(FSB2_template, portTypeToIdList2);
847 addOutputGetAttrInForCompute2WithConsolidation(unifiedCompositionData2);
848 addOutputGetAttrInForPortWithConsolidation2(unifiedCompositionData2);
849 unifiedCompositionDataList.add(unifiedCompositionData2);
851 NodeTemplate abstractNodeTemplate = getMockNode(
852 BASE_DIRECTORY + "cleanMainSt/mockAbstractNodeTemplate.yaml");
853 inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML).getTopology_template().getNode_templates()
854 .put(FSB1, abstractNodeTemplate);
856 Mockito.doReturn(FSB1).when(context).getUnifiedAbstractNodeTemplateId(anyObject(),
859 unifiedCompositionService.
860 cleanUnifiedCompositionEntities(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
861 unifiedCompositionDataList, context);
863 checkSTResults(expectedOutserviceTemplates, null, null, inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML));
867 public void updateNewAbstractNodeTemplateNoConsolidation() throws IOException {
868 loadInputAndOutputData(BASE_DIRECTORY + "fixNewAbstractNodeTemplate/noConsolidation");
870 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
871 portTypeToIdList.add(new ImmutablePair<>(FSB1_INTERNAL, FSB1_INTERNAL1));
872 portTypeToIdList.add(new ImmutablePair<>(FSB1_INTERNAL, FSB1_INTERNAL2));
874 NodeTemplate cleanedComputeNodeTemplate =
876 BASE_DIRECTORY + "fixNewAbstractNodeTemplate/mockComputeNodeTemplate.yaml");
879 context.setConsolidationData(
880 createConsolidationData(Collections.singletonList(FSB1_template), portTypeToIdList));
881 context.addCleanedNodeTemplate(MAIN_SERVICE_TEMPLATE_YAML, FSB1_template,
882 UnifiedCompositionEntity.Compute, cleanedComputeNodeTemplate);
883 context.addCleanedNodeTemplate(MAIN_SERVICE_TEMPLATE_YAML, FSB1_INTERNAL1,
884 UnifiedCompositionEntity.Port, cleanedComputeNodeTemplate);
885 context.addCleanedNodeTemplate(MAIN_SERVICE_TEMPLATE_YAML, FSB1_INTERNAL2,
886 UnifiedCompositionEntity.Port, cleanedComputeNodeTemplate);
888 setUnifiedCompositionData(Arrays.asList(FSB1_template, FSB1_INTERNAL1, FSB1_INTERNAL2));
890 unifiedCompositionService
891 .updateUnifiedAbstractNodesConnectivity(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML), context);
893 checkSTResults(expectedOutserviceTemplates, null, null, inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML));
897 public void updateNewAbstractNodeTemplateWithConsolidation() throws IOException {
898 loadInputAndOutputData(BASE_DIRECTORY + "fixNewAbstractNodeTemplate/consolidation");
900 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
901 portTypeToIdList.add(new ImmutablePair<>(FSB1_INTERNAL, FSB1_INTERNAL1));
902 portTypeToIdList.add(new ImmutablePair<>(FSB2_INTERNAL, FSB2_INTERNAL1));
904 NodeTemplate cleanedComputeNodeTemplate =
906 BASE_DIRECTORY + "fixNewAbstractNodeTemplate/mockComputeNodeTemplate.yaml");
909 context.setConsolidationData(
910 createConsolidationData(Arrays.asList("FSB1_template_1", "FSB1_template_2"),
912 context.addCleanedNodeTemplate(MAIN_SERVICE_TEMPLATE_YAML, "FSB1_template_1",
913 UnifiedCompositionEntity.Compute, cleanedComputeNodeTemplate);
914 context.addCleanedNodeTemplate(MAIN_SERVICE_TEMPLATE_YAML, "FSB1_template_2",
915 UnifiedCompositionEntity.Compute, cleanedComputeNodeTemplate);
916 context.addCleanedNodeTemplate(MAIN_SERVICE_TEMPLATE_YAML, FSB1_INTERNAL1,
917 UnifiedCompositionEntity.Port, cleanedComputeNodeTemplate);
918 context.addCleanedNodeTemplate(MAIN_SERVICE_TEMPLATE_YAML, FSB2_INTERNAL1,
919 UnifiedCompositionEntity.Port, cleanedComputeNodeTemplate);
921 setUnifiedCompositionData(
922 Arrays.asList("FSB1_template_1", "FSB1_template_2", FSB1_INTERNAL1, FSB2_INTERNAL1));
924 unifiedCompositionService
925 .updateUnifiedAbstractNodesConnectivity(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML), context);
927 checkSTResults(expectedOutserviceTemplates, null, null, inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML));
931 public void testThreeNovaOfSameTypePreConditionFalse() throws IOException {
932 loadInputAndOutputData(BASE_DIRECTORY + "pattern1b/noConsolidation");
934 List<UnifiedCompositionData> unifiedCompositionDataList = new ArrayList<>();
935 List<Pair<String, String>> portTypeToIdList1 = new ArrayList<>();
936 portTypeToIdList1.add(new ImmutablePair<>(FSB1_INTERNAL, FSB1_INTERNAL1));
937 portTypeToIdList1.add(new ImmutablePair<>(FSB2_INTERNAL, FSB2_INTERNAL2));
939 UnifiedCompositionData unifiedCompositionData1 =
940 createCompositionData(FSB1_template, portTypeToIdList1);
941 addOutputGetAttrInForCompute1WithConsolidation(unifiedCompositionData1);
942 addOutputGetAttrInForPortWithConsolidation1(unifiedCompositionData1);
943 unifiedCompositionDataList.add(unifiedCompositionData1);
945 UnifiedCompositionData unifiedCompositionData2 =
946 createCompositionData(FSB2_template, portTypeToIdList1);
947 addOutputGetAttrInForCompute1WithConsolidation(unifiedCompositionData2);
948 addOutputGetAttrInForPortWithConsolidation1(unifiedCompositionData2);
949 unifiedCompositionDataList.add(unifiedCompositionData2);
951 portTypeToIdList1.remove(1);
952 UnifiedCompositionData unifiedCompositionData3 =
953 createCompositionData(FSB3_template, portTypeToIdList1);
954 addOutputGetAttrInForCompute1WithConsolidation(unifiedCompositionData3);
955 addOutputGetAttrInForPortWithConsolidation1(unifiedCompositionData3);
956 unifiedCompositionDataList.add(unifiedCompositionData3);
958 UnifiedCompositionSingleSubstitution unifiedCompositionSingleSubstitution =
959 new UnifiedCompositionSingleSubstitution();
960 unifiedCompositionSingleSubstitution
961 .createUnifiedComposition(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML), null,
962 unifiedCompositionDataList, context);
964 checkSTResults(expectedOutserviceTemplates, null, null, inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML));
968 public void testUnifiedNestedCompositionOneComputeInNested() throws IOException {
969 loadInputAndOutputData(BASE_DIRECTORY + "pattern4/oneNestedNode");
971 ConsolidationData consolidationData = new ConsolidationData();
972 String nestedFileName = "nested-pcm_v0.1ServiceTemplate.yaml";
973 TestUtils.updateNestedConsolidationData(MAIN_SERVICE_TEMPLATE_YAML, Collections.singletonList("server_pcm_001"),
976 TestUtils.initComputeNodeTypeInConsolidationData(nestedFileName,
977 "org.openecomp.resource.vfc.nodes.heat.pcm_server", consolidationData);
978 TestUtils.initComputeNodeTemplateIdInConsolidationData(nestedFileName,
979 "org.openecomp.resource.vfc.nodes.heat.pcm_server", "server_pcm", consolidationData);
981 context.setConsolidationData(consolidationData);
982 context.getTranslatedServiceTemplates()
983 .put(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME,
984 inputServiceTemplates.get(GLOBAL_SUBSTITUTION_TYPES_SERVICE_TEMPLATE_YAML));
985 context.getTranslatedServiceTemplates()
986 .put(nestedFileName, inputServiceTemplates.get(nestedFileName));
987 context.getTranslatedServiceTemplates()
988 .put(MAIN_SERVICE_TEMPLATE_YAML, inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML));
990 UnifiedCompositionData unifiedComposition = createUnifiedCompositionOnlyNested("server_pcm_001");
991 unifiedCompositionService.handleUnifiedNestedDefinition(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
992 inputServiceTemplates.get(nestedFileName), unifiedComposition, context);
994 checkSTResults(expectedOutserviceTemplates, nestedFileName,
995 context.getTranslatedServiceTemplates().get(nestedFileName),
996 context.getTranslatedServiceTemplates()
997 .get(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME), null);
1001 public void testTwoNestedWithOneCompute() throws IOException {
1002 loadInputAndOutputData(BASE_DIRECTORY + "pattern4/twoNestedWithOneCompute");
1004 ConsolidationData consolidationData = new ConsolidationData();
1005 String nestedFileName1 = "nested-pcm_v0.1ServiceTemplate.yaml";
1006 String nestedFileName2 = "nested-oam_v0.1ServiceTemplate.yaml";
1008 TestUtils.updateNestedConsolidationData(MAIN_SERVICE_TEMPLATE_YAML,
1009 Arrays.asList("server_pcm_001", "server_oam_001"), consolidationData);
1011 TestUtils.initComputeNodeTypeInConsolidationData(nestedFileName1,
1012 "org.openecomp.resource.vfc.nodes.heat.pcm_server", consolidationData);
1013 TestUtils.initComputeNodeTemplateIdInConsolidationData(nestedFileName1,
1014 "org.openecomp.resource.vfc.nodes.heat.pcm_server", "server_pcm", consolidationData);
1015 TestUtils.initComputeNodeTypeInConsolidationData(nestedFileName2,
1016 "org.openecomp.resource.vfc.nodes.heat.oam_server", consolidationData);
1017 TestUtils.initComputeNodeTemplateIdInConsolidationData(nestedFileName2,
1018 "org.openecomp.resource.vfc.nodes.heat.oam_server", "server_oam", consolidationData);
1020 context.setConsolidationData(consolidationData);
1021 context.getTranslatedServiceTemplates()
1022 .put(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME,
1023 inputServiceTemplates.get(GLOBAL_SUBSTITUTION_TYPES_SERVICE_TEMPLATE_YAML));
1024 context.getTranslatedServiceTemplates()
1025 .put(nestedFileName1, inputServiceTemplates.get(nestedFileName1));
1026 context.getTranslatedServiceTemplates()
1027 .put(nestedFileName2, inputServiceTemplates.get(nestedFileName2));
1028 context.getTranslatedServiceTemplates()
1029 .put(MAIN_SERVICE_TEMPLATE_YAML, inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML));
1031 UnifiedCompositionData unifiedComposition =
1032 createUnifiedCompositionOnlyNested("server_pcm_001");
1033 unifiedCompositionService.handleUnifiedNestedDefinition(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
1034 inputServiceTemplates.get(nestedFileName1), unifiedComposition, context);
1035 unifiedComposition = createUnifiedCompositionOnlyNested("server_oam_001");
1036 unifiedCompositionService.handleUnifiedNestedDefinition(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
1037 inputServiceTemplates.get(nestedFileName2), unifiedComposition, context);
1039 checkSTResults(expectedOutserviceTemplates, nestedFileName1,
1040 context.getTranslatedServiceTemplates().get(nestedFileName1),
1041 context.getTranslatedServiceTemplates()
1042 .get(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME), null);
1043 checkSTResults(expectedOutserviceTemplates, nestedFileName2,
1044 context.getTranslatedServiceTemplates().get(nestedFileName2),
1049 public void testNestedCompositionNodesConnectedIn() throws IOException {
1050 loadInputAndOutputData(BASE_DIRECTORY + "pattern4/nestedNodesConnectedIn");
1051 ConsolidationData consolidationData = new ConsolidationData();
1052 String nestedFileName = "nested-pcm_v0.1ServiceTemplate.yaml";
1053 TestUtils.updateNestedConsolidationData(MAIN_SERVICE_TEMPLATE_YAML, Collections.singletonList("server_pcm_001"),
1055 context.getTranslatedServiceTemplates()
1056 .put(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME,
1057 inputServiceTemplates.get(GLOBAL_SUBSTITUTION_TYPES_SERVICE_TEMPLATE_YAML));
1058 context.getTranslatedServiceTemplates()
1059 .put(nestedFileName, inputServiceTemplates.get(nestedFileName));
1060 context.getTranslatedServiceTemplates()
1061 .put(MAIN_SERVICE_TEMPLATE_YAML, inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML));
1062 context.addUnifiedNestedNodeTemplateId(MAIN_SERVICE_TEMPLATE_YAML, "server_pcm_001", "abstract_pcm_server_0");
1064 Map<String, List<RequirementAssignmentData>> nodeConnectedInList =
1065 TestUtils.getNodeConnectedInList("server_pcm_001", inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
1067 UnifiedCompositionData unifiedComposition =
1068 createUnifiedCompositionOnlyNested("server_pcm_001");
1069 unifiedComposition.getNestedTemplateConsolidationData()
1070 .setNodesConnectedIn(nodeConnectedInList);
1072 unifiedCompositionService.updNestedCompositionNodesConnectedInConnectivity
1073 (inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML), unifiedComposition, context);
1074 checkSTResults(expectedOutserviceTemplates, nestedFileName,
1075 context.getTranslatedServiceTemplates().get(nestedFileName),
1076 context.getTranslatedServiceTemplates()
1077 .get(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME), context
1078 .getTranslatedServiceTemplates().get(MAIN_SERVICE_TEMPLATE_YAML));
1083 public void testNestedCompositionNodesGetAttrIn() throws IOException {
1084 loadInputAndOutputData(BASE_DIRECTORY + "pattern4/nestedNodesGetAttrIn");
1085 ConsolidationData consolidationData = new ConsolidationData();
1086 String nestedFileName = "nested-pcm_v0.1ServiceTemplate.yaml";
1087 TestUtils.updateNestedConsolidationData(MAIN_SERVICE_TEMPLATE_YAML, Collections.singletonList("server_pcm_001"),
1089 context.getTranslatedServiceTemplates()
1090 .put(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME,
1091 inputServiceTemplates.get(GLOBAL_SUBSTITUTION_TYPES_SERVICE_TEMPLATE_YAML));
1092 context.getTranslatedServiceTemplates()
1093 .put(nestedFileName, inputServiceTemplates.get(nestedFileName));
1094 context.getTranslatedServiceTemplates()
1095 .put(MAIN_SERVICE_TEMPLATE_YAML, inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML));
1096 context.addUnifiedNestedNodeTemplateId(MAIN_SERVICE_TEMPLATE_YAML, "server_pcm_001", "abstract_pcm_server_0");
1098 Map<String, List<RequirementAssignmentData>> nodeConnectedInList =
1099 TestUtils.getNodeConnectedInList("server_pcm_001", inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
1101 UnifiedCompositionData unifiedComposition =
1102 createUnifiedCompositionOnlyNested("server_pcm_001");
1103 addGetAttInUnifiedCompositionData(unifiedComposition
1104 .getNestedTemplateConsolidationData(), TENANT_ID, "oam_net_gw", "packet_mirror_network");
1105 addGetAttInUnifiedCompositionData(unifiedComposition
1106 .getNestedTemplateConsolidationData(), USER_DATA_FORMAT, "oam_net_gw",
1107 "server_compute_get_attr_test");
1108 addGetAttInUnifiedCompositionData(unifiedComposition
1109 .getNestedTemplateConsolidationData(), "metadata", "server_pcm_id",
1110 "server_compute_get_attr_test");
1111 unifiedCompositionService.updNestedCompositionNodesGetAttrInConnectivity
1112 (inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML), unifiedComposition, context);
1113 checkSTResults(expectedOutserviceTemplates, nestedFileName,
1114 context.getTranslatedServiceTemplates().get(nestedFileName),
1115 context.getTranslatedServiceTemplates()
1116 .get(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME), context
1117 .getTranslatedServiceTemplates().get(MAIN_SERVICE_TEMPLATE_YAML));
1121 public void testNestedCompositionOutputParamGetAttrIn() throws IOException {
1122 loadInputAndOutputData(BASE_DIRECTORY + "pattern4/nestedOutputParamGetAttrIn");
1123 ConsolidationData consolidationData = new ConsolidationData();
1124 String nestedFileName = "nested-pcm_v0.1ServiceTemplate.yaml";
1125 TestUtils.updateNestedConsolidationData(MAIN_SERVICE_TEMPLATE_YAML, Collections.singletonList("server_pcm_001"),
1127 context.getTranslatedServiceTemplates()
1128 .put(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME,
1129 inputServiceTemplates.get(GLOBAL_SUBSTITUTION_TYPES_SERVICE_TEMPLATE_YAML));
1130 context.getTranslatedServiceTemplates()
1131 .put(nestedFileName, inputServiceTemplates.get(nestedFileName));
1132 context.getTranslatedServiceTemplates()
1133 .put(MAIN_SERVICE_TEMPLATE_YAML, inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML));
1134 context.addUnifiedNestedNodeTemplateId(MAIN_SERVICE_TEMPLATE_YAML, "server_pcm_001", "abstract_pcm_server_0");
1136 Map<String, List<RequirementAssignmentData>> nodeConnectedInList =
1137 TestUtils.getNodeConnectedInList("server_pcm_001", inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
1139 UnifiedCompositionData unifiedComposition =
1140 createUnifiedCompositionOnlyNested("server_pcm_001");
1141 addOutputGetAttInUnifiedCompositionData(unifiedComposition
1142 .getNestedTemplateConsolidationData(), "output_attr_1", ACCESS_IPv4);
1143 addOutputGetAttInUnifiedCompositionData(unifiedComposition
1144 .getNestedTemplateConsolidationData(), "output_attr_2", ACCESS_IPv6);
1145 unifiedCompositionService.updNestedCompositionOutputParamGetAttrInConnectivity
1146 (inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML), unifiedComposition, context);
1147 checkSTResults(expectedOutserviceTemplates, nestedFileName,
1148 context.getTranslatedServiceTemplates().get(nestedFileName),
1149 context.getTranslatedServiceTemplates()
1150 .get(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME), context
1151 .getTranslatedServiceTemplates().get(MAIN_SERVICE_TEMPLATE_YAML));
1155 public void testInputOutputParameterType() throws IOException{
1156 loadInputAndOutputData(BASE_DIRECTORY + "inputoutputparamtype");
1157 ConsolidationData consolidationData = new ConsolidationData();
1158 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
1159 portTypeToIdList.add(new ImmutablePair<>("FSB1_Port", "FSB1_Port1"));
1160 portTypeToIdList.add(new ImmutablePair<>("VMI", "VMI1"));
1162 UnifiedCompositionData unifiedCompositionData = createCompositionData(FSB1, portTypeToIdList);
1164 Map<String, NodeTemplate> nodeTemplates =
1165 inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML).getTopology_template().getNode_templates();
1166 for (Map.Entry<String, NodeTemplate> nodeTemplateEntry : nodeTemplates.entrySet() ) {
1167 String nodeTemplateId = nodeTemplateEntry.getKey();
1168 if (nodeTemplateId.equals("cmaui_volume_test_compute_properties")) {
1169 Map<String, List<GetAttrFuncData>> nodesGetAttrIn =
1170 TestUtils.getNodesGetAttrIn(nodeTemplateEntry.getValue(), nodeTemplateId);
1171 unifiedCompositionData.getComputeTemplateConsolidationData()
1172 .setNodesGetAttrIn(nodesGetAttrIn);
1175 if (nodeTemplateId.equals("cmaui_volume_test_neutron_port_properties")) {
1176 Map<String, List<GetAttrFuncData>> nodesGetAttrIn =
1177 TestUtils.getNodesGetAttrIn(nodeTemplateEntry.getValue(), nodeTemplateId);
1178 unifiedCompositionData.getPortTemplateConsolidationDataList().get(0)
1179 .setNodesGetAttrIn(nodesGetAttrIn);
1182 if (nodeTemplateId.equals("cmaui_volume_test_contrailv2_VMI_properties")) {
1183 Map<String, List<GetAttrFuncData>> nodesGetAttrIn =
1184 TestUtils.getNodesGetAttrIn(nodeTemplateEntry.getValue(), nodeTemplateId);
1185 unifiedCompositionData.getPortTemplateConsolidationDataList().get(1)
1186 .setNodesGetAttrIn(nodesGetAttrIn);
1190 List<UnifiedCompositionData> unifiedCompositionDataList = new LinkedList<>();
1191 unifiedCompositionDataList.add(unifiedCompositionData);
1193 UnifiedCompositionSingleSubstitution unifiedCompositionSingleSubstitution =
1194 new UnifiedCompositionSingleSubstitution();
1195 unifiedCompositionSingleSubstitution
1196 .createUnifiedComposition(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML), null,
1197 unifiedCompositionDataList, context);
1198 checkSTResults(expectedOutserviceTemplates, null, null, inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML));
1199 System.out.println();
1204 private UnifiedCompositionData createUnifiedCompositionOnlyNested(
1205 String nestedNodeTemplateId) {
1206 NestedTemplateConsolidationData nestedTemplateConsolidationData =
1207 new NestedTemplateConsolidationData();
1208 nestedTemplateConsolidationData.setNodeTemplateId(nestedNodeTemplateId);
1209 UnifiedCompositionData unifiedCompositionData = new UnifiedCompositionData();
1210 unifiedCompositionData.setNestedTemplateConsolidationData(nestedTemplateConsolidationData);
1211 return unifiedCompositionData;
1214 private void setUnifiedCompositionData(List<String> nodeTemplateIds) {
1215 UnifiedSubstitutionData unifiedSubstitutionData =
1216 context.getUnifiedSubstitutionData().get(MAIN_SERVICE_TEMPLATE_YAML) == null ? new UnifiedSubstitutionData()
1217 : context.getUnifiedSubstitutionData().get(MAIN_SERVICE_TEMPLATE_YAML);
1218 Map<String, String> substitutionAbstractNodeIds = new HashMap<>();
1219 for (String id : nodeTemplateIds) {
1220 substitutionAbstractNodeIds.put(id, "FSB2");
1223 substitutionAbstractNodeIds.put("", FSB1);
1225 unifiedSubstitutionData.setNodesRelatedAbstractNode(substitutionAbstractNodeIds);
1228 private void checkSTResults(
1229 Map<String, ServiceTemplate> expectedOutserviceTemplates,
1230 ServiceTemplate substitutionServiceTemplate,
1231 ServiceTemplate gloablSubstitutionServiceTemplate, ServiceTemplate mainServiceTemplate) {
1232 YamlUtil yamlUtil = new YamlUtil();
1233 if (Objects.nonNull(substitutionServiceTemplate)) {
1234 String substitutionST = "SubstitutionServiceTemplate.yaml";
1235 assertEquals("difference substitution service template: ",
1236 yamlUtil.objectToYaml(expectedOutserviceTemplates.get(substitutionST)),
1237 yamlUtil.objectToYaml(substitutionServiceTemplate));
1239 if (Objects.nonNull(gloablSubstitutionServiceTemplate)) {
1240 assertEquals("difference global substitution service template: ",
1241 yamlUtil.objectToYaml(expectedOutserviceTemplates.get(GLOBAL_SUBSTITUTION_TYPES_SERVICE_TEMPLATE_YAML)),
1242 yamlUtil.objectToYaml(gloablSubstitutionServiceTemplate));
1244 if (Objects.nonNull(mainServiceTemplate)) {
1245 assertEquals("difference main service template: ",
1246 yamlUtil.objectToYaml(expectedOutserviceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML)),
1247 yamlUtil.objectToYaml(mainServiceTemplate));
1251 private void checkSTResults(
1252 Map<String, ServiceTemplate> expectedOutserviceTemplates,
1253 String nestedSTFileName, ServiceTemplate nestedServiceTemplate,
1254 ServiceTemplate gloablSubstitutionServiceTemplate, ServiceTemplate mainServiceTemplate) {
1255 YamlUtil yamlUtil = new YamlUtil();
1257 if (Objects.nonNull(nestedServiceTemplate)) {
1258 assertEquals("difference nested service template: ",
1259 yamlUtil.objectToYaml(expectedOutserviceTemplates.get(nestedSTFileName)),
1260 yamlUtil.objectToYaml(nestedServiceTemplate));
1262 checkSTResults(expectedOutserviceTemplates, null, gloablSubstitutionServiceTemplate,
1263 mainServiceTemplate);
1267 private void loadInputAndOutputData(String path) throws IOException {
1268 inputServiceTemplates = new HashMap<>();
1269 TestUtils.loadServiceTemplates(path + IN_PREFIX, new ToscaExtensionYamlUtil(),
1270 inputServiceTemplates);
1271 expectedOutserviceTemplates = new HashMap<>();
1272 TestUtils.loadServiceTemplates(path + OUT_PREFIX, new ToscaExtensionYamlUtil(),
1273 expectedOutserviceTemplates);
1277 private void addGetAttInUnifiedCompositionData(EntityConsolidationData entityConsolidationData,
1278 String propertyName, String attributeName,
1279 String nodeTemplateId) {
1280 GetAttrFuncData getAttrFuncData = new GetAttrFuncData();
1281 getAttrFuncData.setAttributeName(attributeName);
1282 getAttrFuncData.setFieldName(propertyName);
1283 entityConsolidationData.addNodesGetAttrIn(nodeTemplateId, getAttrFuncData);
1286 private void addOutputGetAttInUnifiedCompositionData(
1287 EntityConsolidationData entityConsolidationData,
1288 String outParamName, String attributeName) {
1289 GetAttrFuncData getAttrFuncData = new GetAttrFuncData();
1290 getAttrFuncData.setAttributeName(attributeName);
1291 getAttrFuncData.setFieldName(outParamName);
1292 entityConsolidationData.addOutputParamGetAttrIn(getAttrFuncData);
1295 private ConsolidationData createConsolidationData(List<String> computeNodeIds,
1296 List<Pair<String, String>> portTypeToIdList) {
1298 ConsolidationData consolidationData = new ConsolidationData();
1299 String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.FSB2";
1302 .initComputeNodeTypeInConsolidationData(MAIN_SERVICE_TEMPLATE_YAML, computeNodeTypeName, consolidationData);
1303 TestUtils.initPortConsolidationData(MAIN_SERVICE_TEMPLATE_YAML, consolidationData);
1305 for (String computeId : computeNodeIds) {
1306 ComputeTemplateConsolidationData computeTemplateConsolidationData =
1307 new ComputeTemplateConsolidationData();
1308 TestUtils.updatePortsInComputeTemplateConsolidationData(portTypeToIdList,
1309 computeTemplateConsolidationData);
1310 consolidationData.getComputeConsolidationData().getFileComputeConsolidationData(MAIN_SERVICE_TEMPLATE_YAML)
1311 .getTypeComputeConsolidationData(computeNodeTypeName)
1312 .setComputeTemplateConsolidationData(computeId,
1313 computeTemplateConsolidationData);
1316 for (Pair<String, String> portTypeToId : portTypeToIdList) {
1317 consolidationData.getPortConsolidationData().getFilePortConsolidationData(MAIN_SERVICE_TEMPLATE_YAML)
1318 .setPortTemplateConsolidationData(portTypeToId.getRight(),
1319 new PortTemplateConsolidationData());
1322 return consolidationData;
1325 private UnifiedCompositionData createCompositionData(String computeNodeTemplateId,
1326 List<Pair<String, String>> portTypeToIdList) {
1328 UnifiedCompositionData unifiedCompositionData = new UnifiedCompositionData();
1329 NodeTemplate computeNodeTemplate =
1330 DataModelUtil.getNodeTemplate(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML), computeNodeTemplateId);
1331 Optional<List<RequirementAssignmentData>> requirementAssignmentDataList =
1332 TestUtils.getRequirementAssignmentDataList(computeNodeTemplate, "local_storage");
1333 List<RequirementAssignmentData> requirementAssignmentList =
1334 (requirementAssignmentDataList.isPresent()) ? requirementAssignmentDataList.get() : null;
1335 Map<String, List<RequirementAssignmentData>> volume = null;
1336 if (requirementAssignmentList != null) {
1337 volume = getVolume(requirementAssignmentList);
1339 unifiedCompositionData.setComputeTemplateConsolidationData(
1340 TestUtils.createComputeTemplateConsolidationData(computeNodeTemplateId, portTypeToIdList,
1342 if (portTypeToIdList != null) {
1343 for (Pair<String, String> port : portTypeToIdList) {
1344 NodeTemplate portNodeTemplate =
1345 DataModelUtil.getNodeTemplate(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML), port.getRight());
1347 Map<String, List<RequirementAssignmentData>> nodeConnectedOut =
1348 TestUtils.getNodeConnectedOutList(portNodeTemplate, "link");
1349 PortTemplateConsolidationData portTemplateConsolidationData =
1350 TestUtils.createPortTemplateConsolidationData(port.getRight());
1351 portTemplateConsolidationData.setNodesConnectedOut(nodeConnectedOut);
1352 unifiedCompositionData.addPortTemplateConsolidationData(portTemplateConsolidationData);
1355 return unifiedCompositionData;
1358 private List<UnifiedCompositionData> createAbstractSubstituteCompositionDataComputeAndPort() {
1359 List<UnifiedCompositionData> unifiedCompositionDataList = new ArrayList<>();
1360 UnifiedCompositionData data1 = createComputeUnifiedCompositionData(FSB1_template);
1361 UnifiedCompositionData data2 = createComputeUnifiedCompositionData(FSB2_template);
1363 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
1364 ImmutablePair<String, String> portTypePair1 = new ImmutablePair<>(FSB1_INTERNAL,
1366 ImmutablePair<String, String> portTypePair2 = new ImmutablePair<>(FSB2_INTERNAL,
1368 portTypeToIdList.add(portTypePair1);
1369 portTypeToIdList.add(portTypePair2);
1370 addPortDataToCompositionData(portTypeToIdList, data1);
1371 portTypeToIdList.remove(portTypePair1);
1372 portTypeToIdList.remove(portTypePair2);
1373 portTypeToIdList.add(new ImmutablePair<>(FSB1_INTERNAL, FSB1_INTERNAL2));
1374 portTypeToIdList.add(new ImmutablePair<>(FSB2_INTERNAL, FSB2_INTERNAL2));
1375 addPortDataToCompositionData(portTypeToIdList, data2);
1377 unifiedCompositionDataList.add(data1);
1378 unifiedCompositionDataList.add(data2);
1379 return unifiedCompositionDataList;
1383 private UnifiedCompositionData createComputeUnifiedCompositionData(String computeNodeTemplateId) {
1384 NodeTemplate computeNodeTemplate =
1385 DataModelUtil.getNodeTemplate(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML), computeNodeTemplateId);
1386 Optional<List<RequirementAssignmentData>> requirementAssignmentDataList =
1387 TestUtils.getRequirementAssignmentDataList(computeNodeTemplate, "local_storage");
1388 Map<String, List<RequirementAssignmentData>> volume = null;
1389 if (requirementAssignmentDataList.isPresent()) {
1390 volume = getVolume(requirementAssignmentDataList.get());
1392 UnifiedCompositionData data = new UnifiedCompositionData();
1393 Map<String, List<RequirementAssignmentData>> computeNodeConnectedOut =
1394 TestUtils.getNodeConnectedOutList(computeNodeTemplate, DEPENDENCY);
1395 Map<String, List<RequirementAssignmentData>> computeNodeConnectedIn =
1397 .getNodeConnectedInList(computeNodeTemplateId, inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
1399 ComputeTemplateConsolidationData computeTemplateConsolidationData = TestUtils
1400 .createComputeTemplateConsolidationData(computeNodeTemplateId, null, volume);
1401 List<String> computeNodeGroups =
1402 TestUtils.getGroupsForNode(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
1403 computeNodeTemplateId);
1404 if (!computeNodeGroups.isEmpty()) {
1405 computeTemplateConsolidationData.setGroupIds(computeNodeGroups);
1407 computeTemplateConsolidationData.setNodesConnectedOut(computeNodeConnectedOut);
1408 computeTemplateConsolidationData.setNodesConnectedIn(computeNodeConnectedIn);
1409 data.setComputeTemplateConsolidationData(computeTemplateConsolidationData);
1413 private void addPortDataToCompositionData(List<Pair<String, String>> portTypeToIdList,
1414 UnifiedCompositionData data) {
1415 ComputeTemplateConsolidationData computeTemplateConsolidationData = data
1416 .getComputeTemplateConsolidationData();
1418 for (Pair<String, String> port : portTypeToIdList) {
1419 NodeTemplate portNodeTemplate =
1420 DataModelUtil.getNodeTemplate(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML), port.getRight());
1422 Optional<List<RequirementAssignmentData>> bindingReqList =
1423 TestUtils.getRequirementAssignmentDataList(portNodeTemplate, "binding");
1425 if (bindingReqList.isPresent()) {
1426 for (RequirementAssignmentData reqData : bindingReqList.get()) {
1427 String nodeId = reqData.getRequirementAssignment().getNode();
1428 if (nodeId.equals(computeTemplateConsolidationData.getNodeTemplateId())) {
1429 computeTemplateConsolidationData.addPort(port.getLeft(), port.getRight());
1433 Map<String, List<RequirementAssignmentData>> portNodeConnectedOut =
1434 TestUtils.getNodeConnectedOutList(portNodeTemplate, "link");
1435 PortTemplateConsolidationData portTemplateConsolidationData = TestUtils
1436 .createPortTemplateConsolidationData(port.getRight());
1437 portTemplateConsolidationData.setNodesConnectedOut(portNodeConnectedOut);
1439 //Add node connected in info to test data
1440 Map<String, List<RequirementAssignmentData>> portNodeConnectedIn =
1441 TestUtils.getNodeConnectedInList(port.getRight(), inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
1443 portTemplateConsolidationData.setNodesConnectedIn(portNodeConnectedIn);
1445 //Add group infromation for ports
1446 List<String> portGroups =
1447 TestUtils.getGroupsForNode(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML), port.getRight());
1448 portTemplateConsolidationData.setGroupIds(portGroups);
1449 data.addPortTemplateConsolidationData(portTemplateConsolidationData);
1452 addGetAttrForCompute(data);
1453 addGetAttrForPort(data);
1456 private Map<String, List<RequirementAssignmentData>> getVolume(
1457 List<RequirementAssignmentData> requirementAssignmentList) {
1458 Map<String, List<RequirementAssignmentData>> volume = new HashMap<>();
1459 for (RequirementAssignmentData requirementAssignmentData : requirementAssignmentList) {
1460 String volumeNodeTemplateId = requirementAssignmentData.getRequirementAssignment().getNode();
1461 volume.computeIfAbsent(volumeNodeTemplateId, k -> new ArrayList<>());
1462 volume.get(volumeNodeTemplateId).add(requirementAssignmentData);
1467 private void addGetAttrForPort(UnifiedCompositionData unifiedCompositionData) {
1468 for (PortTemplateConsolidationData portTemplateConsolidationData : unifiedCompositionData
1469 .getPortTemplateConsolidationDataList()) {
1470 if (portTemplateConsolidationData.getNodeTemplateId().equals(FSB1_INTERNAL1)) {
1471 addGetAttInUnifiedCompositionData(portTemplateConsolidationData, "network_name",
1472 NETWORK_ID, JSA_NET1);
1473 addGetAttInUnifiedCompositionData(portTemplateConsolidationData, SIZE,
1474 DEVICE_OWNER, CMAUI_VOLUME1);
1475 } else if (portTemplateConsolidationData.getNodeTemplateId().equals(FSB2_INTERNAL2)) {
1476 addGetAttInUnifiedCompositionData(portTemplateConsolidationData, TENANT_ID,
1477 NETWORK_ID, JSA_NET1);
1478 addGetAttInUnifiedCompositionData(portTemplateConsolidationData, "qos_policy",
1479 NETWORK_ID, JSA_NET1);
1480 addGetAttInUnifiedCompositionData(portTemplateConsolidationData, VOLUME_TYPE,
1481 TENANT_ID, CMAUI_VOLUME1);
1482 } else if (portTemplateConsolidationData.getNodeTemplateId().equals(FSB1_OAM)) {
1483 addGetAttInUnifiedCompositionData(portTemplateConsolidationData, SIZE,
1484 STATUS, CMAUI_VOLUME1);
1489 private void addGetAttrForPort2(UnifiedCompositionData unifiedCompositionData) {
1490 for (PortTemplateConsolidationData portTemplateConsolidationData : unifiedCompositionData
1491 .getPortTemplateConsolidationDataList()) {
1492 if (portTemplateConsolidationData.getNodeTemplateId().equals(FSB2_INTERNAL1)) {
1493 addGetAttInUnifiedCompositionData(portTemplateConsolidationData, VOLUME_TYPE,
1494 TENANT_ID, CMAUI_VOLUME3);
1495 } else if (portTemplateConsolidationData.getNodeTemplateId().equals(FSB1_INTERNAL2)) {
1496 addGetAttInUnifiedCompositionData(portTemplateConsolidationData, SIZE,
1497 DEVICE_OWNER, CMAUI_VOLUME3);
1498 addGetAttInUnifiedCompositionData(portTemplateConsolidationData, SIZE,
1499 STATUS, CMAUI_VOLUME1);
1504 private void addGetAttrForPortInnerUC(UnifiedCompositionData unifiedCompositionData) {
1505 for (PortTemplateConsolidationData portTemplateConsolidationData : unifiedCompositionData
1506 .getPortTemplateConsolidationDataList()) {
1507 if (portTemplateConsolidationData.getNodeTemplateId().equals(FSB1_INTERNAL1)) {
1508 addGetAttInUnifiedCompositionData(portTemplateConsolidationData, AVAILABILITY_ZONE,
1509 MYATTR, FSB1_template);
1510 addGetAttInUnifiedCompositionData(portTemplateConsolidationData, "metadata",
1511 MYATTR, FSB1_template);
1512 addGetAttInUnifiedCompositionData(portTemplateConsolidationData, "name",
1513 MYATTR, FSB1_template);
1514 addGetAttInUnifiedCompositionData(portTemplateConsolidationData, AVAILABILITY_ZONE,
1515 TENANT_ID, FSB1_template);
1520 private void addGetAttrForCompute(UnifiedCompositionData unifiedCompositionData) {
1521 addGetAttInUnifiedCompositionData(unifiedCompositionData.getComputeTemplateConsolidationData(),
1522 "dhcp_agent_ids", ADDRESSES, JSA_NET1);
1523 addGetAttInUnifiedCompositionData(unifiedCompositionData.getComputeTemplateConsolidationData(),
1524 VOLUME_TYPE, ADDRESSES, CMAUI_VOLUME1);
1525 addGetAttInUnifiedCompositionData(unifiedCompositionData.getComputeTemplateConsolidationData(),
1526 SIZE, ACCESS_IPv6, CMAUI_VOLUME2);
1529 private void addGetAttrForCompute2(UnifiedCompositionData unifiedCompositionData) {
1530 addGetAttInUnifiedCompositionData(unifiedCompositionData.getComputeTemplateConsolidationData(),
1531 VOLUME_TYPE, ADDRESSES, CMAUI_VOLUME3);
1532 addGetAttInUnifiedCompositionData(unifiedCompositionData.getComputeTemplateConsolidationData(),
1533 SIZE, USER_DATA_FORMAT, CMAUI_VOLUME3);
1536 private void addOutputGetAttrInForComputeNoConsolidation(
1537 UnifiedCompositionData unifiedCompositionData) {
1538 addOutputGetAttInUnifiedCompositionData(unifiedCompositionData
1539 .getComputeTemplateConsolidationData(), SIMPLE_OUTPUT1, ACCESS_IPv4);
1540 addOutputGetAttInUnifiedCompositionData(unifiedCompositionData
1541 .getComputeTemplateConsolidationData(), SIMPLE_OUTPUT2, ADDRESSES);
1542 addOutputGetAttInUnifiedCompositionData(unifiedCompositionData
1543 .getComputeTemplateConsolidationData(), COMPLEX_OUTPUT1, ADDRESSES);
1544 addOutputGetAttInUnifiedCompositionData(unifiedCompositionData
1545 .getComputeTemplateConsolidationData(), COMPLEX_OUTPUT3, ACCESS_IPv6);
1549 private void addOutputGetAttrInForCompute1WithConsolidation(
1550 UnifiedCompositionData unifiedCompositionData) {
1551 addOutputGetAttInUnifiedCompositionData(unifiedCompositionData
1552 .getComputeTemplateConsolidationData(), SIMPLE_OUTPUT1, ACCESS_IPv4);
1553 addOutputGetAttInUnifiedCompositionData(unifiedCompositionData
1554 .getComputeTemplateConsolidationData(), COMPLEX_OUTPUT1, ADDRESSES);
1558 private void addOutputGetAttrInForCompute2WithConsolidation(
1559 UnifiedCompositionData unifiedCompositionData) {
1560 addOutputGetAttInUnifiedCompositionData(unifiedCompositionData
1561 .getComputeTemplateConsolidationData(), SIMPLE_OUTPUT2, ADDRESSES);
1564 private void addOutputGetAttrInForPortNoConsolidation(
1565 UnifiedCompositionData unifiedCompositionData) {
1566 for (PortTemplateConsolidationData portTemplateConsolidationData : unifiedCompositionData
1567 .getPortTemplateConsolidationDataList()) {
1568 if (portTemplateConsolidationData.getNodeTemplateId().equals(FSB1_INTERNAL1)) {
1569 addOutputGetAttInUnifiedCompositionData(portTemplateConsolidationData, COMPLEX_OUTPUT2,
1571 addOutputGetAttInUnifiedCompositionData(portTemplateConsolidationData, COMPLEX_OUTPUT3,
1573 } else if (portTemplateConsolidationData.getNodeTemplateId().equals(FSB2_INTERNAL2)) {
1574 addOutputGetAttInUnifiedCompositionData(portTemplateConsolidationData, COMPLEX_OUTPUT1,
1576 } else if (portTemplateConsolidationData.getNodeTemplateId().equals(FSB1_OAM)) {
1577 addOutputGetAttInUnifiedCompositionData(portTemplateConsolidationData, COMPLEX_OUTPUT2,
1583 private void addOutputGetAttrInForPortWithConsolidation1(
1584 UnifiedCompositionData unifiedCompositionData) {
1585 for (PortTemplateConsolidationData portTemplateConsolidationData : unifiedCompositionData
1586 .getPortTemplateConsolidationDataList()) {
1587 if (portTemplateConsolidationData.getNodeTemplateId().equals(FSB2_INTERNAL2)) {
1588 addOutputGetAttInUnifiedCompositionData(portTemplateConsolidationData, COMPLEX_OUTPUT1,
1590 } else if (portTemplateConsolidationData.getNodeTemplateId().equals(FSB1_INTERNAL1)) {
1591 addOutputGetAttInUnifiedCompositionData(portTemplateConsolidationData, COMPLEX_OUTPUT3,
1597 private void addOutputGetAttrInForPortWithConsolidation2(
1598 UnifiedCompositionData unifiedCompositionData) {
1599 for (PortTemplateConsolidationData portTemplateConsolidationData : unifiedCompositionData
1600 .getPortTemplateConsolidationDataList()) {
1601 if (portTemplateConsolidationData.getNodeTemplateId().equals(FSB2_INTERNAL1)) {
1602 addOutputGetAttInUnifiedCompositionData(portTemplateConsolidationData, COMPLEX_OUTPUT2,
1604 } else if (portTemplateConsolidationData.getNodeTemplateId().equals(FSB1_INTERNAL2)) {
1605 addOutputGetAttInUnifiedCompositionData(portTemplateConsolidationData, COMPLEX_OUTPUT2,
1611 private NodeTemplate getMockNode(String path) throws IOException {
1612 URL resource = this.getClass().getResource(path);
1613 YamlUtil yamlUtil = new YamlUtil();
1614 return yamlUtil.yamlToObject(resource.openStream(), NodeTemplate.class);