diff options
Diffstat (limited to 'openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation')
7 files changed, 945 insertions, 307 deletions
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/ComputeConsolidationDataHandler.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/ComputeConsolidationDataHandler.java new file mode 100644 index 0000000000..cc27dd9806 --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/ComputeConsolidationDataHandler.java @@ -0,0 +1,138 @@ +/* + * Copyright © 2016-2018 European Support Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation; + +import java.util.Objects; +import org.onap.sdc.tosca.datatypes.model.NodeTemplate; +import org.onap.sdc.tosca.datatypes.model.RequirementAssignment; +import org.onap.sdc.tosca.datatypes.model.ServiceTemplate; +import org.openecomp.sdc.heat.datatypes.model.HeatOrchestrationTemplate; +import org.openecomp.sdc.heat.datatypes.model.Resource; +import org.openecomp.sdc.tosca.services.DataModelUtil; +import org.openecomp.sdc.tosca.services.ToscaUtil; +import org.openecomp.sdc.translator.datatypes.heattotosca.TranslationContext; +import org.openecomp.sdc.translator.datatypes.heattotosca.to.TranslateTo; +import org.openecomp.sdc.translator.services.heattotosca.NameExtractor; + +public class ComputeConsolidationDataHandler implements ConsolidationDataHandler { + + private final ComputeConsolidationData computeConsolidationData; + + ComputeConsolidationDataHandler(ComputeConsolidationData computeConsolidationData) { + this.computeConsolidationData = computeConsolidationData; + } + + @Override + public void addNodesConnectedOut(TranslateTo translateTo, String nodeTemplateId, String requirementId, + RequirementAssignment requirementAssignment) { + + String translatedSourceNodeId = translateTo.getTranslatedId(); + ServiceTemplate serviceTemplate = translateTo.getServiceTemplate(); + NodeTemplate computeNodeTemplate = DataModelUtil.getNodeTemplate(serviceTemplate, translatedSourceNodeId); + String nodeType = computeNodeTemplate.getType(); + + EntityConsolidationData entityConsolidationData = + getComputeTemplateConsolidationData(translateTo, nodeType, translatedSourceNodeId); + + if (Objects.nonNull(entityConsolidationData)) { + entityConsolidationData.addNodesConnectedOut(nodeTemplateId, requirementId, requirementAssignment); + } + } + + @Override + public void addNodesConnectedIn(TranslateTo translateTo, String sourceNodeTemplateId, + String dependentNodeTemplateId, String targetResourceId, String requirementId, + RequirementAssignment requirementAssignment) { + + ServiceTemplate serviceTemplate = translateTo.getServiceTemplate(); + NodeTemplate nodeTemplate = DataModelUtil.getNodeTemplate(serviceTemplate, dependentNodeTemplateId); + String nodeType = getNodeType(nodeTemplate, translateTo, targetResourceId, dependentNodeTemplateId); + EntityConsolidationData entityConsolidationData = + getComputeTemplateConsolidationData(translateTo, nodeType, dependentNodeTemplateId); + + if (Objects.nonNull(entityConsolidationData)) { + entityConsolidationData.addNodesConnectedIn(sourceNodeTemplateId, requirementId, requirementAssignment); + } + } + + @Override + public void removeParamNameFromAttrFuncList(ServiceTemplate serviceTemplate, + HeatOrchestrationTemplate heatOrchestrationTemplate, String paramName, String contrailSharedResourceId, + String sharedTranslatedResourceId) { + + NodeTemplate nodeTemplate = DataModelUtil.getNodeTemplate(serviceTemplate, sharedTranslatedResourceId); + EntityConsolidationData entityConsolidationData = + getComputeTemplateConsolidationData(serviceTemplate, nodeTemplate.getType(), + sharedTranslatedResourceId); + + if (Objects.nonNull(entityConsolidationData)) { + entityConsolidationData.removeParamNameFromAttrFuncList(paramName); + } + } + + private ComputeTemplateConsolidationData getComputeTemplateConsolidationData( + TranslateTo translateTo, String computeNodeType, String computeNodeTemplateId) { + + ServiceTemplate serviceTemplate = translateTo.getServiceTemplate(); + return getComputeTemplateConsolidationData(serviceTemplate, computeNodeType, computeNodeTemplateId); + } + + private ComputeTemplateConsolidationData getComputeTemplateConsolidationData(ServiceTemplate serviceTemplate, + String computeNodeType, String computeNodeTemplateId) { + + String serviceTemplateFileName = ToscaUtil.getServiceTemplateFileName(serviceTemplate); + + FileComputeConsolidationData fileComputeConsolidationData = + computeConsolidationData.getFileComputeConsolidationData(serviceTemplateFileName); + if (fileComputeConsolidationData == null) { + fileComputeConsolidationData = new FileComputeConsolidationData(); + computeConsolidationData.setFileComputeConsolidationData(serviceTemplateFileName, + fileComputeConsolidationData); + } + + TypeComputeConsolidationData typeComputeConsolidationData = + fileComputeConsolidationData.getTypeComputeConsolidationData(computeNodeType); + if (typeComputeConsolidationData == null) { + typeComputeConsolidationData = new TypeComputeConsolidationData(); + fileComputeConsolidationData.setTypeComputeConsolidationData(computeNodeType, typeComputeConsolidationData); + } + + ComputeTemplateConsolidationData computeTemplateConsolidationData = + typeComputeConsolidationData.getComputeTemplateConsolidationData(computeNodeTemplateId); + if (computeTemplateConsolidationData == null) { + computeTemplateConsolidationData = new ComputeTemplateConsolidationData(); + computeTemplateConsolidationData.setNodeTemplateId(computeNodeTemplateId); + typeComputeConsolidationData.setComputeTemplateConsolidationData(computeNodeTemplateId, + computeTemplateConsolidationData); + } + + return computeTemplateConsolidationData; + } + + private String getNodeType(NodeTemplate computeNodeTemplate, TranslateTo translateTo, String targetResourceId, + String nodeTemplateId) { + + if (Objects.isNull(computeNodeTemplate)) { + Resource targetResource = translateTo.getHeatOrchestrationTemplate().getResources().get(targetResourceId); + NameExtractor nodeTypeNameExtractor = TranslationContext.getNameExtractorImpl(targetResource.getType()); + return nodeTypeNameExtractor.extractNodeTypeName(translateTo.getHeatOrchestrationTemplate() + .getResources().get(nodeTemplateId), nodeTemplateId, nodeTemplateId); + } + + return computeNodeTemplate.getType(); + } +}
\ No newline at end of file diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/ConsolidationData.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/ConsolidationData.java index 20cc3be3cd..c46e7450e5 100644 --- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/ConsolidationData.java +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/ConsolidationData.java @@ -1,81 +1,139 @@ +/* + * Copyright © 2016-2018 European Support Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation; -/** - * The type Consolidation data. - */ +import java.util.Optional; +import org.openecomp.sdc.translator.services.heattotosca.ConsolidationEntityType; + public class ConsolidationData { - //Compute consolidation data - private ComputeConsolidationData computeConsolidationData; - - //Port Consolidation data - private PortConsolidationData portConsolidationData; - - //Nested Consolidation data - private NestedConsolidationData nestedConsolidationData; - - - /** - * Instantiates a new Consolidation data. - */ - public ConsolidationData() { - computeConsolidationData = new ComputeConsolidationData(); - portConsolidationData = new PortConsolidationData(); - nestedConsolidationData = new NestedConsolidationData(); - } - - /** - * Gets compute consolidation data. - * - * @return the compute consolidation data - */ - public ComputeConsolidationData getComputeConsolidationData() { - return computeConsolidationData; - } - - /** - * Sets compute consolidation data. - * - * @param computeConsolidationData the compute consolidation data - */ - public void setComputeConsolidationData(ComputeConsolidationData computeConsolidationData) { - this.computeConsolidationData = computeConsolidationData; - } - - /** - * Gets port consolidation data. - * - * @return the port consolidation data - */ - public PortConsolidationData getPortConsolidationData() { - return portConsolidationData; - } - - /** - * Sets port consolidation data. - * - * @param portConsolidationData the port consolidation data - */ - public void setPortConsolidationData( - PortConsolidationData portConsolidationData) { - this.portConsolidationData = portConsolidationData; - } - - /** - * Gets nested consolidation data. - * - * @return the nested consolidation data - */ - public NestedConsolidationData getNestedConsolidationData() { - return nestedConsolidationData; - } - - /** - * Sets nested consolidation data. - * - * @param nestedConsolidationData the nested consolidation data - */ - public void setNestedConsolidationData(NestedConsolidationData nestedConsolidationData) { - this.nestedConsolidationData = nestedConsolidationData; - } + private ComputeConsolidationData computeConsolidationData; + private final ComputeConsolidationDataHandler computeConsolidationDataHandler; + + private PortConsolidationData portConsolidationData; + private final PortConsolidationDataHandler portConsolidationDataHandler; + private final SubInterfaceConsolidationDataHandler subInterfaceConsolidationDataHandler; + + private NestedConsolidationData nestedConsolidationData; + private final NestedConsolidationDataHandler nestedConsolidationDataHandler; + + public ConsolidationData() { + + computeConsolidationData = new ComputeConsolidationData(); + computeConsolidationDataHandler = new ComputeConsolidationDataHandler(computeConsolidationData); + + portConsolidationData = new PortConsolidationData(); + portConsolidationDataHandler = new PortConsolidationDataHandler(portConsolidationData); + subInterfaceConsolidationDataHandler = new SubInterfaceConsolidationDataHandler(portConsolidationData); + + nestedConsolidationData = new NestedConsolidationData(); + nestedConsolidationDataHandler = new NestedConsolidationDataHandler(nestedConsolidationData); + + } + + /** + * Get Consolidation data handler by entity type. + * + * @return If there is no consolidation handler for a type, return an empty {@link Optional}. + */ + public Optional<ConsolidationDataHandler> getConsolidationDataHandler(ConsolidationEntityType type) { + + switch (type) { + case COMPUTE: + return Optional.of(getComputeConsolidationDataHelper()); + case PORT: + return Optional.of(getPortConsolidationDataHandler()); + case SUB_INTERFACE: + return Optional.of(getSubInterfaceConsolidationDataHandler()); + case NESTED: + case VFC_NESTED: + return Optional.of(getNestedConsolidationDataHandler()); + default: + return Optional.empty(); + } + } + + public ComputeConsolidationDataHandler getComputeConsolidationDataHelper() { + return computeConsolidationDataHandler; + } + + public PortConsolidationDataHandler getPortConsolidationDataHandler() { + return portConsolidationDataHandler; + } + + public NestedConsolidationDataHandler getNestedConsolidationDataHandler() { + return nestedConsolidationDataHandler; + } + + public SubInterfaceConsolidationDataHandler getSubInterfaceConsolidationDataHandler() { + return subInterfaceConsolidationDataHandler; + } + + /** + * Gets compute consolidation data. + * + * @return the compute consolidation data + */ + public ComputeConsolidationData getComputeConsolidationData() { + return computeConsolidationData; + } + + /** + * Sets compute consolidation data. + * + * @param computeConsolidationData the compute consolidation data + */ + public void setComputeConsolidationData(ComputeConsolidationData computeConsolidationData) { + this.computeConsolidationData = computeConsolidationData; + } + + /** + * Gets port consolidation data. + * + * @return the port consolidation data + */ + public PortConsolidationData getPortConsolidationData() { + return portConsolidationData; + } + + /** + * Sets port consolidation data. + * + * @param portConsolidationData the port consolidation data + */ + public void setPortConsolidationData(PortConsolidationData portConsolidationData) { + this.portConsolidationData = portConsolidationData; + } + + /** + * Gets nested consolidation data. + * + * @return the nested consolidation data + */ + public NestedConsolidationData getNestedConsolidationData() { + return nestedConsolidationData; + } + + /** + * Sets nested consolidation data. + * + * @param nestedConsolidationData the nested consolidation data + */ + public void setNestedConsolidationData(NestedConsolidationData nestedConsolidationData) { + this.nestedConsolidationData = nestedConsolidationData; + } } diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/ConsolidationDataHandler.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/ConsolidationDataHandler.java new file mode 100644 index 0000000000..bbd26342b1 --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/ConsolidationDataHandler.java @@ -0,0 +1,54 @@ +/* + * Copyright © 2016-2018 European Support Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation; + +import org.onap.sdc.tosca.datatypes.model.RequirementAssignment; +import org.onap.sdc.tosca.datatypes.model.ServiceTemplate; +import org.openecomp.sdc.heat.datatypes.model.HeatOrchestrationTemplate; +import org.openecomp.sdc.translator.datatypes.heattotosca.to.TranslateTo; + +public interface ConsolidationDataHandler { + + /** + * Add node connected out from current consolidation entity. + * + * @param nodeTemplateId the node template id of target node - node connected out from current node + * @param requirementId the requirement id of requirement assignment + * @param requirementAssignment the requirement assignment data connected to target node + */ + void addNodesConnectedOut(TranslateTo translateTo, String nodeTemplateId, + String requirementId, RequirementAssignment requirementAssignment); + + /** + * Add source node connected in to target node consolidation entity. + * + * @param sourceNodeTemplateId the node template id of source node connected to consolidation entity + * @param targetNodeTemplateId the node template id of consolidation entity node + * @param targetResourceId the resource id of consolidation entity node + * @param requirementId the requirement id of source node + * @param requirementAssignment the requirement assignment data of source node + */ + void addNodesConnectedIn(TranslateTo translateTo, String sourceNodeTemplateId, + String targetNodeTemplateId, + String targetResourceId, String requirementId, + RequirementAssignment requirementAssignment); + + void removeParamNameFromAttrFuncList(ServiceTemplate serviceTemplate, + HeatOrchestrationTemplate heatOrchestrationTemplate, + String paramName, String contrailSharedResourceId, + String sharedTranslatedResourceId); +} diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/EntityConsolidationData.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/EntityConsolidationData.java index 0b4b454adf..06b1a58718 100644 --- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/EntityConsolidationData.java +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/EntityConsolidationData.java @@ -1,245 +1,275 @@ -package org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation; +/* + * Copyright © 2016-2018 European Support Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ -import org.onap.sdc.tosca.datatypes.model.RequirementAssignment; +package org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import org.onap.sdc.tosca.datatypes.model.RequirementAssignment; /** * The type Entity consolidation data. */ public class EntityConsolidationData { - private String nodeTemplateId; - - //groups that point to this entity node template - private List<String> groupIds; - - // key - node template id which has connection to this entity - // value - List of Requirement assignment data which connect to this entity - private Map<String, List<RequirementAssignmentData>> nodesConnectedIn; - - // key - node template id which connected from this entity - // List of Requirement assignment data which connect to the key node template id - private Map<String, List<RequirementAssignmentData>> nodesConnectedOut; - - //key - node template id which include get attribute function from this entity - //key - node template id which include get attribute function from this entity - //value - List of getAttr data - private Map<String, List<GetAttrFuncData>> nodesGetAttrIn; - - //key - node template id which is pointed by this entity using get attribute function - //value - List of getAttr data - private Map<String, List<GetAttrFuncData>> nodesGetAttrOut; - - //List of getAttr data - private List<GetAttrFuncData> outputParametersGetAttrIn; - - /** - * Gets node template id. - * - * @return the node template id - */ - public String getNodeTemplateId() { - return nodeTemplateId; - } - - /** - * Sets node template id. - * - * @param nodeTemplateId the node template id - */ - public void setNodeTemplateId(String nodeTemplateId) { - this.nodeTemplateId = nodeTemplateId; - } - - /** - * Gets group ids point to me. - * - * @return the group ids point to me - */ - public List<String> getGroupIds() { - return groupIds; - } - - /** - * Sets group ids point to me. - * - * @param groupIds the group ids point to me - */ - public void setGroupIds(List<String> groupIds) { - this.groupIds = groupIds; - } - - - /** - * Sets node connected to me. - * - * @param nodesConnectedIn the node connected to me - */ - public void setNodesConnectedIn(Map<String, List<RequirementAssignmentData>> nodesConnectedIn) { - this.nodesConnectedIn = nodesConnectedIn; - } - - /** - * Add nodeConnectedIn. - * - * @param nodeTemplateId the node template id which has connection to me - * @param requirementId the requirement id - * @param requirementAssignment the requirement assignment - */ - public void addNodesConnectedIn(String nodeTemplateId, String requirementId, + private String nodeTemplateId; + + //groups that point to this entity node template + private List<String> groupIds; + + // key - node template id which has connection to this entity + // value - List of Requirement assignment data which connect to this entity + private Map<String, List<RequirementAssignmentData>> nodesConnectedIn; + + // key - node template id which connected from this entity + // List of Requirement assignment data which connect to the key node template id + private Map<String, List<RequirementAssignmentData>> nodesConnectedOut; + + //key - node template id which include get attribute function from this entity + //key - node template id which include get attribute function from this entity + //value - List of getAttr data + private Map<String, List<GetAttrFuncData>> nodesGetAttrIn; + + //key - node template id which is pointed by this entity using get attribute function + //value - List of getAttr data + private Map<String, List<GetAttrFuncData>> nodesGetAttrOut; + + //List of getAttr data + private List<GetAttrFuncData> outputParametersGetAttrIn; + + /** + * Gets node template id. + * + * @return the node template id + */ + public String getNodeTemplateId() { + return nodeTemplateId; + } + + /** + * Sets node template id. + * + * @param nodeTemplateId the node template id + */ + public void setNodeTemplateId(String nodeTemplateId) { + this.nodeTemplateId = nodeTemplateId; + } + + /** + * Gets group ids point to me. + * + * @return the group ids point to me + */ + public List<String> getGroupIds() { + return groupIds; + } + + /** + * Sets group ids point to me. + * + * @param groupIds the group ids point to me + */ + public void setGroupIds(List<String> groupIds) { + this.groupIds = groupIds; + } + + + /** + * Sets node connected to me. + * + * @param nodesConnectedIn the node connected to me + */ + public void setNodesConnectedIn(Map<String, List<RequirementAssignmentData>> nodesConnectedIn) { + this.nodesConnectedIn = nodesConnectedIn; + } + + /** + * Add nodeConnectedIn. + * + * @param nodeTemplateId the node template id which has connection to me + * @param requirementId the requirement id + * @param requirementAssignment the requirement assignment + */ + public void addNodesConnectedIn(String nodeTemplateId, String requirementId, RequirementAssignment requirementAssignment) { - if (this.nodesConnectedIn == null) { - this.nodesConnectedIn = new HashMap<>(); - } - this.nodesConnectedIn.computeIfAbsent(nodeTemplateId, k -> new ArrayList<>()); - this.nodesConnectedIn.get(nodeTemplateId).add(new RequirementAssignmentData(requirementId, - requirementAssignment)); - } - - /** - * Gets node connected to me. - * - * @return the node connected to me - */ - public Map<String, List<RequirementAssignmentData>> getNodesConnectedIn() { - return nodesConnectedIn; - } - - - /** - * Gets node connected from me. - * - * @return the node connected from me - */ - public Map<String, List<RequirementAssignmentData>> getNodesConnectedOut() { - return nodesConnectedOut; - } - - /** - * Sets node connected from me. - * - * @param nodesConnectedOut the node connected from me - */ - public void setNodesConnectedOut( - Map<String, List<RequirementAssignmentData>> nodesConnectedOut) { - this.nodesConnectedOut = nodesConnectedOut; - } - - /** - * Add nodeConnectedOut. - * - * @param nodeTemplateId the node template id which is connected from me - * @param requirementId the requirement id - * @param requirementAssignment the requirement assignment - */ - public void addNodesConnectedOut(String nodeTemplateId, String requirementId, - RequirementAssignment - requirementAssignment) { - if (this.nodesConnectedOut == null) { - this.nodesConnectedOut = new HashMap<>(); - } - this.nodesConnectedOut.computeIfAbsent(nodeTemplateId, k -> new ArrayList<>()); - this.nodesConnectedOut.get(nodeTemplateId).add(new RequirementAssignmentData(requirementId, - requirementAssignment)); - } - - /** - * Gets nodes get attr in. - * - * @return the get attr in - */ - public Map<String, List<GetAttrFuncData>> getNodesGetAttrIn() { - return nodesGetAttrIn; - } - - /** - * Sets nodes get attr in. - * - * @param nodesGetAttrIn the get attr in - */ - public void setNodesGetAttrIn( - Map<String, List<GetAttrFuncData>> nodesGetAttrIn) { - this.nodesGetAttrIn = nodesGetAttrIn; - } - - /** - * Add nodes get attr in data. - * - * @param nodeTemplateId the node template id - * @param getAttrFuncData get attr data - */ - public void addNodesGetAttrIn(String nodeTemplateId, GetAttrFuncData getAttrFuncData) { - if (nodesGetAttrIn == null) { - nodesGetAttrIn = new HashMap<>(); - } - this.nodesGetAttrIn.putIfAbsent(nodeTemplateId, new ArrayList<>()); - this.nodesGetAttrIn.get(nodeTemplateId).add(getAttrFuncData); - } - - /** - * Gets output parameters get attr from me. - * - * @return the get attr from me - */ - public List<GetAttrFuncData> getOutputParametersGetAttrIn() { - return outputParametersGetAttrIn; - } - - /** - * Sets output parameters get attr from me. - * - * @param outputParametersGetAttrIn the output parameters get attr from me - */ - public void setOutputParametersGetAttrIn(List<GetAttrFuncData> outputParametersGetAttrIn) { - this.outputParametersGetAttrIn = outputParametersGetAttrIn; - } - - /** - * Add output parameters get attr data. - * - * @param getAttrFuncData get attr data - */ - public void addOutputParamGetAttrIn(GetAttrFuncData getAttrFuncData) { - if (outputParametersGetAttrIn == null) { - outputParametersGetAttrIn = new ArrayList<>(); - } - this.outputParametersGetAttrIn.add(getAttrFuncData); - } - - /** - * Gets nodes get attr out. - * - * @return the get attr out - */ - public Map<String, List<GetAttrFuncData>> getNodesGetAttrOut() { - return nodesGetAttrOut; - } - - /** - * Sets nodes get attr out. - * - * @param nodesGetAttrOut the get attr out - */ - public void setNodesGetAttrOut( - Map<String, List<GetAttrFuncData>> nodesGetAttrOut) { - this.nodesGetAttrOut = nodesGetAttrOut; - } - - /** - * Add nodes get attr out data. - * - * @param nodeTemplateId the node template id - * @param getAttrFuncData get attr data - */ - public void addNodesGetAttrOut(String nodeTemplateId, GetAttrFuncData getAttrFuncData) { - if (nodesGetAttrOut == null) { - nodesGetAttrOut = new HashMap<>(); - } - this.nodesGetAttrOut.putIfAbsent(nodeTemplateId, new ArrayList<>()); - this.nodesGetAttrOut.get(nodeTemplateId).add(getAttrFuncData); - } + + if (this.nodesConnectedIn == null) { + this.nodesConnectedIn = new HashMap<>(); + } + + this.nodesConnectedIn.computeIfAbsent(nodeTemplateId, k -> new ArrayList<>()); + this.nodesConnectedIn.get(nodeTemplateId).add( + new RequirementAssignmentData(requirementId, requirementAssignment)); + } + + /** + * Gets node connected to me. + * + * @return the node connected to me + */ + public Map<String, List<RequirementAssignmentData>> getNodesConnectedIn() { + return nodesConnectedIn; + } + + + /** + * Gets node connected from me. + * + * @return the node connected from me + */ + public Map<String, List<RequirementAssignmentData>> getNodesConnectedOut() { + return nodesConnectedOut; + } + + /** + * Sets node connected from me. + * + * @param nodesConnectedOut the node connected from me + */ + public void setNodesConnectedOut(Map<String, List<RequirementAssignmentData>> nodesConnectedOut) { + this.nodesConnectedOut = nodesConnectedOut; + } + + /** + * Add nodeConnectedOut. + * + * @param nodeTemplateId the node template id which is connected from me + * @param requirementId the requirement id + * @param requirementAssignment the requirement assignment + */ + public void addNodesConnectedOut(String nodeTemplateId, String requirementId, + RequirementAssignment requirementAssignment) { + + if (this.nodesConnectedOut == null) { + this.nodesConnectedOut = new HashMap<>(); + } + + this.nodesConnectedOut.computeIfAbsent(nodeTemplateId, k -> new ArrayList<>()); + this.nodesConnectedOut.get(nodeTemplateId).add( + new RequirementAssignmentData(requirementId, requirementAssignment)); + } + + /** + * Gets nodes get attr in. + * + * @return the get attr in + */ + public Map<String, List<GetAttrFuncData>> getNodesGetAttrIn() { + return nodesGetAttrIn; + } + + /** + * Sets nodes get attr in. + * + * @param nodesGetAttrIn the get attr in + */ + public void setNodesGetAttrIn(Map<String, List<GetAttrFuncData>> nodesGetAttrIn) { + this.nodesGetAttrIn = nodesGetAttrIn; + } + + /** + * Add nodes get attr in data. + * + * @param nodeTemplateId the node template id + * @param getAttrFuncData get attr data + */ + public void addNodesGetAttrIn(String nodeTemplateId, GetAttrFuncData getAttrFuncData) { + + if (nodesGetAttrIn == null) { + nodesGetAttrIn = new HashMap<>(); + } + + this.nodesGetAttrIn.putIfAbsent(nodeTemplateId, new ArrayList<>()); + this.nodesGetAttrIn.get(nodeTemplateId).add(getAttrFuncData); + } + + /** + * Gets output parameters get attr from me. + * + * @return the get attr from me + */ + public List<GetAttrFuncData> getOutputParametersGetAttrIn() { + return outputParametersGetAttrIn; + } + + /** + * Sets output parameters get attr from me. + * + * @param outputParametersGetAttrIn the output parameters get attr from me + */ + public void setOutputParametersGetAttrIn(List<GetAttrFuncData> outputParametersGetAttrIn) { + this.outputParametersGetAttrIn = outputParametersGetAttrIn; + } + + /** + * Add output parameters get attr data. + * + * @param getAttrFuncData get attr data + */ + public void addOutputParamGetAttrIn(GetAttrFuncData getAttrFuncData) { + + if (outputParametersGetAttrIn == null) { + outputParametersGetAttrIn = new ArrayList<>(); + } + + this.outputParametersGetAttrIn.add(getAttrFuncData); + } + + /** + * Gets nodes get attr out. + * + * @return the get attr out + */ + public Map<String, List<GetAttrFuncData>> getNodesGetAttrOut() { + return nodesGetAttrOut; + } + + /** + * Sets nodes get attr out. + * + * @param nodesGetAttrOut the get attr out + */ + public void setNodesGetAttrOut(Map<String, List<GetAttrFuncData>> nodesGetAttrOut) { + this.nodesGetAttrOut = nodesGetAttrOut; + } + + /** + * Add nodes get attr out data. + * + * @param nodeTemplateId the node template id + * @param getAttrFuncData get attr data + */ + public void addNodesGetAttrOut(String nodeTemplateId, GetAttrFuncData getAttrFuncData) { + + if (nodesGetAttrOut == null) { + nodesGetAttrOut = new HashMap<>(); + } + + this.nodesGetAttrOut.putIfAbsent(nodeTemplateId, new ArrayList<>()); + this.nodesGetAttrOut.get(nodeTemplateId).add(getAttrFuncData); + } + + public void removeParamNameFromAttrFuncList(String paramName) { + + if (outputParametersGetAttrIn == null) { + return; + } + + outputParametersGetAttrIn.removeIf(outputParameters -> paramName.equals(outputParameters.getFieldName())); + } } diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/NestedConsolidationDataHandler.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/NestedConsolidationDataHandler.java new file mode 100644 index 0000000000..f7c877074d --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/NestedConsolidationDataHandler.java @@ -0,0 +1,138 @@ +/* + * Copyright © 2016-2018 European Support Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation; + +import java.util.Objects; +import org.onap.sdc.tosca.datatypes.model.RequirementAssignment; +import org.onap.sdc.tosca.datatypes.model.ServiceTemplate; +import org.openecomp.core.utilities.file.FileUtils; +import org.openecomp.sdc.common.errors.CoreException; +import org.openecomp.sdc.heat.datatypes.model.HeatOrchestrationTemplate; +import org.openecomp.sdc.tosca.services.ToscaUtil; +import org.openecomp.sdc.translator.datatypes.heattotosca.TranslationContext; +import org.openecomp.sdc.translator.datatypes.heattotosca.to.TranslateTo; +import org.openecomp.sdc.translator.services.heattotosca.errors.DuplicateResourceIdsInDifferentFilesErrorBuilder; + +public class NestedConsolidationDataHandler implements ConsolidationDataHandler { + + private final NestedConsolidationData nestedConsolidationData; + + public NestedConsolidationDataHandler(NestedConsolidationData nestedConsolidationData) { + this.nestedConsolidationData = nestedConsolidationData; + } + + @Override + public void addNodesConnectedOut(TranslateTo translateTo, String nodeTemplateId, String requirementId, + RequirementAssignment requirementAssignment) { + EntityConsolidationData entityConsolidationData = + getNestedTemplateConsolidationData(translateTo, translateTo.getHeatFileName(), + translateTo.getTranslatedId()); + + if (Objects.nonNull(entityConsolidationData)) { + entityConsolidationData.addNodesConnectedOut(nodeTemplateId, requirementId, requirementAssignment); + } + } + + @Override + public void addNodesConnectedIn(TranslateTo translateTo, String sourceNodeTemplateId, + String dependentNodeTemplateId, String targetResourceId, + String requirementId, RequirementAssignment requirementAssignment) { + + EntityConsolidationData entityConsolidationData = + getNestedTemplateConsolidationData(translateTo, translateTo.getHeatFileName(), dependentNodeTemplateId); + + if (Objects.nonNull(entityConsolidationData)) { + entityConsolidationData.addNodesConnectedIn(sourceNodeTemplateId, requirementId, requirementAssignment); + } + + } + + @Override + public void removeParamNameFromAttrFuncList(ServiceTemplate serviceTemplate, + HeatOrchestrationTemplate heatOrchestrationTemplate, + String paramName, + String contrailSharedResourceId, + String sharedTranslatedResourceId) { + + throw new UnsupportedOperationException( + "API removeParamNameFromAttrFuncList not supported for NestedConsolidationDataHandler"); + + } + + private NestedTemplateConsolidationData getNestedTemplateConsolidationData(TranslateTo translateTo, + String nestedHeatFileName, + String nestedNodeTemplateId) { + ServiceTemplate serviceTemplate = translateTo.getServiceTemplate(); + TranslationContext context = translateTo.getContext(); + return getNestedTemplateConsolidationData(serviceTemplate, context, nestedHeatFileName, nestedNodeTemplateId); + } + + private NestedTemplateConsolidationData getNestedTemplateConsolidationData( + ServiceTemplate serviceTemplate, TranslationContext context, + String nestedHeatFileName, String nestedNodeTemplateId) { + + + if (isNestedResourceIdOccursInDifferentNestedFiles(context, nestedHeatFileName, + nestedNodeTemplateId)) { + throw new CoreException(new + DuplicateResourceIdsInDifferentFilesErrorBuilder( + nestedNodeTemplateId).build()); + } + + if (isNodeTemplatePointsToServiceTemplateWithoutNodeTemplates( + nestedNodeTemplateId, nestedHeatFileName, context)) { + return null; + } + + String serviceTemplateFileName = ToscaUtil.getServiceTemplateFileName(serviceTemplate); + FileNestedConsolidationData fileNestedConsolidationData = nestedConsolidationData + .getFileNestedConsolidationData(serviceTemplateFileName); + + if (fileNestedConsolidationData == null) { + fileNestedConsolidationData = new FileNestedConsolidationData(); + nestedConsolidationData.setFileNestedConsolidationData(serviceTemplateFileName, + fileNestedConsolidationData); + } + + NestedTemplateConsolidationData nestedTemplateConsolidationData = + fileNestedConsolidationData.getNestedTemplateConsolidationData(nestedNodeTemplateId); + if (nestedTemplateConsolidationData == null) { + nestedTemplateConsolidationData = new NestedTemplateConsolidationData(); + nestedTemplateConsolidationData.setNodeTemplateId(nestedNodeTemplateId); + fileNestedConsolidationData.setNestedTemplateConsolidationData(nestedNodeTemplateId, + nestedTemplateConsolidationData); + } + + return nestedTemplateConsolidationData; + } + + private boolean isNodeTemplatePointsToServiceTemplateWithoutNodeTemplates(String nestedNodeTemplateId, + String nestedHeatFileName, + TranslationContext context) { + + return context.isServiceTemplateWithoutNodeTemplatesSection( + FileUtils.getFileWithoutExtention(nestedHeatFileName)) + || context.isNodeTemplateIdPointsToStWithoutNodeTemplates(nestedNodeTemplateId); + } + + private boolean isNestedResourceIdOccursInDifferentNestedFiles(TranslationContext context, + String nestedHeatFileName, + String nestedNodeTemplateId) { + return Objects.nonNull(nestedHeatFileName) && context.getAllTranslatedResourceIdsFromDiffNestedFiles( + nestedHeatFileName).contains(nestedNodeTemplateId); + } +} diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/PortConsolidationDataHandler.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/PortConsolidationDataHandler.java new file mode 100644 index 0000000000..2da1f7e0fa --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/PortConsolidationDataHandler.java @@ -0,0 +1,98 @@ +package org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation; + +import java.util.Optional; +import org.onap.sdc.tosca.datatypes.model.RequirementAssignment; +import org.onap.sdc.tosca.datatypes.model.ServiceTemplate; +import org.openecomp.sdc.heat.datatypes.model.HeatOrchestrationTemplate; +import org.openecomp.sdc.heat.datatypes.model.Resource; +import org.openecomp.sdc.tosca.services.ToscaUtil; +import org.openecomp.sdc.translator.datatypes.heattotosca.to.TranslateTo; +import org.openecomp.sdc.translator.services.heattotosca.HeatToToscaUtil; + +public class PortConsolidationDataHandler implements ConsolidationDataHandler { + + private final PortConsolidationData portConsolidationData; + + public PortConsolidationDataHandler(PortConsolidationData portConsolidationData) { + this.portConsolidationData = portConsolidationData; + } + + @Override + public void addNodesConnectedOut(TranslateTo translateTo, String nodeTemplateId, String requirementId, + RequirementAssignment requirementAssignment) { + + EntityConsolidationData entityConsolidationData = + getPortTemplateConsolidationData(translateTo, translateTo.getResourceId(), + translateTo.getResource().getType(), translateTo.getTranslatedId()); + + entityConsolidationData.addNodesConnectedOut(nodeTemplateId, requirementId, requirementAssignment); + + } + + @Override + public void addNodesConnectedIn(TranslateTo translateTo, String sourceNodeTemplateId, + String dependentNodeTemplateId, String targetResourceId, String requirementId, + RequirementAssignment requirementAssignment) { + + EntityConsolidationData entityConsolidationData = + getPortTemplateConsolidationData(translateTo, translateTo.getResourceId(), + translateTo.getResource().getType(), dependentNodeTemplateId); + + entityConsolidationData.addNodesConnectedIn(sourceNodeTemplateId, requirementId, requirementAssignment); + + } + + @Override + public void removeParamNameFromAttrFuncList(ServiceTemplate serviceTemplate, + HeatOrchestrationTemplate heatOrchestrationTemplate, String paramName, String contrailSharedResourceId, + String sharedTranslatedResourceId) { + + Resource resource = heatOrchestrationTemplate.getResources().get(contrailSharedResourceId); + EntityConsolidationData entityConsolidationData = getPortTemplateConsolidationData(serviceTemplate, + contrailSharedResourceId, resource.getType(), sharedTranslatedResourceId); + entityConsolidationData.removeParamNameFromAttrFuncList(paramName); + + } + + private PortTemplateConsolidationData getPortTemplateConsolidationData(TranslateTo translateTo, + String portResourceId, String portResourceType, String portNodeTemplateId) { + ServiceTemplate serviceTemplate = translateTo.getServiceTemplate(); + return getPortTemplateConsolidationData(serviceTemplate, portResourceId, portResourceType, portNodeTemplateId); + } + + private PortTemplateConsolidationData getPortTemplateConsolidationData(ServiceTemplate serviceTemplate, + String portResourceId, String portResourceType, String portNodeTemplateId) { + + String serviceTemplateFileName = ToscaUtil.getServiceTemplateFileName(serviceTemplate); + FilePortConsolidationData filePortConsolidationData = portConsolidationData + .getFilePortConsolidationData(serviceTemplateFileName); + + if (filePortConsolidationData == null) { + filePortConsolidationData = new FilePortConsolidationData(); + portConsolidationData.setFilePortConsolidationData(serviceTemplateFileName, + filePortConsolidationData); + } + + PortTemplateConsolidationData portTemplateConsolidationData = + filePortConsolidationData.getPortTemplateConsolidationData(portNodeTemplateId); + if (portTemplateConsolidationData == null) { + portTemplateConsolidationData = getInitPortTemplateConsolidationData(portNodeTemplateId, + portResourceId, portResourceType); + filePortConsolidationData.setPortTemplateConsolidationData(portNodeTemplateId, + portTemplateConsolidationData); + } + + return portTemplateConsolidationData; + } + + private static PortTemplateConsolidationData getInitPortTemplateConsolidationData(String portNodeTemplateId, + String portResourceId, + String portResourceType) { + PortTemplateConsolidationData portTemplateConsolidationData = new PortTemplateConsolidationData(); + portTemplateConsolidationData.setNodeTemplateId(portNodeTemplateId); + Optional<String> portNetworkRole = HeatToToscaUtil.evaluateNetworkRoleFromResourceId(portResourceId, + portResourceType); + portNetworkRole.ifPresent(portTemplateConsolidationData::setNetworkRole); + return portTemplateConsolidationData; + } +} diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/SubInterfaceConsolidationDataHandler.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/SubInterfaceConsolidationDataHandler.java new file mode 100644 index 0000000000..ddc770bac7 --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/SubInterfaceConsolidationDataHandler.java @@ -0,0 +1,122 @@ +/* + * Copyright © 2016-2018 European Support Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation; + +import java.util.Objects; +import java.util.Optional; +import org.onap.sdc.tosca.datatypes.model.RequirementAssignment; +import org.onap.sdc.tosca.datatypes.model.ServiceTemplate; +import org.openecomp.sdc.heat.datatypes.model.HeatOrchestrationTemplate; +import org.openecomp.sdc.heat.datatypes.model.Resource; +import org.openecomp.sdc.tosca.services.ToscaUtil; +import org.openecomp.sdc.translator.datatypes.heattotosca.TranslationContext; +import org.openecomp.sdc.translator.datatypes.heattotosca.to.TranslateTo; +import org.openecomp.sdc.translator.services.heattotosca.HeatToToscaUtil; + +public class SubInterfaceConsolidationDataHandler implements ConsolidationDataHandler { + + private final PortConsolidationData portConsolidationData; + + SubInterfaceConsolidationDataHandler(PortConsolidationData portConsolidationData) { + this.portConsolidationData = portConsolidationData; + } + + @Override + public void addNodesConnectedOut(TranslateTo translateTo, String nodeTemplateId, String requirementId, + RequirementAssignment requirementAssignment) { + ServiceTemplate serviceTemplate = translateTo.getServiceTemplate(); + if (Objects.nonNull( + serviceTemplate.getTopology_template().getNode_templates().get(translateTo.getTranslatedId()))) { + Optional<SubInterfaceTemplateConsolidationData> subInterfaceTemplateConsolidationData = + getSubInterfaceTemplateConsolidationData(translateTo, translateTo.getTranslatedId()); + + subInterfaceTemplateConsolidationData.ifPresent( + consolidationData -> consolidationData.addNodesConnectedOut(nodeTemplateId, + requirementId, requirementAssignment)); + + } + } + + @Override + public void addNodesConnectedIn(TranslateTo translateTo, String sourceNodeTemplateId, + String dependentNodeTemplateId, String targetResourceId, + String requirementId, RequirementAssignment requirementAssignment) { + ServiceTemplate serviceTemplate = translateTo.getServiceTemplate(); + TranslationContext translationContext = translateTo.getContext(); + Resource targetResource = translateTo.getHeatOrchestrationTemplate().getResources().get(targetResourceId); + TranslateTo subInterfaceTo = new TranslateTo(translateTo.getHeatFileName(), serviceTemplate, + translateTo.getHeatOrchestrationTemplate(), targetResource, + targetResourceId, null, translationContext); + Optional<SubInterfaceTemplateConsolidationData> subInterfaceTemplateConsolidationData = + getSubInterfaceTemplateConsolidationData(subInterfaceTo, targetResourceId); + + subInterfaceTemplateConsolidationData.ifPresent( + consolidationData -> consolidationData.addNodesConnectedIn(sourceNodeTemplateId, + requirementId, requirementAssignment)); + + } + + @Override + public void removeParamNameFromAttrFuncList(ServiceTemplate serviceTemplate, + HeatOrchestrationTemplate heatOrchestrationTemplate, + String paramName, + String contrailSharedResourceId, + String sharedTranslatedResourceId) { + + + throw new UnsupportedOperationException( + "API removeParamNameFromAttrFuncList not supported for SubInterfaceConsolidationDataHandler"); + + } + + private Optional<SubInterfaceTemplateConsolidationData> getSubInterfaceTemplateConsolidationData( + TranslateTo subInterfaceTo, String subInterfaceNodeTemplateId) { + + Optional<String> parentPortNodeTemplateId = + HeatToToscaUtil.getSubInterfaceParentPortNodeTemplateId(subInterfaceTo); + return parentPortNodeTemplateId.map(s -> getSubInterfaceTemplateConsolidationData(subInterfaceTo, s, + subInterfaceNodeTemplateId)); + + } + + private SubInterfaceTemplateConsolidationData getSubInterfaceTemplateConsolidationData(TranslateTo subInterfaceTo, + String parentPortNodeTemplateId, String subInterfaceNodeTemplateId) { + + String serviceTemplateFileName = ToscaUtil.getServiceTemplateFileName(subInterfaceTo.getServiceTemplate()); + FilePortConsolidationData filePortConsolidationData = + portConsolidationData.getFilePortConsolidationData(serviceTemplateFileName); + + if (filePortConsolidationData == null) { + filePortConsolidationData = new FilePortConsolidationData(); + portConsolidationData.setFilePortConsolidationData(serviceTemplateFileName, + filePortConsolidationData); + } + + PortTemplateConsolidationData portTemplateConsolidationData = + filePortConsolidationData.getPortTemplateConsolidationData(parentPortNodeTemplateId); + if (portTemplateConsolidationData == null) { + portTemplateConsolidationData = new PortTemplateConsolidationData(); + portTemplateConsolidationData.setNodeTemplateId(parentPortNodeTemplateId); + filePortConsolidationData.setPortTemplateConsolidationData(parentPortNodeTemplateId, + portTemplateConsolidationData); + } + + return portTemplateConsolidationData.getSubInterfaceResourceTemplateConsolidationData( + subInterfaceTo.getResource(), subInterfaceNodeTemplateId, parentPortNodeTemplateId); + } + +} |