diff options
Diffstat (limited to 'openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/BaseResourceConnection.java')
-rw-r--r-- | openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/BaseResourceConnection.java | 174 |
1 files changed, 0 insertions, 174 deletions
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/BaseResourceConnection.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/BaseResourceConnection.java deleted file mode 100644 index d901ae9c98..0000000000 --- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/BaseResourceConnection.java +++ /dev/null @@ -1,174 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdc.translator.services.heattotosca.impl; - -import org.apache.commons.collections4.MapUtils; -import org.openecomp.core.utilities.yaml.YamlUtil; -import org.openecomp.sdc.common.errors.CoreException; -import org.openecomp.sdc.common.errors.ErrorCategory; -import org.openecomp.sdc.common.errors.ErrorCode; -import org.openecomp.sdc.heat.datatypes.manifest.FileData; -import org.openecomp.sdc.heat.datatypes.model.HeatOrchestrationTemplate; -import org.openecomp.sdc.heat.datatypes.model.Resource; -import org.openecomp.sdc.tosca.datatypes.model.NodeTemplate; -import org.openecomp.sdc.tosca.datatypes.model.NodeType; -import org.openecomp.sdc.tosca.datatypes.model.RequirementAssignment; -import org.openecomp.sdc.tosca.datatypes.model.RequirementDefinition; -import org.openecomp.sdc.tosca.datatypes.model.ServiceTemplate; -import org.openecomp.sdc.tosca.services.DataModelUtil; -import org.openecomp.sdc.translator.datatypes.heattotosca.to.TranslateTo; -import org.openecomp.sdc.translator.services.heattotosca.errors.TranslatorErrorCodes; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.Optional; -import java.util.function.Predicate; - -abstract class BaseResourceConnection<T> { - protected static Logger logger = - LoggerFactory.getLogger(ResourceTranslationCinderVolumeAttachmentImpl.class); - protected TranslateTo translateTo; - FileData nestedFileData; - NodeTemplate substitutionNodeTemplate; - NodeType nodeType; - ResourceTranslationBase resourceTranslationBase; - - BaseResourceConnection(ResourceTranslationBase resourceTranslationBase, TranslateTo translateTo, - FileData nestedFileData, NodeTemplate substitutionNodeTemplate, - NodeType nodeType) { - this.translateTo = translateTo; - this.nestedFileData = nestedFileData; - this.substitutionNodeTemplate = substitutionNodeTemplate; - this.nodeType = nodeType; - this.resourceTranslationBase = resourceTranslationBase; - } - - abstract boolean isDesiredNodeTemplateType(NodeTemplate nodeTemplate); - - abstract List<Predicate<T>> getPredicatesListForConnectionPoints(); - - abstract Optional<List<String>> getConnectorParamName(String heatResourceId, - Resource heatResource, - HeatOrchestrationTemplate - nestedHeatOrchestrationTemplate); - - abstract String getDesiredResourceType(); - - abstract String getTranslatedResourceIdFromSubstitutionMapping( - ServiceTemplate nestedServiceTemplate, Map.Entry<String, T> entry); - - abstract void addRequirementToConnectResources(Map.Entry<String, T> entry, - List<String> paramNames); - - abstract List<Map<String, T>> getAllConnectionPoints(); - - void connect() { - ServiceTemplate nestedServiceTemplate = translateTo.getContext().getTranslatedServiceTemplates() - .get(translateTo.getResource().getType()); - List<String> paramNames = null; - HeatOrchestrationTemplate nestedHeatOrchestrationTemplate = new YamlUtil() - .yamlToObject(translateTo.getContext().getFileContent(nestedFileData.getFile()), - HeatOrchestrationTemplate.class); - List<Map<String, T>> exposedConnectionPoints = getAllConnectionPoints(); - for (Map<String, T> connectionPointsMap : exposedConnectionPoints) { - for (Map.Entry<String, T> entry : connectionPointsMap.entrySet()) { - String translatedResourceId = - getTranslatedResourceIdFromSubstitutionMapping(nestedServiceTemplate, entry); - NodeTemplate nodeTemplate = nestedServiceTemplate.getTopology_template().getNode_templates() - .get(translatedResourceId); - if (!isDesiredNodeTemplateType(nodeTemplate)) { - continue; - } - paramNames = createResourcesConnection(translatedResourceId, paramNames, - nestedHeatOrchestrationTemplate, entry); - } - } - } - - private List<String> createResourcesConnection(String translatedResourceId, - List<String> paramNames, - HeatOrchestrationTemplate - nestedHeatOrchestrationTemplate, - Map.Entry<String, T> entry) { - List<String> params = paramNames; - Optional<List<Map.Entry<String, Resource>>> heatResources = - getResourceByTranslatedResourceId(translatedResourceId, nestedHeatOrchestrationTemplate); - if (heatResources.isPresent()) { - params = - addRequirementAndGetConnectorParamsFromResourceProperties(nestedHeatOrchestrationTemplate, - entry, params, heatResources.get()); - } - return params; - } - - private List<String> addRequirementAndGetConnectorParamsFromResourceProperties( - HeatOrchestrationTemplate nestedHeatOrchestrationTemplate, Map.Entry<String, T> entry, - List<String> params, List<Map.Entry<String, Resource>> heatResources) { - Resource heatResource; - for (Map.Entry<String, Resource> resourceEntry : heatResources) { - heatResource = resourceEntry.getValue(); - if (!MapUtils.isEmpty(heatResource.getProperties())) { - Optional<List<String>> connectorParamName = - getConnectorParamName(resourceEntry.getKey(), heatResource, - nestedHeatOrchestrationTemplate); - if (!connectorParamName.isPresent()) { - break; - } else { - params = connectorParamName.get(); - } - } - Objects.requireNonNull(params); - addRequirementToConnectResources(entry, params); - } - return params; - } - - protected Optional<List<Map.Entry<String, Resource>>> getResourceByTranslatedResourceId( - String translatedResourceId, HeatOrchestrationTemplate nestedHeatOrchestrationTemplate) { - Optional<List<Map.Entry<String, Resource>>> resourceByTranslatedResourceId = - resourceTranslationBase.getResourceByTranslatedResourceId(nestedFileData.getFile(), - nestedHeatOrchestrationTemplate, translatedResourceId, translateTo, - getDesiredResourceType()); - if (!resourceByTranslatedResourceId.isPresent()) { - throw new CoreException((new ErrorCode.ErrorCodeBuilder()).withMessage( - "Failed to get original resource from heat for translate resource id '" - + translatedResourceId + "'") - .withId(TranslatorErrorCodes.HEAT_TO_TOSCA_MAPPING_COLLISION) - .withCategory(ErrorCategory.APPLICATION).build()); - } - return resourceByTranslatedResourceId; - } - - void createRequirementAssignment(Map.Entry<String, RequirementDefinition> entry, String node, - NodeTemplate nodeTemplate) { - if (Objects.nonNull(node)) { - RequirementAssignment requirementAssignment; - requirementAssignment = new RequirementAssignment(); - requirementAssignment.setRelationship(entry.getValue().getRelationship()); - requirementAssignment.setCapability(entry.getValue().getCapability()); - requirementAssignment.setNode(node); - DataModelUtil.addRequirementAssignment(nodeTemplate, entry.getKey(), requirementAssignment); - } - } -} |