1 package org.openecomp.sdc.translator.services.heattotosca;
3 import org.apache.commons.collections4.MapUtils;
4 import org.apache.commons.lang3.math.NumberUtils;
5 import org.openecomp.sdc.datatypes.configuration.ImplementationConfiguration;
6 import org.openecomp.sdc.heat.datatypes.model.HeatOrchestrationTemplate;
7 import org.openecomp.sdc.heat.datatypes.model.HeatResourcesTypes;
8 import org.openecomp.sdc.heat.datatypes.model.Resource;
9 import org.openecomp.sdc.logging.api.Logger;
10 import org.openecomp.sdc.logging.api.LoggerFactory;
11 import org.openecomp.sdc.tosca.datatypes.model.NodeTemplate;
12 import org.openecomp.sdc.tosca.datatypes.model.RequirementAssignment;
13 import org.openecomp.sdc.tosca.datatypes.model.ServiceTemplate;
14 import org.openecomp.sdc.tosca.services.DataModelUtil;
15 import org.openecomp.sdc.tosca.services.ToscaUtil;
16 import org.openecomp.sdc.translator.datatypes.heattotosca.TranslationContext;
17 import org.openecomp.sdc.translator.datatypes.heattotosca.to.TranslateTo;
18 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.ComputeConsolidationData;
19 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.ComputeTemplateConsolidationData;
20 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.ConsolidationData;
21 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.EntityConsolidationData;
22 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.FileComputeConsolidationData;
23 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.FileNestedConsolidationData;
24 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.FilePortConsolidationData;
25 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.GetAttrFuncData;
26 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.NestedConsolidationData;
27 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.NestedTemplateConsolidationData;
28 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.PortConsolidationData;
29 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.PortTemplateConsolidationData;
30 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.RequirementAssignmentData;
31 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.TypeComputeConsolidationData;
33 import java.util.ArrayList;
34 import java.util.HashMap;
35 import java.util.Iterator;
36 import java.util.List;
38 import java.util.Objects;
42 * Utility class for consolidation data collection helper methods.
44 public class ConsolidationDataUtil {
46 protected static Logger logger = (Logger) LoggerFactory.getLogger(ConsolidationDataUtil.class);
49 * Gets compute template consolidation data.
51 * @param context the translation context
52 * @param serviceTemplate the service template
53 * @param computeNodeType the compute node type
54 * @param computeNodeTemplateId the compute node template id
55 * @return the compute template consolidation data
57 public static ComputeTemplateConsolidationData getComputeTemplateConsolidationData(
58 TranslationContext context,
59 ServiceTemplate serviceTemplate,
60 String computeNodeType,
61 String computeNodeTemplateId) {
63 ConsolidationData consolidationData = context.getConsolidationData();
64 String serviceTemplateFileName = ToscaUtil.getServiceTemplateFileName(serviceTemplate);
66 ComputeConsolidationData computeConsolidationData = consolidationData
67 .getComputeConsolidationData();
69 FileComputeConsolidationData fileComputeConsolidationData = computeConsolidationData
70 .getFileComputeConsolidationData(serviceTemplateFileName);
72 if (fileComputeConsolidationData == null) {
73 fileComputeConsolidationData = new FileComputeConsolidationData();
74 computeConsolidationData.setFileComputeConsolidationData(serviceTemplateFileName,
75 fileComputeConsolidationData);
78 TypeComputeConsolidationData typeComputeConsolidationData = fileComputeConsolidationData
79 .getTypeComputeConsolidationData(computeNodeType);
80 if (typeComputeConsolidationData == null) {
81 typeComputeConsolidationData = new TypeComputeConsolidationData();
82 fileComputeConsolidationData.setTypeComputeConsolidationData(computeNodeType,
83 typeComputeConsolidationData);
86 ComputeTemplateConsolidationData computeTemplateConsolidationData =
87 typeComputeConsolidationData.getComputeTemplateConsolidationData(computeNodeTemplateId);
88 if (computeTemplateConsolidationData == null) {
89 computeTemplateConsolidationData = new ComputeTemplateConsolidationData();
90 computeTemplateConsolidationData.setNodeTemplateId(computeNodeTemplateId);
91 typeComputeConsolidationData.setComputeTemplateConsolidationData(computeNodeTemplateId,
92 computeTemplateConsolidationData);
95 return computeTemplateConsolidationData;
100 * Gets port template consolidation data.
102 * @param context the context
103 * @param serviceTemplate the service template
104 * @param portNodeTemplateId the port node template id
105 * @return the port template consolidation data
107 public static PortTemplateConsolidationData getPortTemplateConsolidationData(
108 TranslationContext context,
109 ServiceTemplate serviceTemplate,
110 String portNodeTemplateId) {
112 ConsolidationData consolidationData = context.getConsolidationData();
113 String serviceTemplateFileName = ToscaUtil.getServiceTemplateFileName(serviceTemplate);
115 PortConsolidationData portConsolidationData = consolidationData.getPortConsolidationData();
117 FilePortConsolidationData filePortConsolidationData = portConsolidationData
118 .getFilePortConsolidationData(serviceTemplateFileName);
120 if (filePortConsolidationData == null) {
121 filePortConsolidationData = new FilePortConsolidationData();
122 portConsolidationData.setFilePortConsolidationData(serviceTemplateFileName,
123 filePortConsolidationData);
126 PortTemplateConsolidationData portTemplateConsolidationData =
127 filePortConsolidationData.getPortTemplateConsolidationData(portNodeTemplateId);
128 if (portTemplateConsolidationData == null) {
129 portTemplateConsolidationData = new PortTemplateConsolidationData();
130 portTemplateConsolidationData.setNodeTemplateId(portNodeTemplateId);
131 filePortConsolidationData.setPortTemplateConsolidationData(portNodeTemplateId,
132 portTemplateConsolidationData);
135 return portTemplateConsolidationData;
140 * Gets nested template consolidation data.
142 * @param context the context
143 * @param serviceTemplate the service template
144 * @param nestedNodeTemplateId the nested node template id
145 * @return the nested template consolidation data
147 public static NestedTemplateConsolidationData getNestedTemplateConsolidationData(
148 TranslationContext context,
149 ServiceTemplate serviceTemplate,
150 String nestedNodeTemplateId) {
152 ConsolidationData consolidationData = context.getConsolidationData();
153 String serviceTemplateFileName = ToscaUtil.getServiceTemplateFileName(serviceTemplate);
155 NestedConsolidationData nestedConsolidationData = consolidationData
156 .getNestedConsolidationData();
158 FileNestedConsolidationData fileNestedConsolidationData = nestedConsolidationData
159 .getFileNestedConsolidationData(serviceTemplateFileName);
161 if (fileNestedConsolidationData == null) {
162 fileNestedConsolidationData = new FileNestedConsolidationData();
163 nestedConsolidationData.setFileNestedConsolidationData(serviceTemplateFileName,
164 fileNestedConsolidationData);
167 NestedTemplateConsolidationData nestedTemplateConsolidationData =
168 fileNestedConsolidationData.getNestedTemplateConsolidationData(nestedNodeTemplateId);
169 if (nestedTemplateConsolidationData == null) {
170 nestedTemplateConsolidationData = new NestedTemplateConsolidationData();
171 nestedTemplateConsolidationData.setNodeTemplateId(nestedNodeTemplateId);
172 fileNestedConsolidationData.setNestedTemplateConsolidationData(nestedNodeTemplateId,
173 nestedTemplateConsolidationData);
176 return nestedTemplateConsolidationData;
180 * Update group id information in consolidation data.
182 * @param entityConsolidationData Entity consolidation data (Port/Compute)
183 * @param translatedGroupId Group id of which compute node is a part
185 public static void updateGroupIdInConsolidationData(EntityConsolidationData
186 entityConsolidationData,
187 String translatedGroupId) {
188 if (entityConsolidationData.getGroupIds() == null) {
189 entityConsolidationData.setGroupIds(new ArrayList<>());
191 entityConsolidationData.getGroupIds().add(translatedGroupId);
195 * Update volume information in consolidation data.
197 * @param translateTo {@link TranslateTo} object
198 * @param computeType Local type of the compute node
199 * @param computeNodeTemplateId Node template id of the compute node
200 * @param requirementAssignment RequirementAssignment object
202 public static void updateComputeConsolidationDataVolumes(TranslateTo translateTo,
204 String computeNodeTemplateId,
205 String requirementId,
206 RequirementAssignment
207 requirementAssignment) {
208 TranslationContext translationContext = translateTo.getContext();
209 ServiceTemplate serviceTemplate = translateTo.getServiceTemplate();
210 ComputeTemplateConsolidationData computeTemplateConsolidationData =
211 getComputeTemplateConsolidationData(translationContext, serviceTemplate, computeType,
212 computeNodeTemplateId);
213 computeTemplateConsolidationData.addVolume(requirementId, requirementAssignment);
218 * Update port in consolidation data.
220 * @param translateTo the translate to
221 * @param computeNodeType the compute node type
222 * @param portNodeTemplateId the port node template id
224 public static void updatePortInConsolidationData(TranslateTo translateTo,
225 String computeNodeType,
226 String portNodeTemplateId) {
227 TranslationContext translationContext = translateTo.getContext();
228 ServiceTemplate serviceTemplate = translateTo.getServiceTemplate();
229 ComputeTemplateConsolidationData computeTemplateConsolidationData =
230 getComputeTemplateConsolidationData(translationContext, serviceTemplate, computeNodeType,
231 translateTo.getTranslatedId());
232 computeTemplateConsolidationData.addPort(getPortType(portNodeTemplateId), portNodeTemplateId);
233 // create port in consolidation data
234 getPortTemplateConsolidationData(translationContext, serviceTemplate, portNodeTemplateId);
238 * Update nodes connected in and out for Depends on and connectivity in consolidation data.
240 * @param translateTo the translate to
241 * @param targetResourceId the target resource id
242 * @param nodeTemplateId the source node template id
243 * @param requirementAssignment the requirement assignment
245 public static void updateNodesConnectedData(TranslateTo translateTo, String targetResourceId,
246 Resource targetResource, Resource sourceResource,
247 String nodeTemplateId, String requirementId,
248 RequirementAssignment requirementAssignment) {
249 ConsolidationEntityType consolidationEntityType = ConsolidationEntityType.OTHER;
250 HeatOrchestrationTemplate heatOrchestrationTemplate = translateTo
251 .getHeatOrchestrationTemplate();
252 TranslationContext translationContext = translateTo.getContext();
254 consolidationEntityType.setEntityType(heatOrchestrationTemplate, sourceResource,
255 targetResource, translateTo.getContext());
256 // Add resource dependency information in nodesConnectedIn if the target node
257 // is a consolidation entity
258 if (isConsolidationEntity(consolidationEntityType.getTargetEntityType())
260 .isValidDependsOnCandidate(heatOrchestrationTemplate, sourceResource,
261 targetResource, consolidationEntityType, translationContext)) {
262 ConsolidationDataUtil.updateNodesConnectedIn(translateTo,
263 nodeTemplateId, consolidationEntityType.getTargetEntityType(), targetResourceId,
264 requirementId, requirementAssignment);
267 //Add resource dependency information in nodesConnectedOut if the source node
268 //is a consolidation entity
269 if (isConsolidationEntity(consolidationEntityType.getSourceEntityType())
271 .isValidDependsOnCandidate(heatOrchestrationTemplate, sourceResource,
272 targetResource, consolidationEntityType, translationContext)) {
273 ConsolidationDataUtil.updateNodesConnectedOut(translateTo,
274 requirementAssignment.getNode(), consolidationEntityType.getSourceEntityType(),
275 requirementId, requirementAssignment);
280 private static boolean isConsolidationEntity(ConsolidationEntityType consolidationEntityType) {
281 return (consolidationEntityType == ConsolidationEntityType.COMPUTE
282 || consolidationEntityType == ConsolidationEntityType.PORT
283 || consolidationEntityType == ConsolidationEntityType.NESTED
284 || consolidationEntityType == ConsolidationEntityType.VFC_NESTED);
288 * Update nodes connected from this node in consolidation data.
290 * @param translateTo the translate to
291 * @param nodeTemplateId the node template id of the target node
292 * @param consolidationEntityType the entity type (compute or port)
293 * @param requirementId the requirement id
294 * @param requirementAssignment the requirement assignment
296 public static void updateNodesConnectedOut(TranslateTo translateTo,
297 String nodeTemplateId,
298 ConsolidationEntityType consolidationEntityType,
299 String requirementId,
300 RequirementAssignment requirementAssignment) {
301 EntityConsolidationData entityConsolidationData = null;
302 TranslationContext translationContext = translateTo.getContext();
303 ServiceTemplate serviceTemplate = translateTo.getServiceTemplate();
304 RequirementAssignmentData requirementAssignmentData = new RequirementAssignmentData(
305 requirementId, requirementAssignment);
307 if (consolidationEntityType == ConsolidationEntityType.COMPUTE) {
308 String nodeType = DataModelUtil.getNodeTemplate(serviceTemplate, translateTo
309 .getTranslatedId()).getType();
310 entityConsolidationData = getComputeTemplateConsolidationData(translationContext,
311 serviceTemplate, nodeType, translateTo.getTranslatedId());
312 } else if (consolidationEntityType == ConsolidationEntityType.PORT) {
313 entityConsolidationData = getPortTemplateConsolidationData(translationContext,
314 serviceTemplate, translateTo.getTranslatedId());
315 } else if (consolidationEntityType == ConsolidationEntityType.VFC_NESTED
316 || consolidationEntityType == ConsolidationEntityType.NESTED) {
317 //ConnectedOut data for nested is not updated
321 if (entityConsolidationData.getNodesConnectedOut() == null) {
322 entityConsolidationData.setNodesConnectedOut(new HashMap<>());
325 entityConsolidationData.getNodesConnectedOut()
326 .computeIfAbsent(nodeTemplateId, k -> new ArrayList<>())
327 .add(requirementAssignmentData);
331 * Update nodes connected from this node in consolidation data.
333 * @param translateTo the translate to
334 * @param sourceNodeTemplateId the node template id of the source node
335 * @param consolidationEntityType Entity type (compute or port)
336 * @param requirementId Requirement Id
337 * @param requirementAssignment the requirement assignment
339 public static void updateNodesConnectedIn(TranslateTo translateTo, String sourceNodeTemplateId,
340 ConsolidationEntityType consolidationEntityType,
341 String targetResourceId,
342 String requirementId,
343 RequirementAssignment requirementAssignment) {
344 EntityConsolidationData entityConsolidationData = null;
345 TranslationContext translationContext = translateTo.getContext();
346 ServiceTemplate serviceTemplate = translateTo.getServiceTemplate();
347 RequirementAssignmentData requirementAssignmentData = new RequirementAssignmentData(
348 requirementId, requirementAssignment);
349 String dependentNodeTemplateId = requirementAssignment.getNode();
350 if (consolidationEntityType == ConsolidationEntityType.COMPUTE) {
351 NodeTemplate computeNodeTemplate = DataModelUtil.getNodeTemplate(serviceTemplate,
352 dependentNodeTemplateId);
353 String nodeType = null;
354 if (Objects.isNull(computeNodeTemplate)) {
355 Resource targetResource =
356 translateTo.getHeatOrchestrationTemplate().getResources().get(targetResourceId);
357 NameExtractor nodeTypeNameExtractor =
358 translateTo.getContext().getNameExtractorImpl(targetResource.getType());
360 nodeTypeNameExtractor.extractNodeTypeName(translateTo.getHeatOrchestrationTemplate()
361 .getResources().get(dependentNodeTemplateId),
362 dependentNodeTemplateId, dependentNodeTemplateId);
364 nodeType = computeNodeTemplate.getType();
367 entityConsolidationData = getComputeTemplateConsolidationData(translationContext,
368 serviceTemplate, nodeType, dependentNodeTemplateId);
369 } else if (consolidationEntityType == ConsolidationEntityType.PORT) {
370 entityConsolidationData = getPortTemplateConsolidationData(translationContext,
371 serviceTemplate, dependentNodeTemplateId);
372 } else if (consolidationEntityType == ConsolidationEntityType.NESTED
373 || consolidationEntityType == ConsolidationEntityType.VFC_NESTED) {
374 entityConsolidationData = getNestedTemplateConsolidationData(translationContext,
375 serviceTemplate, dependentNodeTemplateId);
378 if (entityConsolidationData.getNodesConnectedIn() == null) {
379 entityConsolidationData.setNodesConnectedIn(new HashMap<>());
382 entityConsolidationData.getNodesConnectedIn()
383 .computeIfAbsent(sourceNodeTemplateId, k -> new ArrayList<>())
384 .add(requirementAssignmentData);
389 * Checks if the current HEAT resource if of type compute.
391 * @param heatOrchestrationTemplate the heat orchestration template
392 * @param resourceId the resource id
393 * @return true if the resource is of compute type and false otherwise
395 public static boolean isComputeResource(HeatOrchestrationTemplate heatOrchestrationTemplate,
397 String resourceType = heatOrchestrationTemplate.getResources().get(resourceId).getType();
398 Map<String, ImplementationConfiguration> supportedComputeResources = TranslationContext
399 .getSupportedConsolidationComputeResources();
400 if (supportedComputeResources.containsKey(resourceType)) {
401 if (supportedComputeResources.get(resourceType).isEnable()) {
410 * Checks if the current HEAT resource if of type compute.
412 * @param resource the resource
413 * @return true if the resource is of compute type and false otherwise
415 public static boolean isComputeResource(Resource resource) {
416 String resourceType = resource.getType();
417 Map<String, ImplementationConfiguration> supportedComputeResources = TranslationContext
418 .getSupportedConsolidationComputeResources();
419 if (supportedComputeResources.containsKey(resourceType)) {
420 if (supportedComputeResources.get(resourceType).isEnable()) {
429 * Checks if the current HEAT resource if of type port.
431 * @param heatOrchestrationTemplate the heat orchestration template
432 * @param resourceId the resource id
433 * @return true if the resource is of port type and false otherwise
435 public static boolean isPortResource(HeatOrchestrationTemplate heatOrchestrationTemplate,
437 String resourceType = heatOrchestrationTemplate.getResources().get(resourceId).getType();
438 Map<String, ImplementationConfiguration> supportedPortResources = TranslationContext
439 .getSupportedConsolidationPortResources();
440 if (supportedPortResources.containsKey(resourceType)) {
441 if (supportedPortResources.get(resourceType).isEnable()) {
450 * Checks if the current HEAT resource if of type port.
452 * @param resource the resource
453 * @return true if the resource is of port type and false otherwise
455 public static boolean isPortResource(Resource resource) {
456 String resourceType = resource.getType();
457 Map<String, ImplementationConfiguration> supportedPortResources = TranslationContext
458 .getSupportedConsolidationPortResources();
459 if (supportedPortResources.containsKey(resourceType)) {
460 if (supportedPortResources.get(resourceType).isEnable()) {
469 * Checks if the current HEAT resource if of type volume.
471 * @param heatOrchestrationTemplate the heat orchestration template
472 * @param resourceId the resource id
473 * @return true if the resource is of volume type and false otherwise
475 public static boolean isVolumeResource(HeatOrchestrationTemplate heatOrchestrationTemplate,
477 String resourceType = heatOrchestrationTemplate.getResources().get(resourceId).getType();
478 return (resourceType.equals(HeatResourcesTypes.CINDER_VOLUME_RESOURCE_TYPE.getHeatResource())
479 || resourceType.equals(HeatResourcesTypes.CINDER_VOLUME_ATTACHMENT_RESOURCE_TYPE
480 .getHeatResource()));
484 * Checks if the current HEAT resource if of type volume.
486 * @param resource the resource
487 * @return true if the resource is of volume type and false otherwise
489 public static boolean isVolumeResource(Resource resource) {
490 String resourceType = resource.getType();
491 return (resourceType.equals(HeatResourcesTypes.CINDER_VOLUME_RESOURCE_TYPE.getHeatResource())
492 || resourceType.equals(HeatResourcesTypes.CINDER_VOLUME_ATTACHMENT_RESOURCE_TYPE
493 .getHeatResource()));
499 * @param portNodeTemplateId the port node template id
500 * @return the port type
502 public static String getPortType(String portNodeTemplateId) {
503 String[] portSplitArr = portNodeTemplateId.split("(?<=\\D)(?=\\d)|(?<=\\d)(?=\\D)");
504 String finalValue = "";
505 if (NumberUtils.isNumber(portSplitArr[portSplitArr.length - 1])) {
506 for (String id : portSplitArr) {
507 finalValue = finalValue + id;
509 while (finalValue.length() > 0) {
510 if (Character.isLetter(finalValue.charAt(finalValue.length() - 1))) {
513 finalValue = finalValue.substring(0, finalValue.length() - 1);
516 for (String id : portSplitArr) {
517 if (!NumberUtils.isNumber(id)) {
518 finalValue = finalValue + id;
526 * Update node template id for the nested node templates in the consolidation data.
528 * @param translateTo the translate to
530 public static void updateNestedNodeTemplateId(TranslateTo translateTo) {
531 TranslationContext context = translateTo.getContext();
532 ServiceTemplate serviceTemplate = translateTo.getServiceTemplate();
533 getNestedTemplateConsolidationData(context, serviceTemplate, translateTo.getTranslatedId());
536 public static void removeSharedResource(ServiceTemplate serviceTemplate,
537 HeatOrchestrationTemplate heatOrchestrationTemplate,
538 TranslationContext context,
540 String contrailSharedResourceId,
541 String sharedTranslatedResourceId) {
542 if (ConsolidationDataUtil.isComputeResource(heatOrchestrationTemplate,
543 contrailSharedResourceId)) {
544 NodeTemplate nodeTemplate = DataModelUtil.getNodeTemplate(serviceTemplate,
545 sharedTranslatedResourceId);
546 EntityConsolidationData entityConsolidationData = getComputeTemplateConsolidationData(
547 context, serviceTemplate, nodeTemplate.getType(), sharedTranslatedResourceId);
548 List<GetAttrFuncData> getAttrFuncDataList = entityConsolidationData
549 .getOutputParametersGetAttrIn();
550 removeParamNameFromAttrFuncList(paramName, getAttrFuncDataList);
552 if (ConsolidationDataUtil.isPortResource(heatOrchestrationTemplate,
553 contrailSharedResourceId)) {
554 NodeTemplate nodeTemplate = DataModelUtil.getNodeTemplate(serviceTemplate,
555 sharedTranslatedResourceId);
556 EntityConsolidationData entityConsolidationData = getPortTemplateConsolidationData(context,
557 serviceTemplate, sharedTranslatedResourceId);
558 List<GetAttrFuncData> getAttrFuncDataList = entityConsolidationData
559 .getOutputParametersGetAttrIn();
560 removeParamNameFromAttrFuncList(paramName, getAttrFuncDataList);
564 private static void removeParamNameFromAttrFuncList(String paramName,
565 List<GetAttrFuncData> getAttrFuncDataList) {
566 Iterator<GetAttrFuncData> itr = getAttrFuncDataList.iterator();
567 while (itr.hasNext()) {
568 GetAttrFuncData getAttrFuncData = itr.next();
569 if (paramName.equals(getAttrFuncData.getFieldName())) {
575 public static void updateNodeGetAttributeIn(EntityConsolidationData entityConsolidationData,
576 String nodeTemplateId, String propertyName,
577 String attributeName) {
578 GetAttrFuncData getAttrFuncData = new GetAttrFuncData();
579 getAttrFuncData.setFieldName(propertyName);
580 getAttrFuncData.setAttributeName(attributeName);
581 entityConsolidationData.addNodesGetAttrIn(nodeTemplateId, getAttrFuncData);
585 public static void updateNodeGetAttributeOut(EntityConsolidationData entityConsolidationData,
586 String nodeTemplateId, String propertyName,
587 String attributeName) {
588 GetAttrFuncData getAttrFuncData = new GetAttrFuncData();
589 getAttrFuncData.setFieldName(propertyName);
590 getAttrFuncData.setAttributeName(attributeName);
591 entityConsolidationData.addNodesGetAttrOut(nodeTemplateId, getAttrFuncData);
595 public static void updateOutputGetAttributeInConsolidationData(EntityConsolidationData
596 entityConsolidationData,
597 String outputParameterName,
598 String attributeName) {
601 GetAttrFuncData getAttrFuncData = new GetAttrFuncData();
602 getAttrFuncData.setFieldName(outputParameterName);
603 getAttrFuncData.setAttributeName(attributeName);
604 entityConsolidationData.addOutputParamGetAttrIn(getAttrFuncData);
608 public static boolean isComputeReferenceToPortId(ComputeTemplateConsolidationData compute,
610 if (MapUtils.isEmpty(compute.getPorts())) {
613 for (List<String> portIdsPerType : compute.getPorts().values()) {
614 if (portIdsPerType.contains(portId)) {