aboutsummaryrefslogtreecommitdiffstats
path: root/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationContrailServiceInstanceImpl.java
diff options
context:
space:
mode:
Diffstat (limited to 'openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationContrailServiceInstanceImpl.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/resourcetranslation/ResourceTranslationContrailServiceInstanceImpl.java1191
1 files changed, 572 insertions, 619 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/resourcetranslation/ResourceTranslationContrailServiceInstanceImpl.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationContrailServiceInstanceImpl.java
index c9c6b5ab03..6f223e6937 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationContrailServiceInstanceImpl.java
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationContrailServiceInstanceImpl.java
@@ -1,37 +1,38 @@
-/*-
- * ============LICENSE_START=======================================================
- * SDC
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
+/*
+ * 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.
- * ============LICENSE_END=========================================================
*/
package org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation;
-import org.openecomp.sdc.common.errors.CoreException;
-import org.openecomp.sdc.heat.datatypes.HeatBoolean;
-import org.openecomp.sdc.heat.datatypes.model.HeatResourcesTypes;
-import org.openecomp.sdc.heat.datatypes.model.Resource;
-import org.openecomp.sdc.heat.services.HeatConstants;
-import org.openecomp.sdc.logging.api.Logger;
-import org.openecomp.sdc.logging.api.LoggerFactory;
-import org.openecomp.sdc.tosca.datatypes.ToscaCapabilityType;
-import org.openecomp.sdc.tosca.datatypes.ToscaFunctions;
-import org.openecomp.sdc.tosca.datatypes.ToscaGroupType;
-import org.openecomp.sdc.tosca.datatypes.ToscaNodeType;
-import org.openecomp.sdc.tosca.datatypes.ToscaRelationshipType;
+import static org.openecomp.sdc.tosca.services.ToscaConstants.MANDATORY_PROPERTY_NAME;
+import static org.openecomp.sdc.translator.services.heattotosca.HeatToToscaLogConstants.LOG_INVALID_NETWORK_CONNECTION;
+import static org.openecomp.sdc.translator.services.heattotosca.HeatToToscaLogConstants.LOG_MISSING_VIRTUAL_NETWORK_INTERFACE_LIST;
+import static org.openecomp.sdc.translator.services.heattotosca.HeatToToscaLogConstants.LOG_MULTIPLE_SERVICE_INSTANCE_DIFF_INTERFACES;
+import static org.openecomp.sdc.translator.services.heattotosca.HeatToToscaLogConstants.LOG_SERVICE_TEMPLATE_PROPERTY_GET_RESOURCE;
+import static org.openecomp.sdc.translator.services.heattotosca.HeatToToscaLogConstants.LOG_SERVICE_TEMPLATE_PROPERTY_INVALID_TYPE;
+import static org.openecomp.sdc.translator.services.heattotosca.HeatToToscaLogConstants.LOG_SERVICE_TEMPLATE_PROPERTY_UNSUPPORTED_RESOURCE;
+import static org.openecomp.sdc.translator.services.heattotosca.HeatToToscaLogConstants.LOG_UNSUPPORTED_NETWORK_RESOURCE_CONNECTION;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Optional;
+
import org.onap.sdc.tosca.datatypes.model.AttributeDefinition;
import org.onap.sdc.tosca.datatypes.model.GroupDefinition;
import org.onap.sdc.tosca.datatypes.model.Import;
@@ -44,6 +45,18 @@ import org.onap.sdc.tosca.datatypes.model.RequirementDefinition;
import org.onap.sdc.tosca.datatypes.model.ServiceTemplate;
import org.onap.sdc.tosca.datatypes.model.SubstitutionMapping;
import org.onap.sdc.tosca.datatypes.model.TopologyTemplate;
+import org.openecomp.sdc.common.errors.CoreException;
+import org.openecomp.sdc.heat.datatypes.HeatBoolean;
+import org.openecomp.sdc.heat.datatypes.model.HeatResourcesTypes;
+import org.openecomp.sdc.heat.datatypes.model.Resource;
+import org.openecomp.sdc.heat.services.HeatConstants;
+import org.openecomp.sdc.logging.api.Logger;
+import org.openecomp.sdc.logging.api.LoggerFactory;
+import org.openecomp.sdc.tosca.datatypes.ToscaCapabilityType;
+import org.openecomp.sdc.tosca.datatypes.ToscaFunctions;
+import org.openecomp.sdc.tosca.datatypes.ToscaGroupType;
+import org.openecomp.sdc.tosca.datatypes.ToscaNodeType;
+import org.openecomp.sdc.tosca.datatypes.ToscaRelationshipType;
import org.openecomp.sdc.tosca.services.DataModelUtil;
import org.openecomp.sdc.tosca.services.ToscaAnalyzerService;
import org.openecomp.sdc.tosca.services.ToscaConstants;
@@ -51,6 +64,7 @@ import org.openecomp.sdc.tosca.services.ToscaUtil;
import org.openecomp.sdc.tosca.services.impl.ToscaAnalyzerServiceImpl;
import org.openecomp.sdc.tosca.services.impl.ToscaFileOutputServiceCsarImpl;
import org.openecomp.sdc.translator.datatypes.heattotosca.AttachedResourceId;
+import org.openecomp.sdc.translator.datatypes.heattotosca.to.ContrailServiceInstanceTo;
import org.openecomp.sdc.translator.datatypes.heattotosca.to.TranslateTo;
import org.openecomp.sdc.translator.datatypes.heattotosca.to.TranslatedHeatResource;
import org.openecomp.sdc.translator.services.heattotosca.Constants;
@@ -61,647 +75,586 @@ import org.openecomp.sdc.translator.services.heattotosca.globaltypes.GlobalTypes
import org.openecomp.sdc.translator.services.heattotosca.helper.ContrailTranslationHelper;
import org.openecomp.sdc.translator.services.heattotosca.mapping.TranslatorHeatToToscaPropertyConverter;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-import java.util.Optional;
-
public class ResourceTranslationContrailServiceInstanceImpl extends ResourceTranslationBase {
- protected static Logger logger = LoggerFactory.getLogger(ResourceTranslationContrailServiceInstanceImpl.class);
-
- @Override
- public void translate(TranslateTo translateTo) {
- Resource serviceInstanceResource = translateTo.getResource();
- AttachedResourceId contrailServiceTemplateAttached =
- getServiceTemplateAttachedId(translateTo, serviceInstanceResource);
- if (contrailServiceTemplateAttached.isGetResource()) {
- String contrailServiceTemplateResourceId =
- (String) contrailServiceTemplateAttached.getEntityId();
- Resource contrailServiceTemplateResource = HeatToToscaUtil
- .getResource(translateTo.getHeatOrchestrationTemplate(),
- contrailServiceTemplateResourceId, translateTo.getHeatFileName());
- if (!contrailServiceTemplateResource.getType()
- .equals(HeatResourcesTypes.CONTRAIL_SERVICE_TEMPLATE.getHeatResource())) {
- logger.warn("resource id '" + translateTo.getResourceId() + "' with type '"
- + translateTo.getResource().getType()
- + "+ has reference to resource '" + contrailServiceTemplateResourceId + "' with type '"
- + contrailServiceTemplateResource.getType()
- + "' in property service_template. Invalid type, resource type should be type of '"
- + HeatResourcesTypes.CONTRAIL_SERVICE_TEMPLATE.getHeatResource()
- + "', therefore this resource will be ignored in TOSCA translation.");
- return;
- }
- Optional<String> contrailServiceTemplateTranslatedId =
- ResourceTranslationFactory.getInstance(contrailServiceTemplateResource)
- .translateResource(translateTo.getHeatFileName(), translateTo.getServiceTemplate(),
- translateTo.getHeatOrchestrationTemplate(), contrailServiceTemplateResource,
- contrailServiceTemplateResourceId, translateTo.getContext());
- if (!contrailServiceTemplateTranslatedId.isPresent()) {
- logger.warn("Resource id '" + translateTo.getResourceId() + "' with type '"
- + translateTo.getResource().getType()
- + "' has reference to unsupported resource '" + contrailServiceTemplateResourceId
- + "' with type '" + contrailServiceTemplateResource.getType()
- + "' in property 'service_template'"
- + ", therefore this resource will be ignored in TOSCA translation.");
- return;
- }
-
- ServiceTemplate globalSubstitutionServiceTemplate =
- translateTo.getContext().getTranslatedServiceTemplates().get(
- Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME);
- String contrailStId = ResourceTranslationContrailServiceTemplateImpl
- .getContrailSubstitutedNodeTypeId(contrailServiceTemplateTranslatedId.get());
- NodeType substitutedNodeType =
- DataModelUtil.getNodeType(globalSubstitutionServiceTemplate, contrailStId);
-
- int numberOfPorts = getServiceInstanceNumberOfPorts(serviceInstanceResource);
- if (substitutedNodeType.getRequirements() != null
- && substitutedNodeType.getRequirements().size() != numberOfPorts) {
- logger.warn("More than one ServiceInstance pointing to the same ServiceTemplate '"
- + contrailServiceTemplateResourceId + " ' with different number of interfaces."
- + ", therefore this resource will be ignored in TOSCA translation.");
- return;
- }
-
- addNetworkLinkRequirements(substitutedNodeType, numberOfPorts);
- NodeTemplate substitutedNodeTemplate =
- createSubstitutedNodeTemplate(translateTo, contrailServiceTemplateResource, contrailStId,
- numberOfPorts);
-
- String computeNodeTypeId = new ContrailTranslationHelper()
- .getComputeNodeTypeId(contrailServiceTemplateResource, contrailServiceTemplateResourceId,
- contrailServiceTemplateTranslatedId.get(), translateTo.getContext());
- boolean orderedInterfaces = getOrderedInterfaces(contrailServiceTemplateResource);
- ServiceTemplate nestedServiceTemplate =
- createNestedServiceTemplate(translateTo, computeNodeTypeId, contrailStId,
- substitutedNodeTemplate, orderedInterfaces);
- addAbstractSubstitutionProperty(translateTo, substitutedNodeTemplate.getProperties(),
- nestedServiceTemplate, contrailServiceTemplateResource);
- translateTo.getContext().getTranslatedServiceTemplates().put(new ContrailTranslationHelper()
- .getSubstitutionContrailServiceTemplateMetadata(translateTo.getHeatFileName(),
- translateTo.getTranslatedId()), nestedServiceTemplate);
-
- } else {
- logger.warn("Heat resource: '" + translateTo.getResourceId() + "' with type: '"
- + translateTo.getResource().getType()
- + "' include 'service_template' property without 'get_resource' function, currently not"
- + " supported, therefore this resource will be ignored in TOSCA translation.");
- }
- }
-
- private void addAbstractSubstitutionProperty(TranslateTo translateTo,
- Map<String, Object> substitutionProperties,
- ServiceTemplate nestedServiceTemplate,
- Resource contrailServiceTemplateResource) {
- Map<String, Object> innerProps = new HashMap<>();
- innerProps.put(ToscaConstants.SUBSTITUTE_SERVICE_TEMPLATE_PROPERTY_NAME,
- ToscaUtil.getServiceTemplateFileName(nestedServiceTemplate));
-
- Object countValue = handleScaleOutProperty(translateTo, innerProps);
- handleServiceScalingProperty(translateTo, innerProps, contrailServiceTemplateResource);
-
- boolean mandatory = false;
- if (countValue instanceof Integer && (Integer) countValue > 0) {
- mandatory = true;
+ private static final String INTERFACE_LIST = "interface_list";
+ protected static Logger logger = LoggerFactory.getLogger(ResourceTranslationContrailServiceInstanceImpl.class);
+
+ @Override
+ public void translate(TranslateTo translateTo) {
+ Resource serviceInstanceResource = translateTo.getResource();
+ AttachedResourceId contrailServiceTemplateAttached = getServiceTemplateAttachedId(translateTo,
+ serviceInstanceResource);
+ if (contrailServiceTemplateAttached.isGetResource()) {
+ translateContrailServiceInstance(translateTo, serviceInstanceResource, contrailServiceTemplateAttached);
+ } else {
+ logger.warn(LOG_SERVICE_TEMPLATE_PROPERTY_GET_RESOURCE, translateTo.getResourceId(),
+ translateTo.getResource().getType());
+ }
}
- if (countValue == null) {
- mandatory = true;
+
+ private void translateContrailServiceInstance(TranslateTo translateTo, Resource serviceInstanceResource,
+ AttachedResourceId contrailServiceTemplateAttached) {
+ String contrailServiceTemplateResourceId = (String) contrailServiceTemplateAttached.getEntityId();
+ Resource contrailServiceTemplateResource = HeatToToscaUtil
+ .getResource(translateTo.getHeatOrchestrationTemplate(),
+ contrailServiceTemplateResourceId, translateTo.getHeatFileName());
+ if (!contrailServiceTemplateResource.getType()
+ .equals(HeatResourcesTypes.CONTRAIL_SERVICE_TEMPLATE.getHeatResource())) {
+ logger.warn(LOG_SERVICE_TEMPLATE_PROPERTY_INVALID_TYPE, translateTo.getResourceId(),
+ translateTo.getResource().getType(), contrailServiceTemplateResourceId,
+ contrailServiceTemplateResource.getType(),
+ HeatResourcesTypes.CONTRAIL_SERVICE_TEMPLATE.getHeatResource());
+ return;
+ }
+ Optional<String> contrailServiceTemplateTranslatedId =
+ ResourceTranslationFactory.getInstance(contrailServiceTemplateResource)
+ .translateResource(translateTo.getHeatFileName(), translateTo.getServiceTemplate(),
+ translateTo.getHeatOrchestrationTemplate(), contrailServiceTemplateResource,
+ contrailServiceTemplateResourceId, translateTo.getContext());
+ if (!contrailServiceTemplateTranslatedId.isPresent()) {
+ logger.warn(LOG_SERVICE_TEMPLATE_PROPERTY_UNSUPPORTED_RESOURCE, translateTo.getResourceId(),
+ translateTo.getResource().getType(), contrailServiceTemplateResourceId,
+ contrailServiceTemplateResource.getType());
+ return;
+ }
+
+ ServiceTemplate globalSubstitutionServiceTemplate = translateTo.getContext().getTranslatedServiceTemplates()
+ .get(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME);
+ String contrailStId = ResourceTranslationContrailServiceTemplateImpl
+ .getContrailSubstitutedNodeTypeId(contrailServiceTemplateTranslatedId.get());
+ NodeType substitutedNodeType = DataModelUtil.getNodeType(globalSubstitutionServiceTemplate, contrailStId);
+ int numberOfPorts = getServiceInstanceNumberOfPorts(serviceInstanceResource);
+ if (substitutedNodeType.getRequirements() != null
+ && substitutedNodeType.getRequirements().size() != numberOfPorts) {
+ logger.warn(LOG_MULTIPLE_SERVICE_INSTANCE_DIFF_INTERFACES, contrailServiceTemplateResourceId);
+ return;
+ }
+ addNetworkLinkRequirements(substitutedNodeType, numberOfPorts);
+ NodeTemplate substitutedNodeTemplate = createSubstitutedNodeTemplate(translateTo,
+ contrailServiceTemplateResource, contrailStId, numberOfPorts);
+ String computeNodeTypeId = new ContrailTranslationHelper()
+ .getComputeNodeTypeId(contrailServiceTemplateResource, contrailServiceTemplateResourceId,
+ contrailServiceTemplateTranslatedId.get(), translateTo.getContext());
+ boolean orderedInterfaces = getOrderedInterfaces(contrailServiceTemplateResource);
+ ServiceTemplate nestedServiceTemplate = createNestedServiceTemplate(translateTo, computeNodeTypeId,
+ contrailStId, substitutedNodeTemplate, orderedInterfaces);
+ addAbstractSubstitutionProperty(translateTo, substitutedNodeTemplate.getProperties(),
+ nestedServiceTemplate, contrailServiceTemplateResource);
+ translateTo.getContext().getTranslatedServiceTemplates().put(new ContrailTranslationHelper()
+ .getSubstitutionContrailServiceTemplateMetadata(translateTo.getHeatFileName(),
+ translateTo.getTranslatedId()), nestedServiceTemplate);
}
- innerProps.put("mandatory", mandatory);
- substitutionProperties.put(ToscaConstants.SERVICE_TEMPLATE_FILTER_PROPERTY_NAME, innerProps);
- }
-
- private Object handleScaleOutProperty(TranslateTo translateTo, Map<String, Object> innerProps) {
- Object scaleOutPropertyValue =
- translateTo.getResource().getProperties().get(HeatConstants.SCALE_OUT_PROPERTY_NAME);
- Object countValue = null;
- if (scaleOutPropertyValue != null && scaleOutPropertyValue instanceof Map) {
- countValue = TranslatorHeatToToscaPropertyConverter
- .getToscaPropertyValue(translateTo.getServiceTemplate(), translateTo.getTranslatedId(),
- Constants.MAX_INSTANCES_PROPERTY_NAME,
- ((Map) scaleOutPropertyValue).get(Constants.MAX_INSTANCES_PROPERTY_NAME), null,
- translateTo.getHeatFileName(), translateTo.getHeatOrchestrationTemplate(), null,
- translateTo.getContext());
- if (countValue != null) {
- innerProps.put(ToscaConstants.COUNT_PROPERTY_NAME, countValue);
- } else {
- innerProps.put(ToscaConstants.COUNT_PROPERTY_NAME, 1);
- }
- } else {
- innerProps.put(ToscaConstants.COUNT_PROPERTY_NAME, 1);
+
+ private void addAbstractSubstitutionProperty(TranslateTo translateTo,
+ Map<String, Object> substitutionProperties,
+ ServiceTemplate nestedServiceTemplate,
+ Resource contrailServiceTemplateResource) {
+ Map<String, Object> innerProps = new HashMap<>();
+ innerProps.put(ToscaConstants.SUBSTITUTE_SERVICE_TEMPLATE_PROPERTY_NAME,
+ ToscaUtil.getServiceTemplateFileName(nestedServiceTemplate));
+ Object countValue = handleScaleOutProperty(translateTo, innerProps);
+ handleServiceScalingProperty(translateTo, innerProps, contrailServiceTemplateResource);
+ boolean mandatory = false;
+ if (countValue instanceof Integer && (Integer) countValue > 0) {
+ mandatory = true;
+ }
+ if (countValue == null) {
+ mandatory = true;
+ }
+ innerProps.put(MANDATORY_PROPERTY_NAME, mandatory);
+ substitutionProperties.put(ToscaConstants.SERVICE_TEMPLATE_FILTER_PROPERTY_NAME, innerProps);
}
- return countValue;
- }
-
- private void handleServiceScalingProperty(TranslateTo translateTo, Map<String, Object> innerProps,
- Resource contrailServiceTemplateResource) {
- Object serviceScalingPropertyValue = contrailServiceTemplateResource.getProperties()
- .get(HeatConstants.SERVICE_SCALING_PROPERTY_NAME);
- Object serviceScalingValue;
- if (serviceScalingPropertyValue != null) {
- serviceScalingValue = TranslatorHeatToToscaPropertyConverter
- .getToscaPropertyValue(translateTo.getServiceTemplate(), translateTo.getTranslatedId(),
- HeatConstants.SERVICE_SCALING_PROPERTY_NAME, serviceScalingPropertyValue, null,
- translateTo.getHeatFileName(), translateTo.getHeatOrchestrationTemplate(), null,
- translateTo.getContext());
- if (serviceScalingValue != null) {
- innerProps.put(ToscaConstants.SCALING_ENABLED_PROPERTY_NAME,
- (HeatBoolean.isValueBoolean(serviceScalingValue)) ? HeatBoolean
- .eval(serviceScalingValue) : serviceScalingValue);
- }
+
+ private Object handleScaleOutProperty(TranslateTo translateTo, Map<String, Object> innerProps) {
+ Object scaleOutPropertyValue =
+ translateTo.getResource().getProperties().get(HeatConstants.SCALE_OUT_PROPERTY_NAME);
+ Object countValue = null;
+ if (scaleOutPropertyValue instanceof Map) {
+ countValue = TranslatorHeatToToscaPropertyConverter
+ .getToscaPropertyValue(translateTo.getServiceTemplate(), translateTo.getTranslatedId(),
+ Constants.MAX_INSTANCES_PROPERTY_NAME,
+ ((Map) scaleOutPropertyValue).get(Constants.MAX_INSTANCES_PROPERTY_NAME), null,
+ translateTo.getHeatFileName(), translateTo.getHeatOrchestrationTemplate(), null,
+ translateTo.getContext());
+ if (countValue != null) {
+ innerProps.put(ToscaConstants.COUNT_PROPERTY_NAME, countValue);
+ } else {
+ innerProps.put(ToscaConstants.COUNT_PROPERTY_NAME, 1);
+ }
+ } else {
+ innerProps.put(ToscaConstants.COUNT_PROPERTY_NAME, 1);
+ }
+ return countValue;
}
- }
- private boolean getOrderedInterfaces(Resource contrailServiceTemplate) {
- Object orderedInterfaces = contrailServiceTemplate.getProperties().get("ordered_interfaces");
- if (orderedInterfaces == null) {
- return false;
+ private void handleServiceScalingProperty(TranslateTo translateTo, Map<String, Object> innerProps,
+ Resource contrailServiceTemplateResource) {
+ Object serviceScalingPropertyValue = contrailServiceTemplateResource.getProperties()
+ .get(HeatConstants.SERVICE_SCALING_PROPERTY_NAME);
+ Object serviceScalingValue;
+ if (serviceScalingPropertyValue != null) {
+ serviceScalingValue = TranslatorHeatToToscaPropertyConverter
+ .getToscaPropertyValue(translateTo.getServiceTemplate(), translateTo.getTranslatedId(),
+ HeatConstants.SERVICE_SCALING_PROPERTY_NAME, serviceScalingPropertyValue, null,
+ translateTo.getHeatFileName(), translateTo.getHeatOrchestrationTemplate(), null,
+ translateTo.getContext());
+ if (serviceScalingValue != null) {
+ innerProps.put(ToscaConstants.SCALING_ENABLED_PROPERTY_NAME,
+ (HeatBoolean.isValueBoolean(serviceScalingValue)) ? HeatBoolean.eval(serviceScalingValue) :
+ serviceScalingValue);
+ }
+ }
}
- if (orderedInterfaces instanceof String) {
- return HeatBoolean.eval(orderedInterfaces);
+
+ private boolean getOrderedInterfaces(Resource contrailServiceTemplate) {
+ Object orderedInterfaces = contrailServiceTemplate.getProperties().get("ordered_interfaces");
+ if (orderedInterfaces == null) {
+ return false;
+ }
+ if (orderedInterfaces instanceof String) {
+ return HeatBoolean.eval(orderedInterfaces);
+ }
+ //if get_param, set default value to true
+ return true;
}
- //if get_param, set default value to true
- return true;
- }
-
- private ServiceTemplate createNestedServiceTemplate(TranslateTo translateTo,
- String computeNodeTypeId,
- String substitutedNodeTypeId,
- NodeTemplate substitutedNodeTemplate,
- boolean orderedInterfaces) {
- ServiceTemplate nestedSubstitutionServiceTemplate = new ServiceTemplate();
- setNestedServiceTemplateGeneralDetails(translateTo, nestedSubstitutionServiceTemplate);
- String heatStackGroupKey = addHeatStackGroup(translateTo, nestedSubstitutionServiceTemplate);
- addSubstitutionMappingEntry(nestedSubstitutionServiceTemplate, substitutedNodeTypeId);
-
- handleInputParameters(nestedSubstitutionServiceTemplate, translateTo);
- String computeNodeTemplateId =
- handleComputeNodeTemplate(translateTo, computeNodeTypeId, nestedSubstitutionServiceTemplate,
- heatStackGroupKey);
- handleOutputParameters(nestedSubstitutionServiceTemplate, computeNodeTemplateId, translateTo);
- handleServiceInstanceInterfaces(translateTo, nestedSubstitutionServiceTemplate,
- substitutedNodeTemplate, heatStackGroupKey, orderedInterfaces, computeNodeTemplateId);
- return nestedSubstitutionServiceTemplate;
- }
-
- private void handleOutputParameters(ServiceTemplate nestedSubstitutionServiceTemplate,
- String nodeTemplateId, TranslateTo translateTo) {
- if (nodeTemplateId == null) {
- return;
+
+ private ServiceTemplate createNestedServiceTemplate(TranslateTo translateTo,
+ String computeNodeTypeId,
+ String substitutedNodeTypeId,
+ NodeTemplate substitutedNodeTemplate,
+ boolean orderedInterfaces) {
+ ServiceTemplate nestedSubstitutionServiceTemplate = new ServiceTemplate();
+ setNestedServiceTemplateGeneralDetails(translateTo, nestedSubstitutionServiceTemplate);
+ String heatStackGroupKey = addHeatStackGroup(translateTo, nestedSubstitutionServiceTemplate);
+ addSubstitutionMappingEntry(nestedSubstitutionServiceTemplate, substitutedNodeTypeId);
+ handleInputParameters(nestedSubstitutionServiceTemplate, translateTo);
+ String computeNodeTemplateId = handleComputeNodeTemplate(translateTo, computeNodeTypeId,
+ nestedSubstitutionServiceTemplate, heatStackGroupKey);
+ handleOutputParameters(nestedSubstitutionServiceTemplate, computeNodeTemplateId, translateTo);
+ handleServiceInstanceInterfaces(translateTo,
+ new ContrailServiceInstanceTo(nestedSubstitutionServiceTemplate, substitutedNodeTemplate,
+ heatStackGroupKey, orderedInterfaces, computeNodeTemplateId));
+ return nestedSubstitutionServiceTemplate;
}
- ToscaAnalyzerService toscaAnalyzerService = new ToscaAnalyzerServiceImpl();
- Optional<NodeType> contrailAbstractNodeType =
- toscaAnalyzerService.fetchNodeType(ToscaNodeType.CONTRAIL_ABSTRACT_SUBSTITUTE, translateTo
- .getContext().getGlobalServiceTemplates().values());
+ private void handleOutputParameters(ServiceTemplate nestedSubstitutionServiceTemplate,
+ String nodeTemplateId, TranslateTo translateTo) {
+ if (nodeTemplateId == null) {
+ return;
+ }
+ ToscaAnalyzerService toscaAnalyzerService = new ToscaAnalyzerServiceImpl();
- if (!contrailAbstractNodeType.isPresent()) {
- return;
- }
- Map<String, AttributeDefinition> contrailAbstractAttributes =
- contrailAbstractNodeType.get().getAttributes();
- Map<String, ParameterDefinition> nestedSubstitutionServiceTemplateOutputs = new HashMap<>();
+ Optional<NodeType> contrailAbstractNodeType =
+ toscaAnalyzerService.fetchNodeType(ToscaNodeType.CONTRAIL_ABSTRACT_SUBSTITUTE, translateTo
+ .getContext().getGlobalServiceTemplates().values());
- if (contrailAbstractAttributes == null) {
- return;
- }
+ if (!contrailAbstractNodeType.isPresent()) {
+ return;
+ }
+ Map<String, AttributeDefinition> contrailAbstractAttributes =
+ contrailAbstractNodeType.get().getAttributes();
+ Map<String, ParameterDefinition> nestedSubstitutionServiceTemplateOutputs = new HashMap<>();
- for (String attributeKey : contrailAbstractAttributes.keySet()) {
- AttributeDefinition abstractAttributeDef = contrailAbstractAttributes.get(attributeKey);
- if (abstractAttributeDef != null) {
- Map<String, List> outputValue = new HashMap<>();
- List outputGetAttributeList = new ArrayList<>();
- outputGetAttributeList.add(nodeTemplateId);
- outputGetAttributeList.add(attributeKey);
- outputValue.put(ToscaFunctions.GET_ATTRIBUTE.getDisplayName(), outputGetAttributeList);
- nestedSubstitutionServiceTemplateOutputs.put(attributeKey,
- DataModelUtil.convertAttributeDefToParameterDef(abstractAttributeDef, outputValue));
- }
- }
- if (!nestedSubstitutionServiceTemplateOutputs.isEmpty()) {
- nestedSubstitutionServiceTemplate.getTopology_template()
- .setOutputs(nestedSubstitutionServiceTemplateOutputs);
- }
- }
-
- private void handleServiceInstanceInterfaces(TranslateTo translateTo,
- ServiceTemplate nestedSubstitutionServiceTemplate,
- NodeTemplate substitutedNodeTemplate,
- String heatStackGroupKey, boolean orderedInterfaces,
- String computeNodeTemplateId) {
- Resource serviceInstanceResource = translateTo.getResource();
- Object interfaceListProperty =
- serviceInstanceResource.getProperties().get(HeatConstants.INTERFACE_LIST_PROPERTY_NAME);
- if (interfaceListProperty == null) {
- return;
+ if (contrailAbstractAttributes == null) {
+ return;
+ }
+
+ for (Map.Entry<String, AttributeDefinition> attributeDefinitionEntry : contrailAbstractAttributes.entrySet()) {
+ AttributeDefinition abstractAttributeDef = attributeDefinitionEntry.getValue();
+ if (abstractAttributeDef != null) {
+ Map<String, List> outputValue = new HashMap<>();
+ List<String> outputGetAttributeList = new ArrayList<>();
+ outputGetAttributeList.add(nodeTemplateId);
+ outputGetAttributeList.add(attributeDefinitionEntry.getKey());
+ outputValue.put(ToscaFunctions.GET_ATTRIBUTE.getDisplayName(), outputGetAttributeList);
+ nestedSubstitutionServiceTemplateOutputs.put(attributeDefinitionEntry.getKey(),
+ DataModelUtil.convertAttributeDefToParameterDef(abstractAttributeDef, outputValue));
+ }
+ }
+
+ if (!nestedSubstitutionServiceTemplateOutputs.isEmpty()) {
+ nestedSubstitutionServiceTemplate.getTopology_template()
+ .setOutputs(nestedSubstitutionServiceTemplateOutputs);
+ }
}
- if (interfaceListProperty instanceof List) {
- for (int index = 0; index < ((List) interfaceListProperty).size(); index++) {
- Object interfaceEntry = ((List) interfaceListProperty).get(index);
- handleInterface(translateTo, interfaceEntry, index, nestedSubstitutionServiceTemplate,
- heatStackGroupKey, substitutedNodeTemplate, orderedInterfaces, computeNodeTemplateId);
- }
- } else if (interfaceListProperty instanceof Map) {
- handleInterface(translateTo, interfaceListProperty, null, nestedSubstitutionServiceTemplate,
- heatStackGroupKey, substitutedNodeTemplate, orderedInterfaces, computeNodeTemplateId);
+
+ private void handleServiceInstanceInterfaces(TranslateTo translateTo,
+ ContrailServiceInstanceTo contrailServiceInstanceTo) {
+ Resource serviceInstanceResource = translateTo.getResource();
+ Object interfaceListProperty =
+ serviceInstanceResource.getProperties().get(HeatConstants.INTERFACE_LIST_PROPERTY_NAME);
+ if (interfaceListProperty == null) {
+ return;
+ }
+ if (interfaceListProperty instanceof List) {
+ for (int index = 0; index < ((List) interfaceListProperty).size(); index++) {
+ Object interfaceEntry = ((List) interfaceListProperty).get(index);
+ handleInterface(translateTo, interfaceEntry, index, contrailServiceInstanceTo);
+ }
+ } else if (interfaceListProperty instanceof Map) {
+ handleInterface(translateTo, interfaceListProperty, null, contrailServiceInstanceTo);
+ }
}
- }
-
- private void handleInterface(TranslateTo translateTo, Object interfacePropertyValue,
- Integer index,
- ServiceTemplate nestedSubstitutionServiceTemplate,
- String heatStackGroupKey, NodeTemplate substitutedNodeTemplate,
- boolean orderedInterfaces, String computeNodeTemplateId) {
- if (index == null) {
- index = 0;
+
+ private void handleInterface(TranslateTo translateTo, Object interfacePropertyValue,
+ Integer index, ContrailServiceInstanceTo contrailServiceInstanceTo) {
+ if (index == null) {
+ index = 0;
+ }
+ NodeTemplate portNodeTemplate = createPortNodeTemplate(index, contrailServiceInstanceTo.isOrderedInterfaces(),
+ contrailServiceInstanceTo.getComputeNodeTemplateId());
+ String portNodeTemplateId = Constants.SERVICE_INSTANCE_PORT_PREFIX + index;
+ String portReqMappingKey = Constants.SERVICE_INSTANCE_LINK_PREFIX + portNodeTemplateId;
+
+ DataModelUtil.addNodeTemplate(contrailServiceInstanceTo.getNestedSubstitutionServiceTemplate(),
+ portNodeTemplateId, portNodeTemplate);
+ updateSubstitutionMappingRequirement(contrailServiceInstanceTo.getNestedSubstitutionServiceTemplate(),
+ portReqMappingKey, portNodeTemplateId);
+ updateHeatStackGroup(contrailServiceInstanceTo.getNestedSubstitutionServiceTemplate(),
+ contrailServiceInstanceTo.getHeatStackGroupKey(), portNodeTemplateId);
+ connectPortToNetwork(translateTo, interfacePropertyValue, contrailServiceInstanceTo
+ .getSubstitutedNodeTemplate(), portReqMappingKey);
}
- NodeTemplate portNodeTemplate =
- createPortNodeTemplate(index, orderedInterfaces, computeNodeTemplateId);
- String portNodeTemplateId = Constants.SERVICE_INSTANCE_PORT_PREFIX + index;
- String portReqMappingKey = Constants.SERVICE_INSTANCE_LINK_PREFIX + portNodeTemplateId;
-
- DataModelUtil
- .addNodeTemplate(nestedSubstitutionServiceTemplate, portNodeTemplateId, portNodeTemplate);
- updateSubstitutionMappingRequirement(nestedSubstitutionServiceTemplate, portReqMappingKey,
- portNodeTemplateId);
- updateHeatStackGroup(nestedSubstitutionServiceTemplate, heatStackGroupKey, portNodeTemplateId);
- connectPortToNetwork(translateTo, interfacePropertyValue, substitutedNodeTemplate,
- portReqMappingKey);
- }
-
- private void connectPortToNetwork(TranslateTo translateTo, Object interfacePropertyValue,
- NodeTemplate substitutedNodeTemplate,
- String portReqMappingKey) {
- List<String> validNetworksForConnections = Arrays
- .asList(HeatResourcesTypes.NEUTRON_NET_RESOURCE_TYPE.getHeatResource(),
- HeatResourcesTypes.CONTRAIL_VIRTUAL_NETWORK_RESOURCE_TYPE.getHeatResource());
-
- if (interfacePropertyValue instanceof Map) {
- Object virtualNetworkValue =
- ((Map) interfacePropertyValue).get(HeatConstants.VIRTUAL_NETWORK_PROPERTY_NAME);
- if (virtualNetworkValue != null) {
+
+ private void connectPortToNetwork(TranslateTo translateTo, Object interfacePropertyValue,
+ NodeTemplate substitutedNodeTemplate,
+ String portReqMappingKey) {
+ List<String> validNetworksForConnections = Arrays
+ .asList(HeatResourcesTypes.NEUTRON_NET_RESOURCE_TYPE.getHeatResource(),
+ HeatResourcesTypes.CONTRAIL_VIRTUAL_NETWORK_RESOURCE_TYPE.getHeatResource());
+ if (!(interfacePropertyValue instanceof Map)) {
+ return;
+ }
+ Object virtualNetworkValue = ((Map) interfacePropertyValue).get(HeatConstants.VIRTUAL_NETWORK_PROPERTY_NAME);
+ if (virtualNetworkValue == null) {
+ logger.warn(LOG_MISSING_VIRTUAL_NETWORK_INTERFACE_LIST, translateTo.getResourceId(),
+ translateTo.getResource().getType());
+ return;
+ }
Optional<AttachedResourceId> networkAttachedResourceId = HeatToToscaUtil
- .extractAttachedResourceId(translateTo.getHeatFileName(),
- translateTo.getHeatOrchestrationTemplate(), translateTo.getContext(),
- virtualNetworkValue);
- if (networkAttachedResourceId.isPresent()) {
- Optional<String> networkResourceId =
- HeatToToscaUtil.getContrailAttachedHeatResourceId(networkAttachedResourceId.get());
- if (networkResourceId.isPresent()) {
- Resource networkResource = HeatToToscaUtil
- .getResource(translateTo.getHeatOrchestrationTemplate(), networkResourceId.get(),
- translateTo.getHeatFileName());
+ .extractAttachedResourceId(translateTo.getHeatFileName(), translateTo.getHeatOrchestrationTemplate(),
+ translateTo.getContext(), virtualNetworkValue);
+ if (!networkAttachedResourceId.isPresent()) {
+ return;
+ }
+ Optional<String> networkResourceId =
+ HeatToToscaUtil.getContrailAttachedHeatResourceId(networkAttachedResourceId.get());
+ if (networkResourceId.isPresent()) {
+ Resource networkResource = HeatToToscaUtil.getResource(translateTo.getHeatOrchestrationTemplate(),
+ networkResourceId.get(), translateTo.getHeatFileName());
if (validNetworksForConnections.contains(networkResource.getType())) {
- Optional<String> networkTranslatedId =
- getResourceTranslatedId(translateTo.getHeatFileName(),
- translateTo.getHeatOrchestrationTemplate(), networkResourceId.get(),
- translateTo.getContext());
- networkTranslatedId
- .ifPresent(
- translatedId -> addLinkToNetworkRequirementAssignment(substitutedNodeTemplate,
- translatedId, portReqMappingKey));
+ Optional<String> networkTranslatedId =
+ getResourceTranslatedId(translateTo.getHeatFileName(),
+ translateTo.getHeatOrchestrationTemplate(), networkResourceId.get(),
+ translateTo.getContext());
+ networkTranslatedId.ifPresent(translatedId -> addLinkToNetworkRequirementAssignment(
+ substitutedNodeTemplate, translatedId, portReqMappingKey));
} else {
- logger.warn("Heat resource " + translateTo.getResourceId() + " with type "
- + translateTo.getResource().getType()
- + " has connection to invalid/not supported network resource, therefore, this "
- + "connection will be ignored in the translation.");
+ logger.warn(LOG_UNSUPPORTED_NETWORK_RESOURCE_CONNECTION, translateTo.getResourceId(),
+ translateTo.getResource().getType());
}
- } else if (networkAttachedResourceId.get().isGetParam()
- && networkAttachedResourceId.get().getEntityId() instanceof String) {
- TranslatedHeatResource
- translatedSharedResourceId =
- translateTo.getContext().getHeatSharedResourcesByParam()
- .get(networkAttachedResourceId.get().getEntityId());
+ } else if (networkAttachedResourceId.get().isGetParam()
+ && networkAttachedResourceId.get().getEntityId() instanceof String) {
+ TranslatedHeatResource translatedSharedResourceId = translateTo.getContext().getHeatSharedResourcesByParam()
+ .get(networkAttachedResourceId.get().getEntityId());
if (Objects.nonNull(translatedSharedResourceId)
- && !HeatToToscaUtil.isHeatFileNested(translateTo, translateTo.getHeatFileName())) {
- addLinkToNetworkRequirementAssignment(substitutedNodeTemplate,
- translatedSharedResourceId.getTranslatedId(), portReqMappingKey);
+ && !HeatToToscaUtil.isHeatFileNested(translateTo, translateTo.getHeatFileName())) {
+ addLinkToNetworkRequirementAssignment(substitutedNodeTemplate,
+ translatedSharedResourceId.getTranslatedId(), portReqMappingKey);
}
- } else {
- logger.warn("Heat resource: '" + translateTo.getResourceId() + "' with type: '"
- + translateTo.getResource().getType()
- + "' include 'virtual_network' property with value '"
- + virtualNetworkValue.toString()
- + "', the connection to this network wasn't found/not supported therefore this "
- + "connection will be ignored in TOSCA translation for this property.");
- }
- }
- } else {
- logger.warn("Heat resource: '" + translateTo.getResourceId() + "' with type: '"
- + translateTo.getResource().getType()
- + "' missing 'virtual_network' property in 'interface_list' entry, therefore, no "
- + "network connection is define for this entry.");
- }
+ } else {
+ logger.warn(LOG_INVALID_NETWORK_CONNECTION, translateTo.getResourceId(),
+ translateTo.getResource().getType(), virtualNetworkValue.toString());
+ }
}
- }
-
- private NodeTemplate createPortNodeTemplate(Integer index, boolean orderedInterfaces,
- String computeNodeTemplateId) {
- NodeTemplate portNodeTemplate = new NodeTemplate();
- portNodeTemplate.setType(ToscaNodeType.CONTRAIL_PORT);
- Map<String, Object> portProperties = new HashMap<>();
- portProperties.put("static_routes", DataModelUtil
- .createGetInputPropertyValueFromListParameter("interface_list", index, "static_routes"));
- portProperties.put("virtual_network", DataModelUtil
- .createGetInputPropertyValueFromListParameter("interface_list", index, "virtual_network"));
- portProperties.put("allowed_address_pairs", DataModelUtil
- .createGetInputPropertyValueFromListParameter("interface_list", index,
- "allowed_address_pairs"));
- portProperties.put("ip_address", DataModelUtil
- .createGetInputPropertyValueFromListParameter("interface_list", index, "ip_address"));
- portProperties.put("static_route",
- DataModelUtil.createGetInputPropertyValueFromListParameter("static_routes_list", index));
- portProperties.put("shared_ip",
- DataModelUtil.createGetInputPropertyValueFromListParameter("shared_ip_list", index));
- portProperties.put("interface_type", DataModelUtil
- .createGetInputPropertyValueFromListParameter("service_interface_type_list", index));
- if (orderedInterfaces) {
- portProperties.put("order", index);
+
+ private NodeTemplate createPortNodeTemplate(Integer index, boolean orderedInterfaces,
+ String computeNodeTemplateId) {
+ NodeTemplate portNodeTemplate = new NodeTemplate();
+ portNodeTemplate.setType(ToscaNodeType.CONTRAIL_PORT);
+ Map<String, Object> portProperties = new HashMap<>();
+ portProperties.put("static_routes", DataModelUtil
+ .createGetInputPropertyValueFromListParameter(INTERFACE_LIST, index, "static_routes"));
+ portProperties.put("virtual_network", DataModelUtil
+ .createGetInputPropertyValueFromListParameter(INTERFACE_LIST, index, "virtual_network"));
+ portProperties.put("allowed_address_pairs", DataModelUtil
+ .createGetInputPropertyValueFromListParameter(INTERFACE_LIST, index,
+ "allowed_address_pairs"));
+ portProperties.put("ip_address", DataModelUtil
+ .createGetInputPropertyValueFromListParameter(INTERFACE_LIST, index, "ip_address"));
+ portProperties.put("static_route",
+ DataModelUtil.createGetInputPropertyValueFromListParameter("static_routes_list", index));
+ portProperties.put("shared_ip",
+ DataModelUtil.createGetInputPropertyValueFromListParameter("shared_ip_list", index));
+ portProperties.put("interface_type", DataModelUtil
+ .createGetInputPropertyValueFromListParameter("service_interface_type_list", index));
+ if (orderedInterfaces) {
+ portProperties.put("order", index);
+ }
+ portNodeTemplate.setProperties(portProperties);
+ DataModelUtil.addBindingReqFromPortToCompute(computeNodeTemplateId, portNodeTemplate);
+ return portNodeTemplate;
}
- portNodeTemplate.setProperties(portProperties);
- DataModelUtil.addBindingReqFromPortToCompute(computeNodeTemplateId, portNodeTemplate);
- return portNodeTemplate;
- }
- private void addLinkToNetworkRequirementAssignment(NodeTemplate nodeTemplate,
- String connectedNodeTranslatedId,
- String requirementId) {
- if (nodeTemplate == null || connectedNodeTranslatedId == null) {
- return;
+ private void addLinkToNetworkRequirementAssignment(NodeTemplate nodeTemplate,
+ String connectedNodeTranslatedId,
+ String requirementId) {
+ if (nodeTemplate == null || connectedNodeTranslatedId == null) {
+ return;
+ }
+ RequirementAssignment requirement = new RequirementAssignment();
+ requirement.setCapability(ToscaCapabilityType.NATIVE_NETWORK_LINKABLE);
+ requirement.setRelationship(ToscaRelationshipType.NATIVE_NETWORK_LINK_TO);
+ requirement.setNode(connectedNodeTranslatedId);
+ DataModelUtil.addRequirementAssignment(nodeTemplate, requirementId, requirement);
}
- RequirementAssignment requirement = new RequirementAssignment();
- requirement.setCapability(ToscaCapabilityType.NATIVE_NETWORK_LINKABLE);
- requirement.setRelationship(ToscaRelationshipType.NATIVE_NETWORK_LINK_TO);
- requirement.setNode(connectedNodeTranslatedId);
- DataModelUtil.addRequirementAssignment(nodeTemplate, requirementId, requirement);
- }
-
- private void updateHeatStackGroup(ServiceTemplate serviceTemplate, String heatStackGroupKey,
- String memberId) {
- serviceTemplate.getTopology_template().getGroups().get(heatStackGroupKey).getMembers()
- .add(memberId);
- }
-
- private void updateSubstitutionMappingRequirement(ServiceTemplate serviceTemplate,
- String portReqMappingKey,
- String portNodeTemplateId) {
- List<String> portReqMappingValue = new ArrayList<>();
- portReqMappingValue.add(portNodeTemplateId);
- portReqMappingValue.add(ToscaConstants.LINK_REQUIREMENT_ID);
- DataModelUtil
- .addSubstitutionMappingReq(serviceTemplate, portReqMappingKey, portReqMappingValue);
- }
-
- private void addSubstitutionMappingEntry(ServiceTemplate nestedSubstitutionServiceTemplate,
- String substitutedNodeTypeId) {
- SubstitutionMapping substitutionMappings = new SubstitutionMapping();
- substitutionMappings.setNode_type(substitutedNodeTypeId);
- DataModelUtil.addSubstitutionMapping(nestedSubstitutionServiceTemplate, substitutionMappings);
- }
-
- private void handleInputParameters(ServiceTemplate nestedSubstitutionServiceTemplate,
- TranslateTo translateTo) {
- ToscaAnalyzerService toscaAnalyzerService = new ToscaAnalyzerServiceImpl();
-
- Optional<NodeType> contrailAbstractNodeType =
- toscaAnalyzerService.fetchNodeType(ToscaNodeType.CONTRAIL_ABSTRACT_SUBSTITUTE, translateTo
- .getContext().getGlobalServiceTemplates().values());
- Map<String, ParameterDefinition> nestedSubstitutionServiceTemplateInputs = new HashMap<>();
- if (contrailAbstractNodeType.isPresent()) {
- Map<String, PropertyDefinition> contrailAbstractProperties =
- contrailAbstractNodeType.get().getProperties();
-
- for (String propertyKey : contrailAbstractProperties.keySet()) {
- PropertyDefinition abstractPropertyDef = contrailAbstractProperties.get(propertyKey);
- if (abstractPropertyDef != null) {
- nestedSubstitutionServiceTemplateInputs
- .put(propertyKey,
- DataModelUtil.convertPropertyDefToParameterDef(abstractPropertyDef));
-
- }
- }
+ private void updateHeatStackGroup(ServiceTemplate serviceTemplate, String heatStackGroupKey,
+ String memberId) {
+ serviceTemplate.getTopology_template().getGroups().get(heatStackGroupKey).getMembers().add(memberId);
}
- if (!nestedSubstitutionServiceTemplateInputs.isEmpty()) {
- nestedSubstitutionServiceTemplate.getTopology_template()
- .setInputs(nestedSubstitutionServiceTemplateInputs);
+
+ private void updateSubstitutionMappingRequirement(ServiceTemplate serviceTemplate,
+ String portReqMappingKey,
+ String portNodeTemplateId) {
+ List<String> portReqMappingValue = new ArrayList<>();
+ portReqMappingValue.add(portNodeTemplateId);
+ portReqMappingValue.add(ToscaConstants.LINK_REQUIREMENT_ID);
+ DataModelUtil.addSubstitutionMappingReq(serviceTemplate, portReqMappingKey, portReqMappingValue);
}
- }
-
- private String handleComputeNodeTemplate(TranslateTo translateTo, String computeNodeTypeId,
- ServiceTemplate nestedSubstitutionServiceTemplate,
- String heatStackGroupKey) {
- ToscaAnalyzerService toscaAnalyzerService = new ToscaAnalyzerServiceImpl();
- Optional<NodeType> contrailComputeNodeType = toscaAnalyzerService
- .fetchNodeType(ToscaNodeType.CONTRAIL_COMPUTE,
- translateTo.getContext().getGlobalServiceTemplates().values());
-
- Map<String, Object> computeNodeTemplateProperties = null;
- if (contrailComputeNodeType.isPresent()) {
- Map<String, PropertyDefinition> contrailComputeProperties =
- contrailComputeNodeType.get().getProperties();
- computeNodeTemplateProperties = new HashMap<>();
-
- if (contrailComputeProperties != null) {
- for (String computePropertyKey : contrailComputeProperties.keySet()) {
- Map getInputProperty = new HashMap<>();
- getInputProperty.put(ToscaFunctions.GET_INPUT.getDisplayName(), computePropertyKey);
- computeNodeTemplateProperties.put(computePropertyKey, getInputProperty);
- }
- }
+
+ private void addSubstitutionMappingEntry(ServiceTemplate nestedSubstitutionServiceTemplate,
+ String substitutedNodeTypeId) {
+ SubstitutionMapping substitutionMappings = new SubstitutionMapping();
+ substitutionMappings.setNode_type(substitutedNodeTypeId);
+ DataModelUtil.addSubstitutionMapping(nestedSubstitutionServiceTemplate, substitutionMappings);
+ }
+
+ private void handleInputParameters(ServiceTemplate nestedSubstitutionServiceTemplate,
+ TranslateTo translateTo) {
+ ToscaAnalyzerService toscaAnalyzerService = new ToscaAnalyzerServiceImpl();
+ Optional<NodeType> contrailAbstractNodeType = toscaAnalyzerService.fetchNodeType(ToscaNodeType
+ .CONTRAIL_ABSTRACT_SUBSTITUTE, translateTo.getContext().getGlobalServiceTemplates().values());
+ Map<String, ParameterDefinition> nestedSubstitutionServiceTemplateInputs = new HashMap<>();
+ if (contrailAbstractNodeType.isPresent()) {
+ Map<String, PropertyDefinition> contrailAbstractProperties = contrailAbstractNodeType.get().getProperties();
+ for (Map.Entry<String, PropertyDefinition> propertyEntry : contrailAbstractProperties.entrySet()) {
+ PropertyDefinition abstractPropertyDef = contrailAbstractProperties.get(propertyEntry.getKey());
+ if (abstractPropertyDef != null) {
+ nestedSubstitutionServiceTemplateInputs.put(propertyEntry.getKey(),
+ DataModelUtil.convertPropertyDefToParameterDef(abstractPropertyDef));
+ }
+ }
+ }
+ if (!nestedSubstitutionServiceTemplateInputs.isEmpty()) {
+ nestedSubstitutionServiceTemplate.getTopology_template().setInputs(nestedSubstitutionServiceTemplateInputs);
+ }
}
- NodeTemplate computeNodeTemplate = new NodeTemplate();
- computeNodeTemplate.setType(computeNodeTypeId);
- if (computeNodeTemplateProperties != null && !computeNodeTemplateProperties.isEmpty()) {
- computeNodeTemplate.setProperties(computeNodeTemplateProperties);
+ private String handleComputeNodeTemplate(TranslateTo translateTo, String computeNodeTypeId,
+ ServiceTemplate nestedSubstitutionServiceTemplate,
+ String heatStackGroupKey) {
+ ToscaAnalyzerService toscaAnalyzerService = new ToscaAnalyzerServiceImpl();
+ Optional<NodeType> contrailComputeNodeType = toscaAnalyzerService.fetchNodeType(ToscaNodeType.CONTRAIL_COMPUTE,
+ translateTo.getContext().getGlobalServiceTemplates().values());
+ Map<String, Object> computeNodeTemplateProperties = null;
+ if (contrailComputeNodeType.isPresent()) {
+ Map<String, PropertyDefinition> contrailComputeProperties = contrailComputeNodeType.get().getProperties();
+ computeNodeTemplateProperties = new HashMap<>();
+ if (contrailComputeProperties != null) {
+ for (String computePropertyKey : contrailComputeProperties.keySet()) {
+ Map<String, Object> getInputProperty = new HashMap<>();
+ getInputProperty.put(ToscaFunctions.GET_INPUT.getDisplayName(), computePropertyKey);
+ computeNodeTemplateProperties.put(computePropertyKey, getInputProperty);
+ }
+ }
+ }
+
+ NodeTemplate computeNodeTemplate = new NodeTemplate();
+ computeNodeTemplate.setType(computeNodeTypeId);
+ if (computeNodeTemplateProperties != null && !computeNodeTemplateProperties.isEmpty()) {
+ computeNodeTemplate.setProperties(computeNodeTemplateProperties);
+ }
+ String computeNodeTemplateId = translateTo.getTranslatedId();
+ DataModelUtil.addNodeTemplate(nestedSubstitutionServiceTemplate, computeNodeTemplateId, computeNodeTemplate);
+ nestedSubstitutionServiceTemplate.getTopology_template().getGroups().get(heatStackGroupKey)
+ .getMembers().add(computeNodeTemplateId);
+ return computeNodeTemplateId;
}
- String computeNodeTemplateId = translateTo.getTranslatedId();
- DataModelUtil.addNodeTemplate(nestedSubstitutionServiceTemplate, computeNodeTemplateId,
- computeNodeTemplate);
- nestedSubstitutionServiceTemplate.getTopology_template().getGroups().get(heatStackGroupKey)
- .getMembers().add(computeNodeTemplateId);
- return computeNodeTemplateId;
- }
-
- private String addHeatStackGroup(TranslateTo translateTo, ServiceTemplate serviceTemplate) {
- GroupDefinition serviceInstanceGroupDefinition = new GroupDefinition();
- serviceInstanceGroupDefinition.setType(ToscaGroupType.HEAT_STACK);
- Map<String, Object> groupProperties = new HashMap<>();
- groupProperties.put("heat_file",
- "../" + (new ToscaFileOutputServiceCsarImpl()).getArtifactsFolderName() + "/"
- + translateTo.getHeatFileName());
- serviceInstanceGroupDefinition.setProperties(groupProperties);
- serviceInstanceGroupDefinition.setMembers(new ArrayList<>());
- String heatStackGroupKey = translateTo.getTranslatedId() + "_group";
- DataModelUtil.addGroupDefinitionToTopologyTemplate(serviceTemplate, heatStackGroupKey,
- serviceInstanceGroupDefinition);
- return heatStackGroupKey;
- }
-
-
- private void setNestedServiceTemplateGeneralDetails(TranslateTo translateTo,
- ServiceTemplate
- nestedSubstitutionServiceTemplate) {
- Map<String, String> nestedTemplateMetadata = new HashMap<>();
- String nestedTemplateName = new ContrailTranslationHelper()
- .getSubstitutionContrailServiceTemplateMetadata(translateTo.getHeatFileName(),
- translateTo.getResourceId());
- nestedTemplateMetadata.put(ToscaConstants.ST_METADATA_TEMPLATE_NAME, nestedTemplateName);
- nestedSubstitutionServiceTemplate.setMetadata(nestedTemplateMetadata);
- nestedSubstitutionServiceTemplate
- .setTosca_definitions_version(ToscaConstants.TOSCA_DEFINITIONS_VERSION);
- nestedSubstitutionServiceTemplate.setTopology_template(new TopologyTemplate());
- List<Map<String, Import>> globalTypesImportList =
- GlobalTypesGenerator.getGlobalTypesImportList();
- globalTypesImportList.addAll(
- HeatToToscaUtil.createImportList(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME));
- nestedSubstitutionServiceTemplate.setImports(globalTypesImportList);
- }
-
- private NodeTemplate createSubstitutedNodeTemplate(TranslateTo translateTo,
- Resource contrailServiceTemplateResource,
- String contrailServiceTemplateTranslatedId,
- int numberOfPorts) {
- boolean isImportAddedToServiceTemplate =
- DataModelUtil
- .isImportAddedToServiceTemplate(translateTo.getServiceTemplate().getImports(), Constants
- .GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME);
- if (!isImportAddedToServiceTemplate) {
- translateTo.getServiceTemplate().getImports()
- .addAll(HeatToToscaUtil
- .createImportList(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME));
+
+ private String addHeatStackGroup(TranslateTo translateTo, ServiceTemplate serviceTemplate) {
+ GroupDefinition serviceInstanceGroupDefinition = new GroupDefinition();
+ serviceInstanceGroupDefinition.setType(ToscaGroupType.HEAT_STACK);
+ Map<String, Object> groupProperties = new HashMap<>();
+ groupProperties.put("heat_file",
+ "../" + (new ToscaFileOutputServiceCsarImpl()).getArtifactsFolderName() + "/"
+ + translateTo.getHeatFileName());
+ serviceInstanceGroupDefinition.setProperties(groupProperties);
+ serviceInstanceGroupDefinition.setMembers(new ArrayList<>());
+ String heatStackGroupKey = translateTo.getTranslatedId() + "_group";
+ DataModelUtil.addGroupDefinitionToTopologyTemplate(serviceTemplate, heatStackGroupKey,
+ serviceInstanceGroupDefinition);
+ return heatStackGroupKey;
}
- NodeTemplate substitutesNodeTemplate = new NodeTemplate();
- substitutesNodeTemplate.setType(contrailServiceTemplateTranslatedId);
- List<String> directiveList = new ArrayList<>();
- directiveList.add(ToscaConstants.NODE_TEMPLATE_DIRECTIVE_SUBSTITUTABLE);
- substitutesNodeTemplate.setDirectives(directiveList);
- substitutesNodeTemplate.setProperties(TranslatorHeatToToscaPropertyConverter
- .getToscaPropertiesSimpleConversion(translateTo.getServiceTemplate(), translateTo.
- getResourceId(), translateTo.getResource().getProperties(),
- substitutesNodeTemplate.getProperties(), translateTo.getHeatFileName(),
- translateTo.getHeatOrchestrationTemplate(),
- HeatResourcesTypes.CONTRAIL_SERVICE_INSTANCE.getHeatResource(), substitutesNodeTemplate,
- translateTo.getContext()));
- substitutesNodeTemplate.setProperties(TranslatorHeatToToscaPropertyConverter
- .getToscaPropertiesSimpleConversion(translateTo.getServiceTemplate(), translateTo.
- getResourceId(), contrailServiceTemplateResource.getProperties(),
- substitutesNodeTemplate.getProperties(), translateTo.getHeatFileName(),
- translateTo.getHeatOrchestrationTemplate(),
- HeatResourcesTypes.CONTRAIL_SERVICE_TEMPLATE.getHeatResource(), substitutesNodeTemplate,
- translateTo.getContext()));
- HeatToToscaUtil.mapBoolean(substitutesNodeTemplate, HeatToToscaUtil
- .getToscaPropertyName(translateTo.getContext(), contrailServiceTemplateResource.getType(),
- HeatConstants.AVAILABILITY_ZONE_ENABLE_PROPERTY_NAME));
- HeatToToscaUtil.mapBoolean(substitutesNodeTemplate, HeatToToscaUtil
- .getToscaPropertyName(translateTo.getContext(), contrailServiceTemplateResource.getType(),
- HeatConstants.ORDERED_INTERFACES_PROPERTY_NAME));
-
- Object sharedIpListPropertyValue =
- contrailServiceTemplateResource.getProperties()
- .get(HeatConstants.SHARED_IP_LIST_PROPERTY_NAME);
- String toscaSharedIpListPropertyName = HeatToToscaUtil
- .getToscaPropertyName(translateTo.getContext(), contrailServiceTemplateResource.getType(),
- HeatConstants.SHARED_IP_LIST_PROPERTY_NAME);
- Optional<List<Map<String, List>>> sharedIpTranslatedSplitFun =
- new ContrailTranslationHelper()
- .translateFnSplitFunction(sharedIpListPropertyValue, numberOfPorts, true);
- if (sharedIpTranslatedSplitFun.isPresent()) {
- substitutesNodeTemplate.getProperties()
- .put(toscaSharedIpListPropertyName, sharedIpTranslatedSplitFun.get());
- } else {
- HeatToToscaUtil.mapBooleanList(substitutesNodeTemplate, toscaSharedIpListPropertyName);
+
+
+ private void setNestedServiceTemplateGeneralDetails(TranslateTo translateTo,
+ ServiceTemplate
+ nestedSubstitutionServiceTemplate) {
+ Map<String, String> nestedTemplateMetadata = new HashMap<>();
+ String nestedTemplateName = new ContrailTranslationHelper()
+ .getSubstitutionContrailServiceTemplateMetadata(translateTo.getHeatFileName(),
+ translateTo.getResourceId());
+ nestedTemplateMetadata.put(ToscaConstants.ST_METADATA_TEMPLATE_NAME, nestedTemplateName);
+ nestedSubstitutionServiceTemplate.setMetadata(nestedTemplateMetadata);
+ nestedSubstitutionServiceTemplate.setTosca_definitions_version(ToscaConstants.TOSCA_DEFINITIONS_VERSION);
+ nestedSubstitutionServiceTemplate.setTopology_template(new TopologyTemplate());
+ List<Map<String, Import>> globalTypesImportList = GlobalTypesGenerator.getGlobalTypesImportList();
+ globalTypesImportList.addAll(
+ HeatToToscaUtil.createImportList(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME));
+ nestedSubstitutionServiceTemplate.setImports(globalTypesImportList);
}
- Object staticRouteListPropertyValue =
- contrailServiceTemplateResource.getProperties()
- .get(HeatConstants.STATIC_ROUTES_LIST_PROPERTY_NAME);
- String toscaStaticRoutesListPropertyName = HeatToToscaUtil
- .getToscaPropertyName(translateTo.getContext(), contrailServiceTemplateResource.getType(),
- HeatConstants.STATIC_ROUTES_LIST_PROPERTY_NAME);
- Optional<List<Map<String, List>>> staticRouteTranslatedSplitFun =
- new ContrailTranslationHelper()
- .translateFnSplitFunction(staticRouteListPropertyValue, numberOfPorts, true);
- if (staticRouteTranslatedSplitFun.isPresent()) {
- substitutesNodeTemplate.getProperties()
- .put(toscaStaticRoutesListPropertyName, staticRouteTranslatedSplitFun.get());
- } else {
- HeatToToscaUtil.mapBooleanList(substitutesNodeTemplate, toscaStaticRoutesListPropertyName);
+ private NodeTemplate createSubstitutedNodeTemplate(TranslateTo translateTo,
+ Resource contrailServiceTemplateResource,
+ String contrailServiceTemplateTranslatedId,
+ int numberOfPorts) {
+ boolean isImportAddedToServiceTemplate =
+ DataModelUtil
+ .isImportAddedToServiceTemplate(translateTo.getServiceTemplate().getImports(), Constants
+ .GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME);
+ if (!isImportAddedToServiceTemplate) {
+ translateTo.getServiceTemplate().getImports()
+ .addAll(HeatToToscaUtil
+ .createImportList(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME));
+ }
+ NodeTemplate substitutesNodeTemplate = new NodeTemplate();
+ substitutesNodeTemplate.setType(contrailServiceTemplateTranslatedId);
+ List<String> directiveList = new ArrayList<>();
+ directiveList.add(ToscaConstants.NODE_TEMPLATE_DIRECTIVE_SUBSTITUTABLE);
+ substitutesNodeTemplate.setDirectives(directiveList);
+ substitutesNodeTemplate.setProperties(TranslatorHeatToToscaPropertyConverter
+ .getToscaPropertiesSimpleConversion(translateTo.getServiceTemplate(),
+ translateTo.getResourceId(), translateTo.getResource().getProperties(),
+ substitutesNodeTemplate.getProperties(), translateTo.getHeatFileName(),
+ translateTo.getHeatOrchestrationTemplate(),
+ HeatResourcesTypes.CONTRAIL_SERVICE_INSTANCE.getHeatResource(), substitutesNodeTemplate,
+ translateTo.getContext()));
+ substitutesNodeTemplate.setProperties(TranslatorHeatToToscaPropertyConverter
+ .getToscaPropertiesSimpleConversion(translateTo.getServiceTemplate(),
+ translateTo.getResourceId(), contrailServiceTemplateResource.getProperties(),
+ substitutesNodeTemplate.getProperties(), translateTo.getHeatFileName(),
+ translateTo.getHeatOrchestrationTemplate(),
+ HeatResourcesTypes.CONTRAIL_SERVICE_TEMPLATE.getHeatResource(), substitutesNodeTemplate,
+ translateTo.getContext()));
+ HeatToToscaUtil.mapBoolean(substitutesNodeTemplate, HeatToToscaUtil
+ .getToscaPropertyName(translateTo.getContext(), contrailServiceTemplateResource.getType(),
+ HeatConstants.AVAILABILITY_ZONE_ENABLE_PROPERTY_NAME));
+ HeatToToscaUtil.mapBoolean(substitutesNodeTemplate, HeatToToscaUtil
+ .getToscaPropertyName(translateTo.getContext(), contrailServiceTemplateResource.getType(),
+ HeatConstants.ORDERED_INTERFACES_PROPERTY_NAME));
+
+ Object sharedIpListPropertyValue =
+ contrailServiceTemplateResource.getProperties()
+ .get(HeatConstants.SHARED_IP_LIST_PROPERTY_NAME);
+ String toscaSharedIpListPropertyName = HeatToToscaUtil
+ .getToscaPropertyName(translateTo.getContext(), contrailServiceTemplateResource.getType(),
+ HeatConstants.SHARED_IP_LIST_PROPERTY_NAME);
+ Optional<List<Map<String, List>>> sharedIpTranslatedSplitFun =
+ new ContrailTranslationHelper()
+ .translateFnSplitFunction(sharedIpListPropertyValue, numberOfPorts, true);
+ if (sharedIpTranslatedSplitFun.isPresent()) {
+ substitutesNodeTemplate.getProperties()
+ .put(toscaSharedIpListPropertyName, sharedIpTranslatedSplitFun.get());
+ } else {
+ HeatToToscaUtil.mapBooleanList(substitutesNodeTemplate, toscaSharedIpListPropertyName);
+ }
+
+ Object staticRouteListPropertyValue =
+ contrailServiceTemplateResource.getProperties()
+ .get(HeatConstants.STATIC_ROUTES_LIST_PROPERTY_NAME);
+ String toscaStaticRoutesListPropertyName = HeatToToscaUtil
+ .getToscaPropertyName(translateTo.getContext(), contrailServiceTemplateResource.getType(),
+ HeatConstants.STATIC_ROUTES_LIST_PROPERTY_NAME);
+ Optional<List<Map<String, List>>> staticRouteTranslatedSplitFun =
+ new ContrailTranslationHelper()
+ .translateFnSplitFunction(staticRouteListPropertyValue, numberOfPorts, true);
+ if (staticRouteTranslatedSplitFun.isPresent()) {
+ substitutesNodeTemplate.getProperties()
+ .put(toscaStaticRoutesListPropertyName, staticRouteTranslatedSplitFun.get());
+ } else {
+ HeatToToscaUtil.mapBooleanList(substitutesNodeTemplate, toscaStaticRoutesListPropertyName);
+ }
+
+ Object serviceInterfaceTypeListPropertyValue =
+ contrailServiceTemplateResource.getProperties()
+ .get(HeatConstants.SERVICE_INTERFCAE_TYPE_LIST_PROPERTY_NAME);
+ String toscaServiceInterfaceTypeListPropertyName = HeatToToscaUtil
+ .getToscaPropertyName(translateTo.getContext(), contrailServiceTemplateResource.getType(),
+ HeatConstants.SERVICE_INTERFCAE_TYPE_LIST_PROPERTY_NAME);
+ Optional<List<Map<String, List>>> serviceInterfaceTypeTranslatedSplitFun =
+ new ContrailTranslationHelper()
+ .translateFnSplitFunction(serviceInterfaceTypeListPropertyValue, numberOfPorts, false);
+ serviceInterfaceTypeTranslatedSplitFun
+ .ifPresent(translatedSplitFun -> substitutesNodeTemplate.getProperties()
+ .put(toscaServiceInterfaceTypeListPropertyName, translatedSplitFun));
+
+ String substitutedNodeTemplateId = translateTo.getTranslatedId();
+ DataModelUtil.addNodeTemplate(translateTo.getServiceTemplate(), substitutedNodeTemplateId,
+ substitutesNodeTemplate);
+ return substitutesNodeTemplate;
}
- Object serviceInterfaceTypeListPropertyValue =
- contrailServiceTemplateResource.getProperties()
- .get(HeatConstants.SERVICE_INTERFCAE_TYPE_LIST_PROPERTY_NAME);
- String toscaServiceInterfaceTypeListPropertyName = HeatToToscaUtil
- .getToscaPropertyName(translateTo.getContext(), contrailServiceTemplateResource.getType(),
- HeatConstants.SERVICE_INTERFCAE_TYPE_LIST_PROPERTY_NAME);
- Optional<List<Map<String, List>>> serviceInterfaceTypeTranslatedSplitFun =
- new ContrailTranslationHelper()
- .translateFnSplitFunction(serviceInterfaceTypeListPropertyValue, numberOfPorts, false);
- serviceInterfaceTypeTranslatedSplitFun
- .ifPresent(translatedSplitFun -> substitutesNodeTemplate.getProperties()
- .put(toscaServiceInterfaceTypeListPropertyName, translatedSplitFun));
-
- String substitutedNodeTemplateId = translateTo.getTranslatedId();
- DataModelUtil.addNodeTemplate(translateTo.getServiceTemplate(), substitutedNodeTemplateId,
- substitutesNodeTemplate);
- return substitutesNodeTemplate;
- }
-
- private void addNetworkLinkRequirements(NodeType nodeType, int numberOfPorts) {
- if (nodeType.getRequirements() == null) {
- List<Map<String, RequirementDefinition>> requirementList = new ArrayList<>();
- for (int i = 0; i < numberOfPorts; i++) {
- Map<String, RequirementDefinition> requirementDefinitionMap = new HashMap<>();
- requirementDefinitionMap.put(ToscaConstants.LINK_REQUIREMENT_ID + "_port_" + i,
- DataModelUtil.createRequirement(ToscaCapabilityType.NATIVE_NETWORK_LINKABLE,
- ToscaNodeType.NATIVE_ROOT,
- ToscaRelationshipType.NATIVE_NETWORK_LINK_TO, null));
- requirementList.add(requirementDefinitionMap);
- }
- if (numberOfPorts > 0) {
- nodeType.setRequirements(requirementList);
- }
+ private void addNetworkLinkRequirements(NodeType nodeType, int numberOfPorts) {
+ if (nodeType.getRequirements() == null) {
+ List<Map<String, RequirementDefinition>> requirementList = new ArrayList<>();
+ for (int i = 0; i < numberOfPorts; i++) {
+ Map<String, RequirementDefinition> requirementDefinitionMap = new HashMap<>();
+ requirementDefinitionMap.put(ToscaConstants.LINK_REQUIREMENT_ID + "_port_" + i,
+ DataModelUtil.createRequirement(ToscaCapabilityType.NATIVE_NETWORK_LINKABLE,
+ ToscaNodeType.NATIVE_ROOT,
+ ToscaRelationshipType.NATIVE_NETWORK_LINK_TO, null));
+ requirementList.add(requirementDefinitionMap);
+ }
+ if (numberOfPorts > 0) {
+ nodeType.setRequirements(requirementList);
+ }
+ }
}
- }
-
- private int getServiceInstanceNumberOfPorts(Resource serviceInstanceResource) {
- int numberOfPorts;
- Object interfaceTypeProperty =
- serviceInstanceResource.getProperties().get(HeatConstants.INTERFACE_LIST_PROPERTY_NAME);
- if (interfaceTypeProperty == null) {
- numberOfPorts = 0;
- } else if (interfaceTypeProperty instanceof List) {
- numberOfPorts = ((List) interfaceTypeProperty).size();
- } else if (interfaceTypeProperty instanceof Map) {
- numberOfPorts = 1;
- } else {
- numberOfPorts = 0;
+
+ private int getServiceInstanceNumberOfPorts(Resource serviceInstanceResource) {
+ int numberOfPorts;
+ Object interfaceTypeProperty =
+ serviceInstanceResource.getProperties().get(HeatConstants.INTERFACE_LIST_PROPERTY_NAME);
+ if (interfaceTypeProperty == null) {
+ numberOfPorts = 0;
+ } else if (interfaceTypeProperty instanceof List) {
+ numberOfPorts = ((List) interfaceTypeProperty).size();
+ } else if (interfaceTypeProperty instanceof Map) {
+ numberOfPorts = 1;
+ } else {
+ numberOfPorts = 0;
+ }
+ return numberOfPorts;
}
- return numberOfPorts;
- }
-
- private AttachedResourceId getServiceTemplateAttachedId(TranslateTo translateTo,
- Resource serviceInstanceResource) {
- Object serviceTemplateProperty =
- serviceInstanceResource.getProperties().get("service_template");
- Optional<AttachedResourceId> serviceTemplateId = HeatToToscaUtil
- .extractAttachedResourceId(translateTo.getHeatFileName(),
- translateTo.getHeatOrchestrationTemplate(), translateTo.getContext(),
- serviceTemplateProperty);
- if (serviceTemplateId.isPresent()) {
- return serviceTemplateId.get();
- } else {
- throw new CoreException(new MissingMandatoryPropertyErrorBuilder("service_template").build());
+
+ private AttachedResourceId getServiceTemplateAttachedId(TranslateTo translateTo,
+ Resource serviceInstanceResource) {
+ Object serviceTemplateProperty =
+ serviceInstanceResource.getProperties().get("service_template");
+ Optional<AttachedResourceId> serviceTemplateId = HeatToToscaUtil
+ .extractAttachedResourceId(translateTo.getHeatFileName(),
+ translateTo.getHeatOrchestrationTemplate(), translateTo.getContext(),
+ serviceTemplateProperty);
+ if (serviceTemplateId.isPresent()) {
+ return serviceTemplateId.get();
+ } else {
+ throw new CoreException(new MissingMandatoryPropertyErrorBuilder("service_template").build());
+ }
}
- }
}