1 package org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation;
3 import java.util.Optional;
4 import org.onap.sdc.tosca.datatypes.model.RequirementAssignment;
5 import org.onap.sdc.tosca.datatypes.model.ServiceTemplate;
6 import org.openecomp.sdc.heat.datatypes.model.HeatOrchestrationTemplate;
7 import org.openecomp.sdc.heat.datatypes.model.Resource;
8 import org.openecomp.sdc.tosca.services.ToscaUtil;
9 import org.openecomp.sdc.translator.datatypes.heattotosca.to.TranslateTo;
10 import org.openecomp.sdc.translator.services.heattotosca.HeatToToscaUtil;
12 public class PortConsolidationDataHandler implements ConsolidationDataHandler {
14 private final PortConsolidationData portConsolidationData;
16 public PortConsolidationDataHandler(PortConsolidationData portConsolidationData) {
17 this.portConsolidationData = portConsolidationData;
21 public void addNodesConnectedOut(TranslateTo translateTo, String nodeTemplateId, String requirementId,
22 RequirementAssignment requirementAssignment) {
24 EntityConsolidationData entityConsolidationData =
25 getPortTemplateConsolidationData(translateTo, translateTo.getResourceId(),
26 translateTo.getResource().getType(), translateTo.getTranslatedId());
28 entityConsolidationData.addNodesConnectedOut(nodeTemplateId, requirementId, requirementAssignment);
33 public void addNodesConnectedIn(TranslateTo translateTo, String sourceNodeTemplateId,
34 String dependentNodeTemplateId, String targetResourceId, String requirementId,
35 RequirementAssignment requirementAssignment) {
37 EntityConsolidationData entityConsolidationData =
38 getPortTemplateConsolidationData(translateTo, translateTo.getResourceId(),
39 translateTo.getResource().getType(), dependentNodeTemplateId);
41 entityConsolidationData.addNodesConnectedIn(sourceNodeTemplateId, requirementId, requirementAssignment);
46 public void removeParamNameFromAttrFuncList(ServiceTemplate serviceTemplate,
47 HeatOrchestrationTemplate heatOrchestrationTemplate, String paramName, String contrailSharedResourceId,
48 String sharedTranslatedResourceId) {
50 Resource resource = heatOrchestrationTemplate.getResources().get(contrailSharedResourceId);
51 EntityConsolidationData entityConsolidationData = getPortTemplateConsolidationData(serviceTemplate,
52 contrailSharedResourceId, resource.getType(), sharedTranslatedResourceId);
53 entityConsolidationData.removeParamNameFromAttrFuncList(paramName);
57 private PortTemplateConsolidationData getPortTemplateConsolidationData(TranslateTo translateTo,
58 String portResourceId, String portResourceType, String portNodeTemplateId) {
59 ServiceTemplate serviceTemplate = translateTo.getServiceTemplate();
60 return getPortTemplateConsolidationData(serviceTemplate, portResourceId, portResourceType, portNodeTemplateId);
63 private PortTemplateConsolidationData getPortTemplateConsolidationData(ServiceTemplate serviceTemplate,
64 String portResourceId, String portResourceType, String portNodeTemplateId) {
66 String serviceTemplateFileName = ToscaUtil.getServiceTemplateFileName(serviceTemplate);
67 FilePortConsolidationData filePortConsolidationData = portConsolidationData
68 .getFilePortConsolidationData(serviceTemplateFileName);
70 if (filePortConsolidationData == null) {
71 filePortConsolidationData = new FilePortConsolidationData();
72 portConsolidationData.setFilePortConsolidationData(serviceTemplateFileName,
73 filePortConsolidationData);
76 PortTemplateConsolidationData portTemplateConsolidationData =
77 filePortConsolidationData.getPortTemplateConsolidationData(portNodeTemplateId);
78 if (portTemplateConsolidationData == null) {
79 portTemplateConsolidationData = getInitPortTemplateConsolidationData(portNodeTemplateId,
80 portResourceId, portResourceType);
81 filePortConsolidationData.setPortTemplateConsolidationData(portNodeTemplateId,
82 portTemplateConsolidationData);
85 return portTemplateConsolidationData;
88 private static PortTemplateConsolidationData getInitPortTemplateConsolidationData(String portNodeTemplateId,
89 String portResourceId,
90 String portResourceType) {
91 PortTemplateConsolidationData portTemplateConsolidationData = new PortTemplateConsolidationData();
92 portTemplateConsolidationData.setNodeTemplateId(portNodeTemplateId);
93 Optional<String> portNetworkRole = HeatToToscaUtil.evaluateNetworkRoleFromResourceId(portResourceId,
95 portNetworkRole.ifPresent(portTemplateConsolidationData::setNetworkRole);
96 return portTemplateConsolidationData;