diff options
Diffstat (limited to 'openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl')
46 files changed, 5984 insertions, 0 deletions
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/pom.xml b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/pom.xml new file mode 100644 index 0000000000..54cf8e21f1 --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/pom.xml @@ -0,0 +1,65 @@ +<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns="http://maven.apache.org/POM/4.0.0" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + + <name>att-sdc-translator-impl</name> + <artifactId>att-sdc-translator-impl</artifactId> + + + <parent> + <groupId>org.openecomp.sdc</groupId> + <artifactId>openecomp-sdc-lib</artifactId> + <version>1.1.0-SNAPSHOT</version> + <relativePath>../..</relativePath> + </parent> + + <dependencies> + <dependency> + <groupId>ch.qos.logback</groupId> + <artifactId>logback-classic</artifactId> + <version>${logback.version}</version> + </dependency> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>${junit.version}</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.openecomp.sdc</groupId> + <artifactId>openecomp-sdc-translator-api</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.openecomp.core</groupId> + <artifactId>openecomp-heat-lib</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.openecomp.core</groupId> + <artifactId>openecomp-tosca-lib</artifactId> + <version>${project.version}</version> + </dependency> + + + <!-- need to be changed to sdk --> + <dependency> + <groupId>org.openecomp.sdc</groupId> + <artifactId>openecomp-sdc-translator-core</artifactId> + <version>${project.version}</version> + </dependency> + </dependencies> + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <version>${mvn.surefire.version}</version> + <configuration> + <useSystemClassLoader>false</useSystemClassLoader> + </configuration> + </plugin> + </plugins> + </build> +</project> diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/pom.xml.versionsBackup new file mode 100644 index 0000000000..e44d37ff8f --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/pom.xml.versionsBackup @@ -0,0 +1,70 @@ +<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns="http://maven.apache.org/POM/4.0.0" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + + <name>att-sdc-translator-impl</name> + <artifactId>att-sdc-translator-impl</artifactId> + + + <parent> + <groupId>org.openecomp.sdc</groupId> + <artifactId>openecomp-sdc-lib</artifactId> + <version>1.0-SNAPSHOT</version> + <relativePath>../..</relativePath> + </parent> + + <dependencies> + <dependency> + <groupId>ch.qos.logback</groupId> + <artifactId>logback-classic</artifactId> + <version>1.1.2</version> + </dependency> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>RELEASE</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.openecomp.sdc</groupId> + <artifactId>openecomp-sdc-translator-api</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.openecomp.core</groupId> + <artifactId>openecomp-heat-lib</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.openecomp.core</groupId> + <artifactId>openecomp-tosca-lib</artifactId> + <version>${project.version}</version> + </dependency> + + + <!-- need to be changed to sdk --> + <dependency> + <groupId>org.openecomp.sdc</groupId> + <artifactId>openecomp-sdc-translator-core</artifactId> + <version>${project.version}</version> + </dependency> + <!--dependency> + <groupId>org.openecomp.sdc</groupId> + <artifactId>openecomp-sdc-translator-core</artifactId> + <version>1.0-SNAPSHOT</version> + </dependency--> + </dependencies> + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <version>2.19.1</version> + <configuration> + <useSystemClassLoader>false</useSystemClassLoader> + </configuration> + </plugin> + </plugins> + </build> +</project>
\ No newline at end of file diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/main/java/com/att/sdc/tosca/datatypes/AttToscaPolicyType.java b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/main/java/com/att/sdc/tosca/datatypes/AttToscaPolicyType.java new file mode 100644 index 0000000000..8881ec5e40 --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/main/java/com/att/sdc/tosca/datatypes/AttToscaPolicyType.java @@ -0,0 +1,21 @@ +package com.att.sdc.tosca.datatypes; + +import org.openecomp.config.api.Configuration; +import org.openecomp.config.api.ConfigurationManager; +import org.openecomp.sdc.tosca.services.ConfigConstants; + +/** + * Created by TALIO on 5/17/2017. + */ +public class AttToscaPolicyType { + private static Configuration config = ConfigurationManager.lookup(); + + public static String POLICY_TYPE_PREFIX = + config.getAsString(ConfigConstants.NAMESPACE, ConfigConstants.PREFIX_POLICY_TYPE); + + + public static String PLACEMENT_VALET_AFFINITY = POLICY_TYPE_PREFIX + "placement.valet.Affinity"; + public static String PLACEMENT_VALET_EXCLUSIVITY = + POLICY_TYPE_PREFIX + "placement.valet.Exclusivity"; + public static String PLACEMENT_VALET_DIVERSITY = POLICY_TYPE_PREFIX + "placement.valet.Diversity"; +} diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/main/java/com/att/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationValetGroupAssignmentImpl.java b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/main/java/com/att/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationValetGroupAssignmentImpl.java new file mode 100644 index 0000000000..e303276538 --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/main/java/com/att/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationValetGroupAssignmentImpl.java @@ -0,0 +1,301 @@ +/*- + * ============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 com.att.sdc.translator.services.heattotosca.impl.resourcetranslation; + +import com.att.sdc.tosca.datatypes.AttToscaPolicyType; +import com.google.common.base.Strings; +import org.apache.commons.collections4.MapUtils; +import org.openecomp.sdc.heat.datatypes.model.HeatOrchestrationTemplate; +import org.openecomp.sdc.heat.datatypes.model.HeatResourcesTypes; +import org.openecomp.sdc.heat.datatypes.model.Resource; +import org.openecomp.sdc.tosca.datatypes.ToscaGroupType; +import org.openecomp.sdc.tosca.datatypes.ToscaTopologyTemplateElements; +import org.openecomp.sdc.tosca.datatypes.model.GroupDefinition; +import org.openecomp.sdc.tosca.datatypes.model.NodeTemplate; +import org.openecomp.sdc.tosca.datatypes.model.PolicyDefinition; +import org.openecomp.sdc.tosca.services.DataModelUtil; +import org.openecomp.sdc.translator.datatypes.heattotosca.to.TranslateTo; +import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.ComputeTemplateConsolidationData; +import org.openecomp.sdc.translator.services.heattotosca.ConsolidationDataUtil; +import org.openecomp.sdc.translator.services.heattotosca.ResourceTranslationFactory; +import org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation.ResourceTranslationBase; +import org.openecomp.sdc.translator.services.heattotosca.mapping.TranslatorHeatToToscaPropertyConverter; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; + +import static org.openecomp.sdc.translator.services.heattotosca.HeatToToscaUtil.getResource; + +public class ResourceTranslationValetGroupAssignmentImpl extends ResourceTranslationBase { + private static final String AFFINITY = "affinity"; + private static final String EXCLUSIVITY = "exclusivity"; + private static final String DIVERSITY = "diversity"; + private static List<String> supportedPolicies = Arrays.asList(AFFINITY, EXCLUSIVITY, DIVERSITY); + + private boolean validateGroupType(TranslateTo translateTo) { + Map<String, Object> properties = translateTo.getResource().getProperties(); + if (properties == null) { + return false; + } + + Object groupType = properties.get("group_type"); + if (Objects.isNull(groupType)) { + return false; + } + return isGroupTypeValid(groupType); + } + + @Override + protected void translate(TranslateTo translateTo) { + + + mdcDataDebugMessage.debugEntryMessage(null, null); + + String resourceId = translateTo.getResourceId(); + Optional<String> toscaPolicyType = getToscaPolicies(translateTo.getResource(), resourceId); + if (toscaPolicyType.isPresent()) { + List<String> members = getAttValetGroupAssignmentMembers(translateTo); + addGroupToTopology(translateTo, resourceId, members); + addPoliciesToTopology(translateTo, toscaPolicyType.get()); + } + + mdcDataDebugMessage.debugExitMessage(null, null); + } + + @Override + protected String generateTranslatedId(TranslateTo translateTo) { + return isEssentialRequirementsValid(translateTo) ? getValetGroupAssignmentTranslatedGroupId( + translateTo) : null; + } + + @Override + protected Optional<ToscaTopologyTemplateElements> getTranslatedToscaTopologyElement( + TranslateTo translateTo) { + if (isEssentialRequirementsValid(translateTo)) { + return Optional.of(ToscaTopologyTemplateElements.GROUP); + } else { + return Optional.empty(); + } + } + + @Override + protected boolean isEssentialRequirementsValid(TranslateTo translateTo) { + return validateGroupType(translateTo); + } + + private void addPoliciesToTopology(TranslateTo translateTo, String policyType) { + mdcDataDebugMessage.debugEntryMessage(null, null); + ResourceTranslationBase.logger.info("******** Creating policy '%s' ********", policyType); + PolicyDefinition policyDefinition = new PolicyDefinition(); + policyDefinition.setType(policyType); + policyDefinition + .setTargets( + Collections.singletonList(getValetGroupAssignmentTranslatedGroupId(translateTo))); + policyDefinition.setProperties(TranslatorHeatToToscaPropertyConverter + .getToscaPropertiesSimpleConversion(translateTo.getServiceTemplate(), + translateTo.getResourceId(),translateTo.getResource().getProperties(), + policyDefinition.getProperties(), translateTo.getHeatFileName(), + translateTo.getHeatOrchestrationTemplate(), translateTo.getResource().getType(), + policyDefinition, translateTo.getContext())); + + DataModelUtil.addPolicyDefinition(translateTo.getServiceTemplate(), + getTranslatedPolicyId(translateTo), policyDefinition); + ResourceTranslationBase.logger.info("******** Policy '%s' created ********", policyType); + mdcDataDebugMessage.debugExitMessage(null, null); + } + + private String getTranslatedPolicyId(TranslateTo translateTo) { + return translateTo.getResourceId() + "_policy"; + } + + private void addGroupToTopology(TranslateTo translateTo, String resourceId, + List<String> members) { + mdcDataDebugMessage.debugEntryMessage(null, null); + ResourceTranslationBase.logger + .info("******** Start creating group for resource '%s' ********", resourceId); + GroupDefinition group = new GroupDefinition(); + group.setMembers(members); + group.setType(ToscaGroupType.NATIVE_ROOT); + String groupId = getValetGroupAssignmentTranslatedGroupId(translateTo); + DataModelUtil + .addGroupDefinitionToTopologyTemplate(translateTo.getServiceTemplate(), groupId, group); + ResourceTranslationBase.logger + .info("******** Creating group '%s' for resource '%s' ********", groupId, resourceId); + mdcDataDebugMessage.debugExitMessage(null, null); + } + + private List<String> getAttValetGroupAssignmentMembers(TranslateTo translateTo) { + + + mdcDataDebugMessage.debugEntryMessage(null, null); + + Map<String, Object> properties = translateTo.getResource().getProperties(); + List<String> members = new ArrayList<>(); + String refResourceId; + Optional<String> refAttachedResourceId; + + if (MapUtils.isNotEmpty(properties)) { + Object resources = properties.get("resources"); + + //if null warning no resource + if (resources instanceof List) { + for (Object member : ((List) resources)) { + if (member instanceof Map) { + refResourceId = (String) ((Map) member).get("get_resource"); + + refAttachedResourceId = + ResourceTranslationBase.getResourceTranslatedId(translateTo.getHeatFileName(), + translateTo.getHeatOrchestrationTemplate(), refResourceId, + translateTo.getContext()); + if (refAttachedResourceId.isPresent() ) { + members.add(refAttachedResourceId.get()); + updateComputeConsolidationDataGroup(translateTo, refResourceId); + } + } + } + } + } + + mdcDataDebugMessage.debugExitMessage(null, null); + return members; + } + + private void updateComputeConsolidationDataGroup(TranslateTo translateTo, + String refResourceId) { + Resource refResource = + getResource(translateTo.getHeatOrchestrationTemplate(), refResourceId, + translateTo.getHeatFileName()); + if (isNovaServerResource(translateTo.getHeatOrchestrationTemplate(), refResourceId)) { + String heatFileName = translateTo.getHeatFileName(); + Optional<String> translatedNovaServerId = + ResourceTranslationFactory.getInstance(refResource) + .translateResource(heatFileName, translateTo.getServiceTemplate(), + translateTo.getHeatOrchestrationTemplate(), refResource, refResourceId, + translateTo.getContext()); + //Add nova server information to compute data + if (translatedNovaServerId.isPresent()) { + NodeTemplate translatedNovaServerNodeTemplate = DataModelUtil + .getNodeTemplate(translateTo.getServiceTemplate(), + translatedNovaServerId.get()); + if (translatedNovaServerNodeTemplate != null) { + ComputeTemplateConsolidationData computeTemplateConsolidationData = ConsolidationDataUtil + .getComputeTemplateConsolidationData(translateTo.getContext(), translateTo + .getServiceTemplate(), translatedNovaServerNodeTemplate.getType(), + translatedNovaServerId.get()); + ConsolidationDataUtil.updateGroupIdInConsolidationData(computeTemplateConsolidationData, + translateTo.getTranslatedId()); + } + } + } + } + + private boolean isNovaServerResource(HeatOrchestrationTemplate heatOrchestrationTemplate, + Object resourceToTranslate) { + return heatOrchestrationTemplate.getResources().get(resourceToTranslate).getType() + .equals(HeatResourcesTypes.NOVA_SERVER_RESOURCE_TYPE.getHeatResource()); + } + + + private Optional<String> getToscaPolicies(Resource resource, String resourceId) { + + + mdcDataDebugMessage.debugEntryMessage(null, null); + + Map<String, Object> properties = resource.getProperties(); + if (Objects.isNull(properties) || Objects.isNull(properties.get("group_type"))) { + ResourceTranslationBase.logger + .warn("Resource '" + resourceId + "'(" + resource.getType() + ") missing group_type"); + return Optional.empty(); + } + + Object groupType = properties.get("group_type"); + if (!isGroupTypeValid(groupType)) { + ResourceTranslationBase.logger.warn("Resource '" + resourceId + "'(" + resource.getType() + + ") contains unsupported policy '" + groupType + + "'. This resource is been ignored during the translation"); + + mdcDataDebugMessage.debugExitMessage(null, null); + return Optional.empty(); + } + + mdcDataDebugMessage.debugExitMessage(null, null); + return getToscaPolicyByGroupType((String) groupType); + + } + + private boolean isGroupTypeValid(Object groupType) { + if (!(groupType instanceof String)) { + return false; + } + return supportedPolicies.contains(groupType); + } + + private Optional<String> getToscaPolicyByGroupType(String groupType) { + mdcDataDebugMessage.debugEntryMessage(null, null); + + String toscaPolicyType; + switch (groupType) { + case AFFINITY: + toscaPolicyType = AttToscaPolicyType.PLACEMENT_VALET_AFFINITY; + break; + case EXCLUSIVITY: + toscaPolicyType = AttToscaPolicyType.PLACEMENT_VALET_EXCLUSIVITY; + break; + default: + toscaPolicyType = AttToscaPolicyType.PLACEMENT_VALET_DIVERSITY; + } + + mdcDataDebugMessage.debugExitMessage(null, null); + return Optional.of(toscaPolicyType); + } + + + private String getValetGroupAssignmentTranslatedGroupId(TranslateTo translateTo) { + mdcDataDebugMessage.debugEntryMessage(null, null); + + String resourceId = super.generateTranslatedId(translateTo); + String groupName = null; + Map<String, Object> properties = translateTo.getResource().getProperties(); + + if (properties == null) { + return resourceId + "_group"; + } + + Object groupNameProperty = properties.get("group_name"); + if (groupNameProperty instanceof String) { + groupName = (String) groupNameProperty; + } + + if (!Strings.isNullOrEmpty(groupName)) { + groupName = groupName.replace(" ", "_"); + resourceId += "_" + groupName; + + } + + mdcDataDebugMessage.debugExitMessage(null, null); + return resourceId + "_group"; + } +} diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/main/resources/config-merge-heatToToscaMapping.json b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/main/resources/config-merge-heatToToscaMapping.json new file mode 100644 index 0000000000..2b20db7e9f --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/main/resources/config-merge-heatToToscaMapping.json @@ -0,0 +1,15 @@ +{ + "resourceMapping": { + "ATT::Valet::GroupAssignment": { + "properties": { + "level": "level" + }, + "attributes": { + } + } + }, + "_config": { + "namespace": "heatToToscaMapping", + "mergeStrategy": "merge" + } +} diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/main/resources/config-merge-heatToToscaTranslator.json b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/main/resources/config-merge-heatToToscaTranslator.json new file mode 100644 index 0000000000..33fb21e5e9 --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/main/resources/config-merge-heatToToscaTranslator.json @@ -0,0 +1,13 @@ +{ + "resourceTranslationImpl": { + "ATT::Valet::GroupAssignment": { + "enable": true, + "implementationClass": "com.att.sdc.translator.services.heattotosca.impl.resourcetranslation.ResourceTranslationValetGroupAssignmentImpl" + } + }, + "_config": { + "namespace": "heatToToscaTranslator", + "mergeStrategy": "merge" + } + +}
\ No newline at end of file diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/main/resources/config-override-heatToToscaTranslator.json b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/main/resources/config-override-heatToToscaTranslator.json new file mode 100644 index 0000000000..2c364fe8af --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/main/resources/config-override-heatToToscaTranslator.json @@ -0,0 +1,36 @@ +{ + "resourceTranslationImpl": { + "OS::Contrail::NetworkPolicy": { + "enable": true, + "implementationClass": "org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation.ResourceTranslationContrailNetworkPolicyImpl" + }, + "OS::Contrail::AttachPolicy": { + "enable": true, + "implementationClass": "org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation.ResourceTranslationContrailAttachPolicyImpl" + }, + "OS::ContrailV2::NetworkPolicy": { + "enable": true, + "implementationClass": "org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation.ResourceTranslationContrailV2NetworkPolicyImpl" + }, + "OS::Nova::ServerGroup": { + "enable": true, + "implementationClass": "org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation.ResourceTranslationNovaServerGroupsImpl" + }, + "OS::Neutron::SecurityGroup": { + "enable": true, + "implementationClass": "org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation.ResourceTranslationNeutronSecurityGroupImpl" + } + }, + "namingConventionExtractImpl": { + "NovaServerNodeTypeName": { + "implementationClass": "org.openecomp.sdc.translator.services.heattotosca.impl.nameextractor.NameExtractorNovaServerImpl" + }, + "ContrailComputeNodeTypeName": { + "implementationClass": "org.openecomp.sdc.translator.services.heattotosca.impl.nameextractor.NameExtractorContrailComputeImpl" + } + }, + "_config": { + "namespace": "heatToToscaTranslator", + "mergeStrategy": "override" + } +}
\ No newline at end of file diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/java/com/att/sdc/translator/services/heattotosca/impl/resourcetranslation/BaseResourceTranslationTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/java/com/att/sdc/translator/services/heattotosca/impl/resourcetranslation/BaseResourceTranslationTest.java new file mode 100644 index 0000000000..56f0fc2bd6 --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/java/com/att/sdc/translator/services/heattotosca/impl/resourcetranslation/BaseResourceTranslationTest.java @@ -0,0 +1,324 @@ +/*- + * ============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 com.att.sdc.translator.services.heattotosca.impl.resourcetranslation; + +import static org.junit.Assert.assertEquals; + +import org.apache.commons.collections4.MapUtils; +import org.junit.Assert; +import org.junit.Before; +import org.openecomp.core.translator.datatypes.TranslatorOutput; +import org.openecomp.core.utilities.file.FileUtils; +import org.openecomp.core.utilities.json.JsonUtil; +import org.openecomp.core.validation.api.ValidationManager; +import org.openecomp.core.validation.factory.ValidationManagerFactory; +import org.openecomp.core.validation.util.MessageContainerUtil; +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.common.utils.SdcCommon; +import org.openecomp.sdc.datatypes.error.ErrorLevel; +import org.openecomp.sdc.datatypes.error.ErrorMessage; +import org.openecomp.sdc.heat.datatypes.manifest.FileData; +import org.openecomp.sdc.heat.datatypes.manifest.ManifestContent; +import org.openecomp.sdc.heat.datatypes.manifest.ManifestFile; +import org.openecomp.sdc.logging.context.impl.MdcDataErrorMessage; +import org.openecomp.sdc.logging.types.LoggerConstants; +import org.openecomp.sdc.logging.types.LoggerErrorCode; +import org.openecomp.sdc.logging.types.LoggerTragetServiceName; +import org.openecomp.sdc.tosca.datatypes.model.GroupDefinition; +import org.openecomp.sdc.tosca.datatypes.model.ServiceTemplate; +import org.openecomp.sdc.tosca.services.ToscaFileOutputService; +import org.openecomp.sdc.tosca.services.impl.ToscaFileOutputServiceCsarImpl; +import org.openecomp.sdc.tosca.services.yamlutil.ToscaExtensionYamlUtil; +import org.openecomp.sdc.translator.datatypes.heattotosca.TranslationContext; +import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.ComputeTemplateConsolidationData; +import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.ConsolidationData; +import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.FileComputeConsolidationData; +import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.TypeComputeConsolidationData; +import org.openecomp.sdc.translator.services.heattotosca.TranslationService; + +import java.io.BufferedInputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.net.URL; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.zip.ZipEntry; +import java.util.zip.ZipInputStream; + + +public class BaseResourceTranslationTest { + + protected String inputFilesPath; + protected String outputFilesPath; + protected TranslationContext translationContext; + + private String zipFilename = "VSP.zip"; + private TranslationService translationService; + private boolean isValid; + private File translatedZipFile; + + private Map<String, byte[]> expectedResultMap = new HashMap<>(); + private Set<String> expectedResultFileNameSet = new HashSet<>(); + + private final String MANIFEST_NAME = SdcCommon.MANIFEST_NAME; + private String validationFilename = "validationOutput.json"; + + @Before + public void setUp() throws IOException { + initTranslatorAndTranslate(); + } + + protected void initTranslatorAndTranslate() throws IOException { + translationService = new TranslationService(); + translationContext = new TranslationContext(); + translatedZipFile = translateZipFile(); + } + + protected void testTranslation() throws IOException { + + URL url = BaseResourceTranslationTest.class.getResource(outputFilesPath); + + String path = url.getPath(); + File pathFile = new File(path); + File[] files = pathFile.listFiles(); + Assert.assertNotNull("manifest files is empty", files); + for (File expectedFile : files) { + expectedResultFileNameSet.add(expectedFile.getName()); + try (FileInputStream input = new FileInputStream(expectedFile)) { + expectedResultMap.put(expectedFile.getName(), FileUtils.toByteArray(input)); + } + } + + try (FileInputStream fis = new FileInputStream(translatedZipFile); + ZipInputStream zis = new ZipInputStream(new BufferedInputStream(fis))) { + ZipEntry entry; + String name; + String expected; + String actual; + + while ((entry = zis.getNextEntry()) != null) { + + name = entry.getName() + .substring(entry.getName().lastIndexOf(File.separator) + 1, entry.getName().length()); + if (expectedResultFileNameSet.contains(name)) { + expected = new String(expectedResultMap.get(name)).trim().replace("\r", ""); + actual = new String(FileUtils.toByteArray(zis)).trim().replace("\r", ""); + assertEquals("difference in file: " + name, expected, actual); + + expectedResultFileNameSet.remove(name); + } + } + if (expectedResultFileNameSet.isEmpty()) { + expectedResultFileNameSet.forEach(System.out::println); + } + } + assertEquals(0, expectedResultFileNameSet.size()); + } + + private File translateZipFile() throws IOException { + URL inputFilesUrl = this.getClass().getResource(inputFilesPath); + String path = inputFilesUrl.getPath(); + addFilesToTranslator(translationContext, path); + TranslatorOutput translatorOutput = translationService.translateHeatFiles(translationContext); + Assert.assertNotNull(translatorOutput); + if (MapUtils.isNotEmpty(translatorOutput.getErrorMessages()) && MapUtils.isNotEmpty( + MessageContainerUtil + .getMessageByLevel(ErrorLevel.ERROR, translatorOutput.getErrorMessages()))) { + MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB, + LoggerTragetServiceName.VALIDATE_HEAT_BEFORE_TRANSLATE, ErrorLevel.ERROR.name(), + LoggerErrorCode.DATA_ERROR.getErrorCode(), "Can't translate HEAT file"); + throw new CoreException((new ErrorCode.ErrorCodeBuilder()).withMessage( + "Error in validation " + getErrorAsString(translatorOutput.getErrorMessages())) + .withId("Validation Error").withCategory(ErrorCategory.APPLICATION).build()); + } + File file = new File(path + "/" + zipFilename); + file.createNewFile(); + + try (FileOutputStream fos = new FileOutputStream(file)) { + ToscaFileOutputService toscaFileOutputService = new ToscaFileOutputServiceCsarImpl(); + fos.write( + toscaFileOutputService.createOutputFile(translatorOutput.getToscaServiceModel(), null)); + } + + return file; + } + + private String getErrorAsString(Map<String, List<ErrorMessage>> errorMessages) { + StringBuilder sb = new StringBuilder(); + errorMessages.entrySet().forEach( + entry -> sb.append("File:").append(entry.getKey()).append(System.lineSeparator()) + .append(getErrorList(entry.getValue()))); + + return sb.toString(); + } + + private String getErrorList(List<ErrorMessage> errors) { + StringBuilder sb = new StringBuilder(); + errors.forEach( + error -> sb.append(error.getMessage()).append("[").append(error.getLevel()).append("]") + .append(System.lineSeparator())); + return sb.toString(); + } + + public void addFilesToTranslator(TranslationContext translationContext, String path) + throws IOException { + File manifestFile = new File(path); + File[] files = manifestFile.listFiles(); + byte[] fileContent; + + Assert.assertNotNull("manifest files is empty", files); + + for (File file : files) { + + try (FileInputStream fis = new FileInputStream(file)) { + + fileContent = FileUtils.toByteArray(fis); + + if (file.getName().equals(MANIFEST_NAME)) { + addManifest(translationContext, MANIFEST_NAME, fileContent); + } else { + if (!file.getName().equals(zipFilename) && (!file.getName().equals(validationFilename))) { + addFile(translationContext, file.getName(), fileContent); + } + } + } + } + } + + public static void addManifest(TranslationContext translationContext, + String name, byte[] content) { + ManifestContent manifestData = JsonUtil.json2Object(new String(content), ManifestContent.class); + ManifestFile manifest = new ManifestFile(); + manifest.setName(name); + manifest.setContent(manifestData); + translationContext.setManifest(manifest); + translationContext.addFile(name, content); + addFilesFromManifestToTranslationContextManifestFilesMap(translationContext, manifestData + .getData()); + } + + public static void addFile(TranslationContext translationContext, + String name, byte[] content) { + translationContext.addFile(name, content); + } + + + public void validateComputeTemplateConsolidationData() { + ConsolidationData consolidationData = translationContext.getConsolidationData(); + Map<String, ServiceTemplate> expectedServiceTemplateModels = getServiceTemplates + (outputFilesPath); + Assert.assertNotNull(consolidationData); + Assert.assertNotNull(consolidationData.getComputeConsolidationData()); + Set<String> serviceTemplateFileNames = consolidationData.getComputeConsolidationData() + .getAllServiceTemplateFileNames(); + Assert.assertNotNull(serviceTemplateFileNames); + for(String serviceTemplateName : serviceTemplateFileNames){ + Assert.assertTrue(expectedServiceTemplateModels.containsKey(serviceTemplateName)); + ServiceTemplate expectedServiceTemplate = expectedServiceTemplateModels.get + (serviceTemplateName); + FileComputeConsolidationData fileComputeConsolidationData = consolidationData + .getComputeConsolidationData().getFileComputeConsolidationData(serviceTemplateName); + Assert.assertNotNull(fileComputeConsolidationData); + Set<String> computeTypes = fileComputeConsolidationData.getAllComputeTypes(); + Assert.assertNotNull(computeTypes); + for(String computeType : computeTypes) { + TypeComputeConsolidationData typeComputeConsolidationData = fileComputeConsolidationData + .getTypeComputeConsolidationData(computeType); + Assert.assertNotNull(typeComputeConsolidationData); + + Set<String> computeNodeTemplateIds = typeComputeConsolidationData + .getAllComputeNodeTemplateIds(); + Assert.assertNotNull(computeNodeTemplateIds); + Assert.assertNotEquals(computeNodeTemplateIds.size(), 0); + + for(String computeNodeTemplateId : computeNodeTemplateIds) { + ComputeTemplateConsolidationData computeTemplateConsolidationData = + typeComputeConsolidationData.getComputeTemplateConsolidationData + (computeNodeTemplateId); + validateGroupsInConsolidationData(computeNodeTemplateId, + computeTemplateConsolidationData, expectedServiceTemplate); + } + } + } + } + + public Map<String, ServiceTemplate> getServiceTemplates(String baseDirPath){ + Map<String, ServiceTemplate> serviceTemplateMap = new HashMap<>(); + ToscaExtensionYamlUtil toscaExtensionYamlUtil = new ToscaExtensionYamlUtil(); + baseDirPath = "."+baseDirPath+"/"; + try { + String[] fileList = {}; + URL filesDirUrl = BaseResourceTranslationTest.class.getClassLoader().getResource(baseDirPath); + if (filesDirUrl != null && filesDirUrl.getProtocol().equals("file")) { + fileList = new File(filesDirUrl.toURI()).list(); + } else { + Assert.fail("Invalid expected output files directory"); + } + for (int i = 0; i < fileList.length; i++) { + InputStream serviceTemplateInputStream = FileUtils.getFileInputStream + (BaseResourceTranslationTest.class + .getClassLoader().getResource(baseDirPath + fileList[i])); + ServiceTemplate serviceTemplate = toscaExtensionYamlUtil.yamlToObject + (serviceTemplateInputStream, ServiceTemplate.class); + serviceTemplateMap.put(fileList[i], serviceTemplate); + } + } catch (Exception e) { + Assert.fail(e.getMessage()); + } + return serviceTemplateMap; + } + private void validateGroupsInConsolidationData(String computeNodeTemplateId, + ComputeTemplateConsolidationData + computeTemplateConsolidationData, + ServiceTemplate expectedServiceTemplate) { + Assert.assertNotNull(computeTemplateConsolidationData); + List<String> groupIds = computeTemplateConsolidationData.getGroupIds(); + if(groupIds != null) { + for(String groupId : groupIds) { + isComputeGroupMember(expectedServiceTemplate, computeNodeTemplateId, groupId); + } + } + } + + private void isComputeGroupMember(ServiceTemplate expectedServiceTemplate, String + computeNodeTemplateId, String groupId) { + GroupDefinition group = expectedServiceTemplate.getTopology_template().getGroups().get(groupId); + List<String> groupMembers = group.getMembers(); + Assert.assertNotNull(groupMembers); + Assert.assertTrue(groupMembers.contains(computeNodeTemplateId)); + } + + + private static void addFilesFromManifestToTranslationContextManifestFilesMap(TranslationContext + translationContext, List<FileData> fileDataListFromManifest) { + for (FileData fileFromManfiest : fileDataListFromManifest) { + translationContext.addManifestFile(fileFromManfiest.getFile(), fileFromManfiest.getType()); + } + } +} diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/java/com/att/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationValetGroupAssignmentImplTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/java/com/att/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationValetGroupAssignmentImplTest.java new file mode 100644 index 0000000000..758e262b98 --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/java/com/att/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationValetGroupAssignmentImplTest.java @@ -0,0 +1,159 @@ +/*- + * ============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 com.att.sdc.translator.services.heattotosca.impl.resourcetranslation; + +import org.junit.Before; +import org.junit.Test; + +import java.io.IOException; + +public class ResourceTranslationValetGroupAssignmentImplTest + extends BaseResourceTranslationTest { + + @Override + @Before + public void setUp() throws IOException { + // do not delete this function. it prevents the superclass setup from running + } + + @Test + public void testTranslateSimpleOnlyNova() throws Exception { + inputFilesPath = + "/mock/services/heattotosca/attValetGroupAssignment/simpleOnlyNova/inputfiles"; + outputFilesPath = + "/mock/services/heattotosca/attValetGroupAssignment/simpleOnlyNova/expectedoutputfiles"; + initTranslatorAndTranslate(); + testTranslation(); + validateComputeTemplateConsolidationData(); + } + + @Test + public void testTranslateGroupNameParameter() throws Exception { + inputFilesPath = + "/mock/services/heattotosca/attValetGroupAssignment/groupNameParameter/inputfiles"; + outputFilesPath = + "/mock/services/heattotosca/attValetGroupAssignment/groupNameParameter/expectedoutputfiles"; + initTranslatorAndTranslate(); + testTranslation(); + validateComputeTemplateConsolidationData(); + } + + @Test + public void testTranslateComplexNovaAndGroup() throws Exception { + inputFilesPath = + "/mock/services/heattotosca/attValetGroupAssignment/complexNovaAndGroup/inputfiles"; + outputFilesPath = + "/mock/services/heattotosca/attValetGroupAssignment/complexNovaAndGroup/expectedoutputfiles"; + initTranslatorAndTranslate(); + testTranslation(); + validateComputeTemplateConsolidationData(); + } + + @Test + public void testTranslateComplexOnlyGroup() throws Exception { + inputFilesPath = + "/mock/services/heattotosca/attValetGroupAssignment/complexOnlyGroup/inputfiles"; + outputFilesPath = + "/mock/services/heattotosca/attValetGroupAssignment/complexOnlyGroup/expectedoutputfiles"; + initTranslatorAndTranslate(); + testTranslation(); + validateComputeTemplateConsolidationData(); + } + + @Test + public void testTranslateComplexTwoGroups() throws Exception { + inputFilesPath = + "/mock/services/heattotosca/attValetGroupAssignment/complexTwoGroups/inputfiles"; + outputFilesPath = + "/mock/services/heattotosca/attValetGroupAssignment/complexTwoGroups/expectedoutputfiles"; + initTranslatorAndTranslate(); + testTranslation(); + validateComputeTemplateConsolidationData(); + } + + @Test + public void testInvalidGroupIsNotTranslatedAndNotAddedAsMemberOfGroup() throws Exception { + inputFilesPath = + "/mock/services/heattotosca/attValetGroupAssignment/invalidGroupAssignment/inputfiles"; + outputFilesPath = + "/mock/services/heattotosca/attValetGroupAssignment/invalidGroupAssignment/expectedoutputfiles"; + initTranslatorAndTranslate(); + testTranslation(); + validateComputeTemplateConsolidationData(); + } + + @Test + public void testSimpleNovaAndNotSupportedResource() throws Exception { + inputFilesPath = + "/mock/services/heattotosca/attValetGroupAssignment/simpleNovaAndNotSupportedResource/inputfiles"; + outputFilesPath = + "/mock/services/heattotosca/attValetGroupAssignment/simpleNovaAndNotSupportedResource/expectedoutputfiles"; + initTranslatorAndTranslate(); + testTranslation(); + validateComputeTemplateConsolidationData(); + } + + @Test + public void testSimpleOnlyNotSupportedResources() throws Exception { + inputFilesPath = + "/mock/services/heattotosca/attValetGroupAssignment/simpleOnlyNotSupportedResources/inputfiles"; + outputFilesPath = + "/mock/services/heattotosca/attValetGroupAssignment/simpleOnlyNotSupportedResources/expectedoutputfiles"; + initTranslatorAndTranslate(); + testTranslation(); + validateComputeTemplateConsolidationData(); + } + + @Test + public void testSimpleOnlySingleNova() throws Exception { + inputFilesPath = + "/mock/services/heattotosca/attValetGroupAssignment/simpleOnlySingleNova/inputfiles"; + outputFilesPath = + "/mock/services/heattotosca/attValetGroupAssignment/simpleOnlySingleNova/expectedoutputfiles"; + initTranslatorAndTranslate(); + testTranslation(); + validateComputeTemplateConsolidationData(); + } + + @Test + public void testConfigNoConnection() throws Exception { + inputFilesPath = + "/mock/services/heattotosca/attValetGroupAssignment/notconnected/inputfiles"; + outputFilesPath = + "/mock/services/heattotosca/attValetGroupAssignment/notconnected/expectedoutputfiles"; + initTranslatorAndTranslate(); + testTranslation(); + validateComputeTemplateConsolidationData(); + } + + @Test + public void testDynamicGroup() throws Exception { + inputFilesPath = + "/mock/services/heattotosca/attValetGroupAssignment/dynamicGroup/inputfiles"; + outputFilesPath = + "/mock/services/heattotosca/attValetGroupAssignment/dynamicGroup/expectedoutputfiles"; + initTranslatorAndTranslate(); + testTranslation(); + validateComputeTemplateConsolidationData(); + } + + +} diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/logback.xml b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/logback.xml new file mode 100644 index 0000000000..03ce9d1243 --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/logback.xml @@ -0,0 +1,13 @@ +<!-- only one line, shut up logback ! --> +<configuration> + <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> + <encoder> + <Pattern> + %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n + </Pattern> + </encoder> + </appender> + <root level="off"> + <appender-ref ref="STDOUT" /> + </root> +</configuration>
\ No newline at end of file diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/complexNovaAndGroup/expectedoutputfiles/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/complexNovaAndGroup/expectedoutputfiles/MainServiceTemplate.yaml new file mode 100644 index 0000000000..8bc4c3d028 --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/complexNovaAndGroup/expectedoutputfiles/MainServiceTemplate.yaml @@ -0,0 +1,304 @@ +tosca_definitions_version: tosca_simple_yaml_1_0_0 +metadata: + template_name: Main +imports: +- openecomp_heat_index: + file: openecomp-heat/_index.yml +node_types: + org.openecomp.resource.vfc.nodes.heat.myNovaServer2: + derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server + org.openecomp.resource.vfc.nodes.heat.myNovaServer1: + derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server + org.openecomp.resource.vfc.nodes.heat.myNovaServer3: + derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server +topology_template: + inputs: + flavor: + hidden: false + immutable: false + type: string + p1: + hidden: false + immutable: false + type: string + description: p1 + image: + hidden: false + immutable: false + type: string + p2: + hidden: false + immutable: false + type: string + description: p2 + names: + hidden: false + immutable: false + type: string + myIPs: + hidden: false + immutable: false + type: string + description: ip1 + availability_zone_1: + hidden: false + immutable: false + type: string + description: myAvailability_zone_1 + net: + hidden: false + immutable: false + type: string + description: UID of network + node_templates: + myPort6: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + replacement_policy: AUTO + ip_requirements: + - ip_version: 4 + ip_count_required: + is_required: true + floating_ip_count_required: + is_required: false + security_groups: + - get_input: p2 + fixed_ips: + - ip_address: + get_input: + - myIPs + - 0 + mac_requirements: + mac_count_required: + is_required: false + network: + get_input: net + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: myNovaServer3 + relationship: tosca.relationships.network.BindsTo + myPort5: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + replacement_policy: AUTO + ip_requirements: + - ip_version: 4 + ip_count_required: + is_required: true + floating_ip_count_required: + is_required: false + security_groups: + - get_input: p1 + fixed_ips: + - ip_address: + get_input: + - myIPs + - 0 + mac_requirements: + mac_count_required: + is_required: false + network: + get_input: net + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: myNovaServer3 + relationship: tosca.relationships.network.BindsTo + myNovaServer1: + type: org.openecomp.resource.vfc.nodes.heat.myNovaServer1 + properties: + flavor: + get_input: flavor + availability_zone: + get_input: availability_zone_1 + image: + get_input: image + name: + get_input: + - names + - 0 + myNovaServer2: + type: org.openecomp.resource.vfc.nodes.heat.myNovaServer2 + properties: + flavor: + get_input: flavor + availability_zone: + get_input: availability_zone_1 + image: + get_input: image + name: + get_input: + - names + - 0 + myPort2: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + replacement_policy: AUTO + ip_requirements: + - ip_version: 4 + ip_count_required: + is_required: true + floating_ip_count_required: + is_required: false + security_groups: + - get_input: p2 + fixed_ips: + - ip_address: + get_input: + - myIPs + - 0 + mac_requirements: + mac_count_required: + is_required: false + network: + get_input: net + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: myNovaServer1 + relationship: tosca.relationships.network.BindsTo + myNovaServer3: + type: org.openecomp.resource.vfc.nodes.heat.myNovaServer3 + properties: + flavor: + get_input: flavor + availability_zone: + get_input: availability_zone_1 + image: + get_input: image + name: + get_input: + - names + - 0 + myPort1: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + replacement_policy: AUTO + ip_requirements: + - ip_version: 4 + ip_count_required: + is_required: true + floating_ip_count_required: + is_required: false + security_groups: + - get_input: p1 + fixed_ips: + - ip_address: + get_input: + - myIPs + - 0 + mac_requirements: + mac_count_required: + is_required: false + network: + get_input: net + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: myNovaServer1 + relationship: tosca.relationships.network.BindsTo + myPort4: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + replacement_policy: AUTO + ip_requirements: + - ip_version: 4 + ip_count_required: + is_required: true + floating_ip_count_required: + is_required: false + security_groups: + - get_input: p2 + fixed_ips: + - ip_address: + get_input: + - myIPs + - 0 + mac_requirements: + mac_count_required: + is_required: false + network: + get_input: net + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: myNovaServer2 + relationship: tosca.relationships.network.BindsTo + myPort3: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + replacement_policy: AUTO + ip_requirements: + - ip_version: 4 + ip_count_required: + is_required: true + floating_ip_count_required: + is_required: false + security_groups: + - get_input: p1 + fixed_ips: + - ip_address: + get_input: + - myIPs + - 0 + mac_requirements: + mac_count_required: + is_required: false + network: + get_input: net + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: myNovaServer2 + relationship: tosca.relationships.network.BindsTo + groups: + SVCgroup2_mixGroup_group: + type: tosca.groups.Root + members: + - SVCgroup1_simpleGroup_group + - myNovaServer3 + main_group: + type: org.openecomp.groups.heat.HeatStack + properties: + heat_file: ../Artifacts/main.yml + description: cmaui server template for vMMSC + members: + - myPort6 + - myPort5 + - myNovaServer1 + - myNovaServer2 + - myPort2 + - myNovaServer3 + - myPort1 + - myPort4 + - myPort3 + SVCgroup3_groupsMembers_group: + type: tosca.groups.Root + members: + - SVCgroup1_simpleGroup_group + - SVCgroup2_mixGroup_group + SVCgroup1_simpleGroup_group: + type: tosca.groups.Root + members: + - myNovaServer1 + - myNovaServer2 + policies: + SVCgroup2_policy: + type: org.openecomp.policies.placement.valet.Diversity + properties: + level: host + targets: + - SVCgroup2_mixGroup_group + SVCgroup1_policy: + type: org.openecomp.policies.placement.valet.Affinity + properties: + level: host + targets: + - SVCgroup1_simpleGroup_group + SVCgroup3_policy: + type: org.openecomp.policies.placement.valet.Exclusivity + properties: + level: rack + targets: + - SVCgroup3_groupsMembers_group
\ No newline at end of file diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/complexNovaAndGroup/inputfiles/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/complexNovaAndGroup/inputfiles/MANIFEST.json new file mode 100644 index 0000000000..539e26b7ab --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/complexNovaAndGroup/inputfiles/MANIFEST.json @@ -0,0 +1,12 @@ +{ + "name": "vMME_Small", + "description": "HOT template to create 2 cinder volume attachment", + "version": "2013-05-23", + "data": [ + { + "file": "main.yml", + "type": "HEAT", + "isBase": "true" + } + ] +} diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/complexNovaAndGroup/inputfiles/main.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/complexNovaAndGroup/inputfiles/main.yml new file mode 100644 index 0000000000..57e9f04c36 --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/complexNovaAndGroup/inputfiles/main.yml @@ -0,0 +1,144 @@ +heat_template_version: 2013-05-23 + +description: cmaui server template for vMMSC + +parameters: + net: + type: string + description: UID of network + p1: + type: string + description: p1 + p2: + type: string + description: p2 + myIPs: + type: string + description: ip1 + availability_zone_1: + type: string + description: myAvailability_zone_1 + names: + type: string + image: + type: string + flavor: + type: string +resources: + + myNovaServer1: + type: OS::Nova::Server + properties: + name: { get_param: [names, 0]} + image: { get_param: image } + availability_zone: { get_param: availability_zone_1 } + flavor: { get_param: flavor } + networks: + - port: { get_resource: myPort1 } + - port: { get_resource: myPort2 } + + + myNovaServer2: + type: OS::Nova::Server + properties: + name: { get_param: [names, 0]} + image: { get_param: image } + availability_zone: { get_param: availability_zone_1 } + flavor: { get_param: flavor } + networks: + - port: { get_resource: myPort3 } + - port: { get_resource: myPort4 } + + myNovaServer3: + type: OS::Nova::Server + properties: + name: { get_param: [names, 0]} + image: { get_param: image } + availability_zone: { get_param: availability_zone_1 } + flavor: { get_param: flavor } + networks: + - port: { get_resource: myPort5 } + - port: { get_resource: myPort6 } + myPort1: + type: OS::Neutron::Port + properties: + network: { get_param: net } + fixed_ips: [{"ip_address": {get_param: [myIPs, 0]}}] + security_groups: [{get_param: p1}] + replacement_policy: AUTO + + myPort2: + type: OS::Neutron::Port + properties: + network: { get_param: net } + fixed_ips: [{"ip_address": {get_param: [myIPs, 0]}}] + security_groups: [{get_param: p2}] + replacement_policy: AUTO + + myPort3: + type: OS::Neutron::Port + properties: + network: { get_param: net } + fixed_ips: [{"ip_address": {get_param: [myIPs, 0]}}] + security_groups: [{get_param: p1}] + replacement_policy: AUTO + + myPort4: + type: OS::Neutron::Port + properties: + network: { get_param: net } + fixed_ips: [{"ip_address": {get_param: [myIPs, 0]}}] + security_groups: [{get_param: p2}] + replacement_policy: AUTO + myPort5: + type: OS::Neutron::Port + properties: + network: { get_param: net } + fixed_ips: [{"ip_address": {get_param: [myIPs, 0]}}] + security_groups: [{get_param: p1}] + replacement_policy: AUTO + + myPort6: + type: OS::Neutron::Port + properties: + network: { get_param: net } + fixed_ips: [{"ip_address": {get_param: [myIPs, 0]}}] + security_groups: [{get_param: p2}] + replacement_policy: AUTO + SVCgroup1: + type: ATT::Valet::GroupAssignment + properties: + group_type: affinity + group_name: simpleGroup + level: host + resources: + - { get_resource: myNovaServer1} + - { get_resource: myNovaServer2} + SVCgroup2: + type: ATT::Valet::GroupAssignment + properties: + group_type: diversity + group_name: mixGroup + level: host + resources: + - { get_resource: SVCgroup1} + - { get_resource: myNovaServer3} + SVCgroup3: + type: ATT::Valet::GroupAssignment + properties: + group_type: exclusivity + group_name: groupsMembers + level: rack + resources: + - { get_resource: SVCgroup1} + - { get_resource: SVCgroup2} + - { get_resource: SVCgroup4} + SVCgroup4: + type: ATT::Valet::GroupAssignment + properties: + group_type: koko + group_name: invalid + level: host + resources: + - { get_resource: SVCgroup1} + - { get_resource: SVCgroup2} diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/complexOnlyGroup/expectedoutputfiles/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/complexOnlyGroup/expectedoutputfiles/MainServiceTemplate.yaml new file mode 100644 index 0000000000..71b6038eb3 --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/complexOnlyGroup/expectedoutputfiles/MainServiceTemplate.yaml @@ -0,0 +1,292 @@ +tosca_definitions_version: tosca_simple_yaml_1_0_0 +metadata: + template_name: Main +imports: +- openecomp_heat_index: + file: openecomp-heat/_index.yml +node_types: + org.openecomp.resource.vfc.nodes.heat.myNovaServer2: + derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server + org.openecomp.resource.vfc.nodes.heat.myNovaServer1: + derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server + org.openecomp.resource.vfc.nodes.heat.myNovaServer3: + derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server +topology_template: + inputs: + flavor: + hidden: false + immutable: false + type: string + p1: + hidden: false + immutable: false + type: string + description: p1 + image: + hidden: false + immutable: false + type: string + p2: + hidden: false + immutable: false + type: string + description: p2 + names: + hidden: false + immutable: false + type: string + myIPs: + hidden: false + immutable: false + type: string + description: ip1 + availability_zone_1: + hidden: false + immutable: false + type: string + description: myAvailability_zone_1 + net: + hidden: false + immutable: false + type: string + description: UID of network + node_templates: + myPort6: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + replacement_policy: AUTO + ip_requirements: + - ip_version: 4 + ip_count_required: + is_required: true + floating_ip_count_required: + is_required: false + security_groups: + - get_input: p2 + fixed_ips: + - ip_address: + get_input: + - myIPs + - 0 + mac_requirements: + mac_count_required: + is_required: false + network: + get_input: net + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: myNovaServer3 + relationship: tosca.relationships.network.BindsTo + myPort5: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + replacement_policy: AUTO + ip_requirements: + - ip_version: 4 + ip_count_required: + is_required: true + floating_ip_count_required: + is_required: false + security_groups: + - get_input: p1 + fixed_ips: + - ip_address: + get_input: + - myIPs + - 0 + mac_requirements: + mac_count_required: + is_required: false + network: + get_input: net + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: myNovaServer3 + relationship: tosca.relationships.network.BindsTo + myNovaServer1: + type: org.openecomp.resource.vfc.nodes.heat.myNovaServer1 + properties: + flavor: + get_input: flavor + availability_zone: + get_input: availability_zone_1 + image: + get_input: image + name: + get_input: + - names + - 0 + myNovaServer2: + type: org.openecomp.resource.vfc.nodes.heat.myNovaServer2 + properties: + flavor: + get_input: flavor + availability_zone: + get_input: availability_zone_1 + image: + get_input: image + name: + get_input: + - names + - 0 + myPort2: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + replacement_policy: AUTO + ip_requirements: + - ip_version: 4 + ip_count_required: + is_required: true + floating_ip_count_required: + is_required: false + security_groups: + - get_input: p2 + fixed_ips: + - ip_address: + get_input: + - myIPs + - 0 + mac_requirements: + mac_count_required: + is_required: false + network: + get_input: net + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: myNovaServer1 + relationship: tosca.relationships.network.BindsTo + myNovaServer3: + type: org.openecomp.resource.vfc.nodes.heat.myNovaServer3 + properties: + flavor: + get_input: flavor + availability_zone: + get_input: availability_zone_1 + image: + get_input: image + name: + get_input: + - names + - 0 + myPort1: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + replacement_policy: AUTO + ip_requirements: + - ip_version: 4 + ip_count_required: + is_required: true + floating_ip_count_required: + is_required: false + security_groups: + - get_input: p1 + fixed_ips: + - ip_address: + get_input: + - myIPs + - 0 + mac_requirements: + mac_count_required: + is_required: false + network: + get_input: net + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: myNovaServer1 + relationship: tosca.relationships.network.BindsTo + myPort4: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + replacement_policy: AUTO + ip_requirements: + - ip_version: 4 + ip_count_required: + is_required: true + floating_ip_count_required: + is_required: false + security_groups: + - get_input: p2 + fixed_ips: + - ip_address: + get_input: + - myIPs + - 0 + mac_requirements: + mac_count_required: + is_required: false + network: + get_input: net + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: myNovaServer2 + relationship: tosca.relationships.network.BindsTo + myPort3: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + replacement_policy: AUTO + ip_requirements: + - ip_version: 4 + ip_count_required: + is_required: true + floating_ip_count_required: + is_required: false + security_groups: + - get_input: p1 + fixed_ips: + - ip_address: + get_input: + - myIPs + - 0 + mac_requirements: + mac_count_required: + is_required: false + network: + get_input: net + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: myNovaServer2 + relationship: tosca.relationships.network.BindsTo + groups: + main_group: + type: org.openecomp.groups.heat.HeatStack + properties: + heat_file: ../Artifacts/main.yml + description: cmaui server template for vMMSC + members: + - myPort6 + - myPort5 + - myNovaServer1 + - myNovaServer2 + - myPort2 + - myNovaServer3 + - myPort1 + - myPort4 + - myPort3 + SVCgroup1_simpleGroup_group: + type: tosca.groups.Root + members: + - myNovaServer1 + - myNovaServer2 + SVCgroup2_complexGroup_group: + type: tosca.groups.Root + members: + - SVCgroup1_simpleGroup_group + policies: + SVCgroup2_policy: + type: org.openecomp.policies.placement.valet.Affinity + properties: + level: host + targets: + - SVCgroup2_complexGroup_group + SVCgroup1_policy: + type: org.openecomp.policies.placement.valet.Affinity + properties: + level: host + targets: + - SVCgroup1_simpleGroup_group
\ No newline at end of file diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/complexOnlyGroup/inputfiles/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/complexOnlyGroup/inputfiles/MANIFEST.json new file mode 100644 index 0000000000..7f1ddfbc90 --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/complexOnlyGroup/inputfiles/MANIFEST.json @@ -0,0 +1,12 @@ +{ + "name": "vMME_Small", + "description": "HOT template to create 2 cinder volume attachment", + "version": "2013-05-23", + "data": [ + { + "file": "main.yml", + "type": "HEAT", + "isBase": "true" + } + ] +}
\ No newline at end of file diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/complexOnlyGroup/inputfiles/main.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/complexOnlyGroup/inputfiles/main.yml new file mode 100644 index 0000000000..2317813e66 --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/complexOnlyGroup/inputfiles/main.yml @@ -0,0 +1,124 @@ +heat_template_version: 2013-05-23 + +description: cmaui server template for vMMSC + +parameters: + net: + type: string + description: UID of network + p1: + type: string + description: p1 + p2: + type: string + description: p2 + myIPs: + type: string + description: ip1 + availability_zone_1: + type: string + description: myAvailability_zone_1 + names: + type: string + image: + type: string + flavor: + type: string +resources: + + myNovaServer1: + type: OS::Nova::Server + properties: + name: { get_param: [names, 0]} + image: { get_param: image } + availability_zone: { get_param: availability_zone_1 } + flavor: { get_param: flavor } + networks: + - port: { get_resource: myPort1 } + - port: { get_resource: myPort2 } + + + myNovaServer2: + type: OS::Nova::Server + properties: + name: { get_param: [names, 0]} + image: { get_param: image } + availability_zone: { get_param: availability_zone_1 } + flavor: { get_param: flavor } + networks: + - port: { get_resource: myPort3 } + - port: { get_resource: myPort4 } + + myNovaServer3: + type: OS::Nova::Server + properties: + name: { get_param: [names, 0]} + image: { get_param: image } + availability_zone: { get_param: availability_zone_1 } + flavor: { get_param: flavor } + networks: + - port: { get_resource: myPort5 } + - port: { get_resource: myPort6 } + myPort1: + type: OS::Neutron::Port + properties: + network: { get_param: net } + fixed_ips: [{"ip_address": {get_param: [myIPs, 0]}}] + security_groups: [{get_param: p1}] + replacement_policy: AUTO + + myPort2: + type: OS::Neutron::Port + properties: + network: { get_param: net } + fixed_ips: [{"ip_address": {get_param: [myIPs, 0]}}] + security_groups: [{get_param: p2}] + replacement_policy: AUTO + + myPort3: + type: OS::Neutron::Port + properties: + network: { get_param: net } + fixed_ips: [{"ip_address": {get_param: [myIPs, 0]}}] + security_groups: [{get_param: p1}] + replacement_policy: AUTO + + myPort4: + type: OS::Neutron::Port + properties: + network: { get_param: net } + fixed_ips: [{"ip_address": {get_param: [myIPs, 0]}}] + security_groups: [{get_param: p2}] + replacement_policy: AUTO + myPort5: + type: OS::Neutron::Port + properties: + network: { get_param: net } + fixed_ips: [{"ip_address": {get_param: [myIPs, 0]}}] + security_groups: [{get_param: p1}] + replacement_policy: AUTO + + myPort6: + type: OS::Neutron::Port + properties: + network: { get_param: net } + fixed_ips: [{"ip_address": {get_param: [myIPs, 0]}}] + security_groups: [{get_param: p2}] + replacement_policy: AUTO + SVCgroup1: + type: ATT::Valet::GroupAssignment + properties: + group_type: affinity + group_name: simpleGroup + level: host + resources: + - { get_resource: myNovaServer1} + - { get_resource: myNovaServer2} + SVCgroup2: + type: ATT::Valet::GroupAssignment + properties: + group_type: affinity + group_name: complexGroup + level: host + resources: + - { get_resource: SVCgroup1}
\ No newline at end of file diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/complexTwoGroups/expectedoutputfiles/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/complexTwoGroups/expectedoutputfiles/MainServiceTemplate.yaml new file mode 100644 index 0000000000..072f382fbb --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/complexTwoGroups/expectedoutputfiles/MainServiceTemplate.yaml @@ -0,0 +1,303 @@ +tosca_definitions_version: tosca_simple_yaml_1_0_0 +metadata: + template_name: Main +imports: +- openecomp_heat_index: + file: openecomp-heat/_index.yml +node_types: + org.openecomp.resource.vfc.nodes.heat.myNovaServer2: + derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server + org.openecomp.resource.vfc.nodes.heat.myNovaServer1: + derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server + org.openecomp.resource.vfc.nodes.heat.myNovaServer3: + derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server +topology_template: + inputs: + flavor: + hidden: false + immutable: false + type: string + p1: + hidden: false + immutable: false + type: string + description: p1 + image: + hidden: false + immutable: false + type: string + p2: + hidden: false + immutable: false + type: string + description: p2 + names: + hidden: false + immutable: false + type: string + myIPs: + hidden: false + immutable: false + type: string + description: ip1 + availability_zone_1: + hidden: false + immutable: false + type: string + description: myAvailability_zone_1 + net: + hidden: false + immutable: false + type: string + description: UID of network + node_templates: + myPort6: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + replacement_policy: AUTO + ip_requirements: + - ip_version: 4 + ip_count_required: + is_required: true + floating_ip_count_required: + is_required: false + security_groups: + - get_input: p2 + fixed_ips: + - ip_address: + get_input: + - myIPs + - 0 + mac_requirements: + mac_count_required: + is_required: false + network: + get_input: net + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: myNovaServer3 + relationship: tosca.relationships.network.BindsTo + myPort5: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + replacement_policy: AUTO + ip_requirements: + - ip_version: 4 + ip_count_required: + is_required: true + floating_ip_count_required: + is_required: false + security_groups: + - get_input: p1 + fixed_ips: + - ip_address: + get_input: + - myIPs + - 0 + mac_requirements: + mac_count_required: + is_required: false + network: + get_input: net + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: myNovaServer3 + relationship: tosca.relationships.network.BindsTo + myNovaServer1: + type: org.openecomp.resource.vfc.nodes.heat.myNovaServer1 + properties: + flavor: + get_input: flavor + availability_zone: + get_input: availability_zone_1 + image: + get_input: image + name: + get_input: + - names + - 0 + myNovaServer2: + type: org.openecomp.resource.vfc.nodes.heat.myNovaServer2 + properties: + flavor: + get_input: flavor + availability_zone: + get_input: availability_zone_1 + image: + get_input: image + name: + get_input: + - names + - 0 + myPort2: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + replacement_policy: AUTO + ip_requirements: + - ip_version: 4 + ip_count_required: + is_required: true + floating_ip_count_required: + is_required: false + security_groups: + - get_input: p2 + fixed_ips: + - ip_address: + get_input: + - myIPs + - 0 + mac_requirements: + mac_count_required: + is_required: false + network: + get_input: net + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: myNovaServer1 + relationship: tosca.relationships.network.BindsTo + myNovaServer3: + type: org.openecomp.resource.vfc.nodes.heat.myNovaServer3 + properties: + flavor: + get_input: flavor + availability_zone: + get_input: availability_zone_1 + image: + get_input: image + name: + get_input: + - names + - 0 + myPort1: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + replacement_policy: AUTO + ip_requirements: + - ip_version: 4 + ip_count_required: + is_required: true + floating_ip_count_required: + is_required: false + security_groups: + - get_input: p1 + fixed_ips: + - ip_address: + get_input: + - myIPs + - 0 + mac_requirements: + mac_count_required: + is_required: false + network: + get_input: net + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: myNovaServer1 + relationship: tosca.relationships.network.BindsTo + myPort4: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + replacement_policy: AUTO + ip_requirements: + - ip_version: 4 + ip_count_required: + is_required: true + floating_ip_count_required: + is_required: false + security_groups: + - get_input: p2 + fixed_ips: + - ip_address: + get_input: + - myIPs + - 0 + mac_requirements: + mac_count_required: + is_required: false + network: + get_input: net + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: myNovaServer2 + relationship: tosca.relationships.network.BindsTo + myPort3: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + replacement_policy: AUTO + ip_requirements: + - ip_version: 4 + ip_count_required: + is_required: true + floating_ip_count_required: + is_required: false + security_groups: + - get_input: p1 + fixed_ips: + - ip_address: + get_input: + - myIPs + - 0 + mac_requirements: + mac_count_required: + is_required: false + network: + get_input: net + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: myNovaServer2 + relationship: tosca.relationships.network.BindsTo + groups: + main_group: + type: org.openecomp.groups.heat.HeatStack + properties: + heat_file: ../Artifacts/main.yml + description: cmaui server template for vMMSC + members: + - myPort6 + - myPort5 + - myNovaServer1 + - myNovaServer2 + - myPort2 + - myNovaServer3 + - myPort1 + - myPort4 + - myPort3 + SVCgroup1_simpleGroup1_group: + type: tosca.groups.Root + members: + - myNovaServer1 + - myNovaServer2 + SVCgroup3_complexTwoGroups_group: + type: tosca.groups.Root + members: + - SVCgroup1_simpleGroup1_group + - SVCgroup2_group + SVCgroup2_group: + type: tosca.groups.Root + members: + - myNovaServer3 + policies: + SVCgroup2_policy: + type: org.openecomp.policies.placement.valet.Affinity + properties: + level: host + targets: + - SVCgroup2_group + SVCgroup1_policy: + type: org.openecomp.policies.placement.valet.Affinity + properties: + level: host + targets: + - SVCgroup1_simpleGroup1_group + SVCgroup3_policy: + type: org.openecomp.policies.placement.valet.Affinity + properties: + level: host + targets: + - SVCgroup3_complexTwoGroups_group
\ No newline at end of file diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/complexTwoGroups/inputfiles/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/complexTwoGroups/inputfiles/MANIFEST.json new file mode 100644 index 0000000000..539e26b7ab --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/complexTwoGroups/inputfiles/MANIFEST.json @@ -0,0 +1,12 @@ +{ + "name": "vMME_Small", + "description": "HOT template to create 2 cinder volume attachment", + "version": "2013-05-23", + "data": [ + { + "file": "main.yml", + "type": "HEAT", + "isBase": "true" + } + ] +} diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/complexTwoGroups/inputfiles/main.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/complexTwoGroups/inputfiles/main.yml new file mode 100644 index 0000000000..14f2659d40 --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/complexTwoGroups/inputfiles/main.yml @@ -0,0 +1,132 @@ +heat_template_version: 2013-05-23 + +description: cmaui server template for vMMSC + +parameters: + net: + type: string + description: UID of network + p1: + type: string + description: p1 + p2: + type: string + description: p2 + myIPs: + type: string + description: ip1 + availability_zone_1: + type: string + description: myAvailability_zone_1 + names: + type: string + image: + type: string + flavor: + type: string +resources: + + myNovaServer1: + type: OS::Nova::Server + properties: + name: { get_param: [names, 0]} + image: { get_param: image } + availability_zone: { get_param: availability_zone_1 } + flavor: { get_param: flavor } + networks: + - port: { get_resource: myPort1 } + - port: { get_resource: myPort2 } + + + myNovaServer2: + type: OS::Nova::Server + properties: + name: { get_param: [names, 0]} + image: { get_param: image } + availability_zone: { get_param: availability_zone_1 } + flavor: { get_param: flavor } + networks: + - port: { get_resource: myPort3 } + - port: { get_resource: myPort4 } + + myNovaServer3: + type: OS::Nova::Server + properties: + name: { get_param: [names, 0]} + image: { get_param: image } + availability_zone: { get_param: availability_zone_1 } + flavor: { get_param: flavor } + networks: + - port: { get_resource: myPort5 } + - port: { get_resource: myPort6 } + myPort1: + type: OS::Neutron::Port + properties: + network: { get_param: net } + fixed_ips: [{"ip_address": {get_param: [myIPs, 0]}}] + security_groups: [{get_param: p1}] + replacement_policy: AUTO + + myPort2: + type: OS::Neutron::Port + properties: + network: { get_param: net } + fixed_ips: [{"ip_address": {get_param: [myIPs, 0]}}] + security_groups: [{get_param: p2}] + replacement_policy: AUTO + + myPort3: + type: OS::Neutron::Port + properties: + network: { get_param: net } + fixed_ips: [{"ip_address": {get_param: [myIPs, 0]}}] + security_groups: [{get_param: p1}] + replacement_policy: AUTO + + myPort4: + type: OS::Neutron::Port + properties: + network: { get_param: net } + fixed_ips: [{"ip_address": {get_param: [myIPs, 0]}}] + security_groups: [{get_param: p2}] + replacement_policy: AUTO + myPort5: + type: OS::Neutron::Port + properties: + network: { get_param: net } + fixed_ips: [{"ip_address": {get_param: [myIPs, 0]}}] + security_groups: [{get_param: p1}] + replacement_policy: AUTO + + myPort6: + type: OS::Neutron::Port + properties: + network: { get_param: net } + fixed_ips: [{"ip_address": {get_param: [myIPs, 0]}}] + security_groups: [{get_param: p2}] + replacement_policy: AUTO + SVCgroup1: + type: ATT::Valet::GroupAssignment + properties: + group_type: affinity + group_name: simpleGroup1 + level: host + resources: + - { get_resource: myNovaServer1} + - { get_resource: myNovaServer2} + SVCgroup2: + type: ATT::Valet::GroupAssignment + properties: + group_type: affinity + level: host + resources: + - { get_resource: myNovaServer3} + SVCgroup3: + type: ATT::Valet::GroupAssignment + properties: + group_type: affinity + group_name: complexTwoGroups + level: host + resources: + - { get_resource: SVCgroup1} + - { get_resource: SVCgroup2}
\ No newline at end of file diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/dynamicGroup/expectedoutputfiles/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/dynamicGroup/expectedoutputfiles/MainServiceTemplate.yaml new file mode 100644 index 0000000000..9ceb3f0ab7 --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/dynamicGroup/expectedoutputfiles/MainServiceTemplate.yaml @@ -0,0 +1,202 @@ +tosca_definitions_version: tosca_simple_yaml_1_0_0 +metadata: + template_name: Main +imports: +- openecomp_heat_index: + file: openecomp-heat/_index.yml +node_types: + org.openecomp.resource.vfc.nodes.heat.myNovaServer2: + derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server + org.openecomp.resource.vfc.nodes.heat.myNovaServer1: + derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server +topology_template: + inputs: + flavor: + hidden: false + immutable: false + type: string + p1: + hidden: false + immutable: false + type: string + description: p1 + image: + hidden: false + immutable: false + type: string + p2: + hidden: false + immutable: false + type: string + description: p2 + names: + hidden: false + immutable: false + type: string + group_name: + hidden: false + immutable: false + type: string + myIPs: + hidden: false + immutable: false + type: string + description: ip1 + availability_zone_1: + hidden: false + immutable: false + type: string + description: myAvailability_zone_1 + net: + hidden: false + immutable: false + type: string + description: UID of network + node_templates: + myNovaServer1: + type: org.openecomp.resource.vfc.nodes.heat.myNovaServer1 + properties: + flavor: + get_input: flavor + availability_zone: + get_input: availability_zone_1 + image: + get_input: image + name: + get_input: + - names + - 0 + myNovaServer2: + type: org.openecomp.resource.vfc.nodes.heat.myNovaServer2 + properties: + flavor: + get_input: flavor + availability_zone: + get_input: availability_zone_1 + image: + get_input: image + name: + get_input: + - names + - 0 + myPort2: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + replacement_policy: AUTO + ip_requirements: + - ip_version: 4 + ip_count_required: + is_required: true + floating_ip_count_required: + is_required: false + security_groups: + - get_input: p2 + fixed_ips: + - ip_address: + get_input: + - myIPs + - 0 + mac_requirements: + mac_count_required: + is_required: false + network: + get_input: net + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: myNovaServer1 + relationship: tosca.relationships.network.BindsTo + myPort1: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + replacement_policy: AUTO + ip_requirements: + - ip_version: 4 + ip_count_required: + is_required: true + floating_ip_count_required: + is_required: false + security_groups: + - get_input: p1 + fixed_ips: + - ip_address: + get_input: + - myIPs + - 0 + mac_requirements: + mac_count_required: + is_required: false + network: + get_input: net + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: myNovaServer1 + relationship: tosca.relationships.network.BindsTo + myPort4: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + replacement_policy: AUTO + ip_requirements: + - ip_version: 4 + ip_count_required: + is_required: true + floating_ip_count_required: + is_required: false + security_groups: + - get_input: p2 + fixed_ips: + - ip_address: + get_input: + - myIPs + - 0 + mac_requirements: + mac_count_required: + is_required: false + network: + get_input: net + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: myNovaServer2 + relationship: tosca.relationships.network.BindsTo + myPort3: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + replacement_policy: AUTO + ip_requirements: + - ip_version: 4 + ip_count_required: + is_required: true + floating_ip_count_required: + is_required: false + security_groups: + - get_input: p1 + fixed_ips: + - ip_address: + get_input: + - myIPs + - 0 + mac_requirements: + mac_count_required: + is_required: false + network: + get_input: net + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: myNovaServer2 + relationship: tosca.relationships.network.BindsTo + groups: + main_group: + type: org.openecomp.groups.heat.HeatStack + properties: + heat_file: ../Artifacts/main.yml + description: cmaui server template for vMMSC + members: + - myNovaServer1 + - myNovaServer2 + - myPort2 + - myPort1 + - myPort4 + - myPort3
\ No newline at end of file diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/dynamicGroup/inputfiles/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/dynamicGroup/inputfiles/MANIFEST.json new file mode 100644 index 0000000000..539e26b7ab --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/dynamicGroup/inputfiles/MANIFEST.json @@ -0,0 +1,12 @@ +{ + "name": "vMME_Small", + "description": "HOT template to create 2 cinder volume attachment", + "version": "2013-05-23", + "data": [ + { + "file": "main.yml", + "type": "HEAT", + "isBase": "true" + } + ] +} diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/dynamicGroup/inputfiles/main.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/dynamicGroup/inputfiles/main.yml new file mode 100644 index 0000000000..0117d4b87c --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/dynamicGroup/inputfiles/main.yml @@ -0,0 +1,111 @@ +heat_template_version: 2013-05-23 + +description: cmaui server template for vMMSC + +parameters: + net: + type: string + description: UID of network + p1: + type: string + description: p1 + p2: + type: string + description: p2 + myIPs: + type: string + description: ip1 + availability_zone_1: + type: string + description: myAvailability_zone_1 + names: + type: string + image: + type: string + flavor: + type: string + group_name: + type: string +resources: + + myNovaServer1: + type: OS::Nova::Server + properties: + name: { get_param: [names, 0]} + image: { get_param: image } + availability_zone: { get_param: availability_zone_1 } + flavor: { get_param: flavor } + networks: + - port: { get_resource: myPort1 } + - port: { get_resource: myPort2 } + + + myNovaServer2: + type: OS::Nova::Server + properties: + name: { get_param: [names, 0]} + image: { get_param: image } + availability_zone: { get_param: availability_zone_1 } + flavor: { get_param: flavor } + networks: + - port: { get_resource: myPort3 } + - port: { get_resource: myPort4 } + + myPort1: + type: OS::Neutron::Port + properties: + network: { get_param: net } + fixed_ips: [{"ip_address": {get_param: [myIPs, 0]}}] + security_groups: [{get_param: p1}] + replacement_policy: AUTO + + myPort2: + type: OS::Neutron::Port + properties: + network: { get_param: net } + fixed_ips: [{"ip_address": {get_param: [myIPs, 0]}}] + security_groups: [{get_param: p2}] + replacement_policy: AUTO + + myPort3: + type: OS::Neutron::Port + properties: + network: { get_param: net } + fixed_ips: [{"ip_address": {get_param: [myIPs, 0]}}] + security_groups: [{get_param: p1}] + replacement_policy: AUTO + + myPort4: + type: OS::Neutron::Port + properties: + network: { get_param: net } + fixed_ips: [{"ip_address": {get_param: [myIPs, 0]}}] + security_groups: [{get_param: p2}] + replacement_policy: AUTO + SVCgroup1: + type: ATT::Valet::GroupAssignment + properties: + group_type: { get_param: group_name} + group_name: simpleGroup + level: host + resources: + - { get_resource: myNovaServer1} + - { get_resource: myNovaServer2} + SVCgroup2: + type: ATT::Valet::GroupAssignment + properties: + group_type: 2 + group_name: simpleGroup + level: host + resources: + - { get_resource: myNovaServer1} + - { get_resource: myNovaServer2} + SVCgroup3: + type: ATT::Valet::GroupAssignment + properties: + group_type: { get_attr: [myPort4, show ]} + group_name: simpleGroup + level: host + resources: + - { get_resource: myNovaServer1} + - { get_resource: myNovaServer2} diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/groupNameParameter/expectedoutputfiles/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/groupNameParameter/expectedoutputfiles/MainServiceTemplate.yaml new file mode 100644 index 0000000000..ced6638077 --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/groupNameParameter/expectedoutputfiles/MainServiceTemplate.yaml @@ -0,0 +1,610 @@ +tosca_definitions_version: tosca_simple_yaml_1_0_0 +metadata: + template_name: Main +imports: +- openecomp_heat_index: + file: openecomp-heat/_index.yml +node_types: + org.openecomp.resource.vfc.nodes.heat.vipr_atm: + derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server +topology_template: + inputs: + vf_module_id: + hidden: false + immutable: false + type: string + description: Unique ID for the VF Module instance + default: '5678' + constraints: + - max_length: 255 + - min_length: 1 + vipr_atm_ha_two_id: + hidden: false + immutable: false + type: string + description: Neutron UUID of the second high availability network for the vIPR-ATM firewal + default: b75e27cf-452f-48ef-b107-8777e645c22d + constraints: [ + ] + vipr_atm_oam_net_security_groups: + hidden: false + immutable: false + type: list + description: List of the security group to apply to the vIPR-ATM firewall management port + default: + - c2369210-d154-4e4a-984d-047674beb5da + entry_schema: + type: string + vipr_atm_valet_eg_0: + hidden: false + immutable: false + type: string + description: The Valet 1.0 Exclusivity Group for the vIPR-ATM firewall virtual machine + default: CORE_INFRASTRUCTURE_VNFs + constraints: + - max_length: 255 + - min_length: 1 + vipr_atm_name_0: + hidden: false + immutable: false + type: string + description: Name of the vIPR-ATM firewall virtual machine + default: zrcs1cctvpr001 + constraints: + - max_length: 255 + - min_length: 1 + vipr_atm_image_name: + hidden: false + immutable: false + type: string + description: Image name of the vIPR-ATM firewall virtual machine + default: vipr-atm-pan7.1 + constraints: [ + ] + vnf_name: + hidden: false + immutable: false + type: string + description: Unique Name for this VF instance + default: RD3TX100vfw + constraints: + - max_length: 255 + - min_length: 1 + vipr_atm_service_left_fqdn: + hidden: false + immutable: false + type: string + description: FQDN of the Left service network for the vIPR-ATM firewall + default: default-domain:vIPR-ATM:vIPR-ATM-service-left + constraints: + - pattern: ^(?:[^:]{1,64}:){2}(?:[^:]{1,255})$ + vipr_atm_ha_one_ip_0: + hidden: false + immutable: false + type: string + description: Fixed IP to apply to the vIPR-ATM firewall ha0 port + default: 192.168.35.1 + constraints: + - pattern: ^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$ + vipr_atm_ha_one_id: + hidden: false + immutable: false + type: string + description: Neutron UUID of the first high availability network for the vIPR-ATM firewall + default: 4abaafc8-b8af-40b9-b0d0-32bd91f958ee + constraints: [ + ] + vnf_id: + hidden: false + immutable: false + type: string + description: Unique ID for this VF instance + default: '1234' + constraints: + - max_length: 255 + - min_length: 1 + vipr_atm_flavor_name: + hidden: false + immutable: false + type: string + description: Flavor for the vIPR-ATM firewall virtual machine + default: m1.vipr-atm-pan + constraints: [ + ] + availability_zone_0: + hidden: false + immutable: false + type: string + description: Availability Zone for the vIPR-ATM firewall virtual machine + default: nova + constraints: + - max_length: 255 + - min_length: 1 + vipr_atm_server_group: + hidden: false + immutable: false + type: string + description: Server Group with anti-affinity policy for the vIPR-ATM firewall virtual machine + default: 885dbf7f-fcb2-42d2-a694-a5930ce35b71 + constraints: + - max_length: 255 + - min_length: 1 + vipr_atm_service_left_ip_prefix: + hidden: false + immutable: false + type: string + description: Left vIPR-ATM service network IP address prefix + default: 10.254.3.0 + constraints: + - pattern: ^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$ + vipr_atm_ha_one_cidr: + hidden: false + immutable: false + type: string + description: vIPR-ATM private High Availability Network One IP address CIDR + default: 192.168.35.0/29 + constraints: + - pattern: ^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\/(?:3[0-2]|[12]?[0-9])$ + vipr_atm_service_right_fqdn: + hidden: false + immutable: false + type: string + description: FQDN of the Right service network for the vIPR-ATM firewall + default: default-domain:vIPR-ATM:vIPR-ATM-service-right + constraints: + - pattern: ^(?:[^:]{1,64}:){2}(?:[^:]{1,255})$ + vipr_atm_service_right_ip_prefix_len: + hidden: false + immutable: false + type: float + description: Right vIPR-ATM service network IP address prefix length + default: 24 + constraints: + - in_range: + - 0 + - 32 + vipr_atm_ha_two_ip_0: + hidden: false + immutable: false + type: string + description: Fixed IP to apply to the vIPR-ATM firewall ha1 port + default: 192.168.35.9 + constraints: + - pattern: ^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$ + vipr_atm_ha_two_cidr: + hidden: false + immutable: false + type: string + description: vIPR-ATM private High Availability Network Two IP address CIDR + default: 192.168.35.8/29 + constraints: + - pattern: ^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\/(?:3[0-2]|[12]?[0-9])$ + oam_net_id: + hidden: false + immutable: false + type: string + description: Neutron UUID for the managemnet network name of the vIPR-ATM firewall + default: 1ac9d738-f545-413a-a9a2-b44309edc511 + constraints: [ + ] + vipr_atm_service_right_ip_prefix: + hidden: false + immutable: false + type: string + description: Right vIPR-ATM service network IP address prefix + default: 10.254.4.0 + constraints: + - pattern: ^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$ + vipr_atm_service_left_ip_prefix_len: + hidden: false + immutable: false + type: float + description: Left vIPR-ATM service network IP address prefix length + default: 24 + constraints: + - in_range: + - 0 + - 32 + vipr_atm_contrail_service_instance_fqdn: + hidden: false + immutable: false + type: string + description: FQDN of the vIPR-ATM firewall Contrail service instance for the port tuple + default: default-domain:vIPR-ATM:vIPR-ATM-service-instance + constraints: + - pattern: ^(?:[^:]{1,64}:){2}(?:[^:]{1,255})$ + vipr_atm_ha_two_security_groups: + hidden: false + immutable: false + type: list + description: List of the security group to apply to the vIPR-ATM firewall ha1 port + default: + - 29e29a4a-b45d-42c2-ac14-b12a70036ae6 + entry_schema: + type: string + vipr_atm_ha_one_security_groups: + hidden: false + immutable: false + type: list + description: List of the security group to apply to the vIPR-ATM firewall ha0 port + default: + - cbf8049e-69e8-48c3-a06f-255634391403 + entry_schema: + type: string + node_templates: + vIPR_ATM_OAM_SG: + type: org.openecomp.resource.vfc.rules.nodes.heat.network.neutron.SecurityRules + properties: + name: + str_replace: + template: VNF_NAME_VIPR_ATM_OAM_SG + params: + VNF_NAME: + get_input: vnf_name + rules: + - protocol: tcp + remote_ip_prefix: 0.0.0.0/0 + port_range_max: 22 + port_range_min: 22 + - protocol: tcp + remote_ip_prefix: 0.0.0.0/0 + port_range_max: 443 + port_range_min: 443 + - protocol: tcp + remote_ip_prefix: 0.0.0.0/0 + port_range_max: 3978 + port_range_min: 3978 + - protocol: icmp + remote_ip_prefix: 0.0.0.0/0 + vIPR_ATM_Left_RVMI: + type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface + properties: + name: + str_replace: + template: VM_NAME_PORT_3 + params: + VM_NAME: + get_input: vipr_atm_name_0 + virtual_network_refs: + - get_input: vipr_atm_service_left_fqdn + virtual_machine_interface_properties: + service_interface_type: left + port_tuple_refs: + - UNSUPPORTED_RESOURCE_vIPR_ATM_RPT + requirements: + - link: + capability: tosca.capabilities.network.Linkable + node: vIPR_ATM_Service_Left + relationship: tosca.relationships.network.LinksTo + - binding: + capability: tosca.capabilities.network.Bindable + node: vIPR_ATM_Firewall + relationship: tosca.relationships.network.BindsTo + vIPR_ATM_Service_Right: + type: org.openecomp.resource.vl.nodes.heat.network.contrailV2.VirtualNetwork + properties: + network_ipam_refs_data: + - network_ipam_refs_data_ipam_subnets: + - network_ipam_refs_data_ipam_subnets_subnet: + network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len: + get_input: vipr_atm_service_right_ip_prefix_len + network_ipam_refs_data_ipam_subnets_subnet_ip_prefix: + get_input: vipr_atm_service_right_ip_prefix + network_name: + str_replace: + template: VNF_NAME_VIPR_ATM_SERVICE_RIGHT_NETWORK + params: + VNF_NAME: + get_input: vnf_name + network_ipam_refs: + - default-domain:default-project:default-network-ipam + vIPR_ATM_Ha_Two: + type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net + properties: + dhcp_enabled: false + network_name: + str_replace: + template: VNF_NAME_VIPR_ATM_HA_TWO_NETWORK + params: + VNF_NAME: + get_input: vnf_name + subnets: + vIPR_ATM_Ha_Two_Subnet: + enable_dhcp: false + name: + str_replace: + template: NET_NAME_SUBNET + params: + NET_NAME: + get_attribute: + - vIPR_ATM_Ha_Two + - network_name + cidr: + get_input: vipr_atm_ha_two_cidr + requirements: + - dependency: + capability: tosca.capabilities.Node + node: vIPR_ATM_Ha_Two + relationship: tosca.relationships.DependsOn + vIPR_ATM_HA_TWO_SG: + type: org.openecomp.resource.vfc.rules.nodes.heat.network.neutron.SecurityRules + properties: + name: + str_replace: + template: VNF_NAME_VIPR_ATM_HA_TWO_SG + params: + VNF_NAME: + get_input: vnf_name + rules: + - remote_mode: remote_group_id + vIPR_ATM_HA_ONE_SG: + type: org.openecomp.resource.vfc.rules.nodes.heat.network.neutron.SecurityRules + properties: + name: + str_replace: + template: VNF_NAME_VIPR_ATM_HA_ONE_SG + params: + VNF_NAME: + get_input: vnf_name + rules: + - remote_mode: remote_group_id + vIPR_ATM_Ha_One: + type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net + properties: + dhcp_enabled: false + network_name: + str_replace: + template: VNF_NAME_VIPR_ATM_HA_ONE_NETWORK + params: + VNF_NAME: + get_input: vnf_name + subnets: + vIPR_ATM_Ha_One_Subnet: + enable_dhcp: false + name: + str_replace: + template: NET_NAME_SUBNET + params: + NET_NAME: + get_attribute: + - vIPR_ATM_Ha_One + - network_name + cidr: + get_input: vipr_atm_ha_one_cidr + requirements: + - dependency: + capability: tosca.capabilities.Node + node: vIPR_ATM_Ha_One + relationship: tosca.relationships.DependsOn + vIPR_ATM_OAM_0_Port: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + ip_requirements: + - ip_version: 4 + ip_count_required: + is_required: false + floating_ip_count_required: + is_required: false + security_groups: + get_input: vipr_atm_oam_net_security_groups + mac_requirements: + mac_count_required: + is_required: false + name: + str_replace: + template: VM_NAME_PORT_0 + params: + VM_NAME: + get_input: vipr_atm_name_0 + network_role_tag: oam + network: + get_input: oam_net_id + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: vIPR_ATM_Firewall + relationship: tosca.relationships.network.BindsTo + vIPR_ATM_Service_Left: + type: org.openecomp.resource.vl.nodes.heat.network.contrailV2.VirtualNetwork + properties: + network_ipam_refs_data: + - network_ipam_refs_data_ipam_subnets: + - network_ipam_refs_data_ipam_subnets_subnet: + network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len: + get_input: vipr_atm_service_left_ip_prefix_len + network_ipam_refs_data_ipam_subnets_subnet_ip_prefix: + get_input: vipr_atm_service_left_ip_prefix + network_name: + str_replace: + template: VNF_NAME_VIPR_ATM_SERVICE_LEFT_NETWORK + params: + VNF_NAME: + get_input: vnf_name + network_ipam_refs: + - default-domain:default-project:default-network-ipam + vIPR_ATM_Right_RVMI: + type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface + properties: + name: + str_replace: + template: VM_NAME_PORT_4 + params: + VM_NAME: + get_input: vipr_atm_name_0 + virtual_network_refs: + - get_input: vipr_atm_service_right_fqdn + virtual_machine_interface_properties: + service_interface_type: right + port_tuple_refs: + - UNSUPPORTED_RESOURCE_vIPR_ATM_RPT + requirements: + - link: + capability: tosca.capabilities.network.Linkable + node: vIPR_ATM_Service_Right + relationship: tosca.relationships.network.LinksTo + - binding: + capability: tosca.capabilities.network.Bindable + node: vIPR_ATM_Firewall + relationship: tosca.relationships.network.BindsTo + vIPR_ATM_Ha_Two_0_Port: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + ip_requirements: + - ip_version: 4 + ip_count_required: + is_required: true + floating_ip_count_required: + is_required: false + security_groups: + get_input: vipr_atm_ha_two_security_groups + fixed_ips: + - ip_address: + get_input: vipr_atm_ha_two_ip_0 + mac_requirements: + mac_count_required: + is_required: false + name: + str_replace: + template: VM_NAME_PORT_2 + params: + VM_NAME: + get_input: vipr_atm_name_0 + network: + get_input: vipr_atm_ha_two_id + requirements: + - link: + capability: tosca.capabilities.network.Linkable + node: vIPR_ATM_Ha_Two + relationship: tosca.relationships.network.LinksTo + - binding: + capability: tosca.capabilities.network.Bindable + node: vIPR_ATM_Firewall + relationship: tosca.relationships.network.BindsTo + vIPR_ATM_Firewall: + type: org.openecomp.resource.vfc.nodes.heat.vipr_atm + properties: + flavor: + get_input: vipr_atm_flavor_name + availability_zone: + get_input: availability_zone_0 + image: + get_input: vipr_atm_image_name + metadata: + vf_module_id: + get_input: vf_module_id + vnf_id: + get_input: vnf_id + vnf_name: + get_input: vnf_name + contrail_service_instance_ind: true + name: + get_input: vipr_atm_name_0 + scheduler_hints: + group: + get_input: vipr_atm_server_group + vIPR_ATM_Ha_One_0_Port: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + ip_requirements: + - ip_version: 4 + ip_count_required: + is_required: true + floating_ip_count_required: + is_required: false + security_groups: + get_input: vipr_atm_ha_one_security_groups + fixed_ips: + - ip_address: + get_input: vipr_atm_ha_one_ip_0 + mac_requirements: + mac_count_required: + is_required: false + name: + str_replace: + template: VM_NAME_PORT_1 + params: + VM_NAME: + get_input: vipr_atm_name_0 + network: + get_input: vipr_atm_ha_one_id + requirements: + - link: + capability: tosca.capabilities.network.Linkable + node: vIPR_ATM_Ha_One + relationship: tosca.relationships.network.LinksTo + - binding: + capability: tosca.capabilities.network.Bindable + node: vIPR_ATM_Firewall + relationship: tosca.relationships.network.BindsTo + groups: + vIPR_ATM_Server_Group_group: + type: tosca.groups.Root + members: + - vIPR_ATM_Firewall + vIPR-ATM-Base_group: + type: org.openecomp.groups.heat.HeatStack + properties: + heat_file: ../Artifacts/vIPR-ATM-Base.yaml + description: "HOT template to create the vIPR-ATM firwall service template\ + \ and instance. This template creates the following - Two service virtual\ + \ networks for each side (left and right) of the vIPR-ATM firewalls - Two\ + \ virtual networks for high availability between the vIPR-ATM firewalls\ + \ - A Contrail Service Template for the vIPR-ATM service - A Contrail Service\ + \ Instance for the vIPR-ATM service\nThe firewall virtual machines connected\ + \ to these created networks and managed by the vIPR-ATM service instance\ + \ will be created by the vIPR-ATM-Instance.yaml HOT template.\nNetwork Policy\ + \ that includes the vIPR-ATM service instance will be created by client\ + \ specific HOT templates or Contrail APIs. \n" + members: + - vIPR_ATM_Ha_One + - vIPR_ATM_OAM_SG + - vIPR_ATM_Service_Left + - vIPR_ATM_Service_Right + - vIPR_ATM_Ha_Two + - vIPR_ATM_HA_TWO_SG + - vIPR_ATM_HA_ONE_SG + vIPR_ATM_Valet_EG_0_group: + type: tosca.groups.Root + members: + - vIPR_ATM_Firewall + vIPR-ATM-Instance_group: + type: org.openecomp.groups.heat.HeatStack + properties: + heat_file: ../Artifacts/vIPR-ATM-Instance.yaml + description: | + HOT template to create a vIPR-ATM firwall service instance. This template creates the following - Contrail Port Tuple for this firwall service instance - Virtual machine interfaces and IP addresses attached to the two service virtual networks. These virtual machine interfaces will be used by the vIPR firewall service instance - Neutron ports for OAM, HA0, and HA1 networks - OS::Nova::Server with the created virtual machine interface and ports. This is the firewall service instance virtual machine. + members: + - vIPR_ATM_Left_RVMI + - vIPR_ATM_OAM_0_Port + - vIPR_ATM_Right_RVMI + - vIPR_ATM_Ha_Two_0_Port + - vIPR_ATM_Firewall + - vIPR_ATM_Ha_One_0_Port + outputs: + vipr_atm_contrail_service_instance_fqdn: + description: The FQDN for the Contrail Service Instance that is needed to create tenant OAM network policy to service change through the vIPR-ATM firewall. + value: + list_join: + - ':' + - get_attr: + - vIPR_ATM_Service_Instance + - fq_name + policies: + vIPR_ATM_Valet_EG_0_policy: + type: org.openecomp.policies.placement.valet.Exclusivity + properties: + level: host + targets: + - vIPR_ATM_Valet_EG_0_group + vIPR_ATM_Server_Group_policy: + type: org.openecomp.policies.placement.Antilocate + properties: + name: + str_replace: + template: VNF_NAME_VIPR_ATM_SERVER_GROUP + params: + VNF_NAME: + get_input: vnf_name + container_type: host + targets: + - vIPR_ATM_Server_Group_group
\ No newline at end of file diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/groupNameParameter/inputfiles/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/groupNameParameter/inputfiles/MANIFEST.json new file mode 100644 index 0000000000..96b8ed1d27 --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/groupNameParameter/inputfiles/MANIFEST.json @@ -0,0 +1,28 @@ +{ + "name": "vIPR", + "description": "HOT template to create vIPR", + "data": [ + { + "file": "vIPR-ATM-Base.yaml", + "type": "HEAT", + "isBase": "true", + "data": [ + { + "file": "vIPR-ATM-Base.env", + "type": "HEAT_ENV" + } + ] + }, + { + "file": "vIPR-ATM-Instance.yaml", + "type": "HEAT", + "isBase": "false", + "data": [ + { + "file": "vIPR-ATM-Instance.env", + "type": "HEAT_ENV" + } + ] + } + ] +}
\ No newline at end of file diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/groupNameParameter/inputfiles/vIPR-ATM-Base.env b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/groupNameParameter/inputfiles/vIPR-ATM-Base.env new file mode 100644 index 0000000000..acf1ac5d03 --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/groupNameParameter/inputfiles/vIPR-ATM-Base.env @@ -0,0 +1,14 @@ +parameters: + vipr_atm_service_left_ip_prefix: 10.254.3.0 + vipr_atm_service_left_ip_prefix_len: 24 + + vipr_atm_service_right_ip_prefix: 10.254.4.0 + vipr_atm_service_right_ip_prefix_len: 24 + + vipr_atm_ha_one_cidr: 192.168.35.0/29 + vipr_atm_ha_two_cidr: 192.168.35.8/29 + + vnf_id: '1234' + vnf_name: 'RD3TX100vfw' + vf_module_id: '5678' + diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/groupNameParameter/inputfiles/vIPR-ATM-Base.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/groupNameParameter/inputfiles/vIPR-ATM-Base.yaml new file mode 100644 index 0000000000..fd70465878 --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/groupNameParameter/inputfiles/vIPR-ATM-Base.yaml @@ -0,0 +1,318 @@ +heat_template_version: 2015-04-30 + +description: > + HOT template to create the vIPR-ATM firwall service template and instance. + This template creates the following + - Two service virtual networks for each side (left and right) of the vIPR-ATM firewalls + - Two virtual networks for high availability between the vIPR-ATM firewalls + - A Contrail Service Template for the vIPR-ATM service + - A Contrail Service Instance for the vIPR-ATM service + + The firewall virtual machines connected to these created networks and managed by the + vIPR-ATM service instance will be created by the vIPR-ATM-Instance.yaml HOT template. + + Network Policy that includes the vIPR-ATM service instance will be created by client + specific HOT templates or Contrail APIs. + +parameters: + vipr_atm_service_left_ip_prefix: + type: string + constraints: + - allowed_pattern: ^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$ + description: A valid IPv4 dot quad IP address. + description: Left vIPR-ATM service network IP address prefix + vipr_atm_service_left_ip_prefix_len: + type: number + constraints: + - range: { min: 0, max: 32 } + description: a valid IPv4 prefix value from 0 to 32. + description: Left vIPR-ATM service network IP address prefix length + + vipr_atm_service_right_ip_prefix: + type: string + constraints: + - allowed_pattern: ^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$ + description: A valid IPv4 dot quad IP address. + description: Right vIPR-ATM service network IP address prefix + vipr_atm_service_right_ip_prefix_len: + type: number + constraints: + - range: { min: 0, max: 32 } + description: a valid IPv4 prefix value from 0 to 32. + description: Right vIPR-ATM service network IP address prefix length + + vipr_atm_ha_one_cidr: + type: string + constraints: + - allowed_pattern: ^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\/(?:3[0-2]|[12]?[0-9])$ + description: A valid IPv4 CIDR (dot quad IP address / previx value 0 to 32). + description: vIPR-ATM private High Availability Network One IP address CIDR + + vipr_atm_ha_two_cidr: + type: string + constraints: + - allowed_pattern: ^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\/(?:3[0-2]|[12]?[0-9])$ + description: A valid IPv4 CIDR (dot quad IP address / previx value 0 to 32). + description: vIPR-ATM private High Availability Network Two IP address CIDR + + vnf_id: + type: string + description: Unique ID for this VNF instance + vnf_name: + type: string + description: Unique name for this VNF instance + vf_module_id: + type: string + description: Unique ID for the VF Module instance + +resources: + vIPR_ATM_Service_Left: + type: OS::ContrailV2::VirtualNetwork + properties: + name: + str_replace: + template: VNF_NAME_VIPR_ATM_SERVICE_LEFT_NETWORK + params: + VNF_NAME: { get_param: vnf_name } + network_ipam_refs: ["default-domain:default-project:default-network-ipam"] + network_ipam_refs_data: + [{ + network_ipam_refs_data_ipam_subnets: + [{ + network_ipam_refs_data_ipam_subnets_subnet: + { + network_ipam_refs_data_ipam_subnets_subnet_ip_prefix: + { + get_param: vipr_atm_service_left_ip_prefix + }, + network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len: + { + get_param: vipr_atm_service_left_ip_prefix_len + }, + }, + }] + }] + + vIPR_ATM_Service_Right: + type: OS::ContrailV2::VirtualNetwork + properties: + name: + str_replace: + template: VNF_NAME_VIPR_ATM_SERVICE_RIGHT_NETWORK + params: + VNF_NAME: { get_param: vnf_name } + network_ipam_refs: ["default-domain:default-project:default-network-ipam"] + network_ipam_refs_data: + [{ + network_ipam_refs_data_ipam_subnets: + [{ + network_ipam_refs_data_ipam_subnets_subnet: + { + network_ipam_refs_data_ipam_subnets_subnet_ip_prefix: + { + get_param: vipr_atm_service_right_ip_prefix + }, + network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len: + { + get_param: vipr_atm_service_right_ip_prefix_len + }, + }, + }] + }] + + vIPR_ATM_Ha_One: + type: OS::Neutron::Net + properties: + name: + str_replace: + template: VNF_NAME_VIPR_ATM_HA_ONE_NETWORK + params: + VNF_NAME: { get_param: vnf_name } + + vIPR_ATM_Ha_One_Subnet: + type: OS::Neutron::Subnet + depends_on: + - vIPR_ATM_Ha_One + properties: + name: + str_replace: + template: NET_NAME_SUBNET + params: + NET_NAME: { get_attr: [ vIPR_ATM_Ha_One, name ] } + network: { get_resource: vIPR_ATM_Ha_One } + cidr: { get_param: vipr_atm_ha_one_cidr } + enable_dhcp: False + gateway_ip: null + + vIPR_ATM_Ha_Two: + type: OS::Neutron::Net + properties: + name: + str_replace: + template: VNF_NAME_VIPR_ATM_HA_TWO_NETWORK + params: + VNF_NAME: { get_param: vnf_name } + + vIPR_ATM_Ha_Two_Subnet: + type: OS::Neutron::Subnet + depends_on: + - vIPR_ATM_Ha_Two + properties: + name: + str_replace: + template: NET_NAME_SUBNET + params: + NET_NAME: { get_attr: [ vIPR_ATM_Ha_Two, name ] } + network: { get_resource: vIPR_ATM_Ha_Two } + cidr: { get_param: vipr_atm_ha_two_cidr } + enable_dhcp: False + gateway_ip: null + + vIPR_ATM_Service_Template: + type: OS::ContrailV2::ServiceTemplate + properties: + name: + str_replace: + template: VNF_NAME_VIPR_ATM_SERVICE_TEMPLATE + params: + VNF_NAME: { get_param: vnf_name } + service_template_properties: + { + service_template_properties_version: 2, + service_template_properties_service_mode: transparent, + service_template_properties_service_type: firewall, + service_template_properties_service_virtualization_type: virtual-machine, + service_template_properties_interface_type: + [ + { + service_template_properties_interface_type_service_interface_type: Left, + service_template_properties_interface_type_shared_ip: True, + }, + { + service_template_properties_interface_type_service_interface_type: Right, + service_template_properties_interface_type_shared_ip: True, + } + ], + } + domain: default-domain + + vIPR_ATM_Service_Instance: + type: OS::ContrailV2::ServiceInstance + depends_on: + - vIPR_ATM_Service_Left + - vIPR_ATM_Service_Right + - vIPR_ATM_Service_Template + properties: + name: + str_replace: + template: VNF_NAME_VIPR_ATM_SERVICE_INSTANCE + params: + VNF_NAME: { get_param: vnf_name } + service_template_refs: [{ get_resource: vIPR_ATM_Service_Template }] + service_instance_properties: + { + service_instance_properties_ha_mode: active-active, + service_instance_properties_left_virtual_network: + { + list_join: [':', { get_attr: [ vIPR_ATM_Service_Left, fq_name ] } ] + }, + service_instance_properties_right_virtual_network: + { + list_join: [':', { get_attr: [ vIPR_ATM_Service_Right, fq_name ] } ] + }, + } + + # Management (OAM) Port Security Group to allow ingress SSH + vIPR_ATM_OAM_SG: + type: OS::Neutron::SecurityGroup + properties: + name: + str_replace: + template: VNF_NAME_VIPR_ATM_OAM_SG + params: + VNF_NAME: { get_param: vnf_name } + rules: + - remote_ip_prefix: 0.0.0.0/0 + protocol: tcp + port_range_min: 22 + port_range_max: 22 + - remote_ip_prefix: 0.0.0.0/0 + protocol: tcp + port_range_min: 443 + port_range_max: 443 + - remote_ip_prefix: 0.0.0.0/0 + protocol: tcp + port_range_min: 3978 + port_range_max: 3978 + - remote_ip_prefix: 0.0.0.0/0 + protocol: icmp + + vIPR_ATM_HA_ONE_SG: + type: OS::Neutron::SecurityGroup + properties: + name: + str_replace: + template: VNF_NAME_VIPR_ATM_HA_ONE_SG + params: + VNF_NAME: { get_param: vnf_name } + rules: + - remote_mode: remote_group_id + + vIPR_ATM_HA_TWO_SG: + type: OS::Neutron::SecurityGroup + properties: + name: + str_replace: + template: VNF_NAME_VIPR_ATM_HA_TWO_SG + params: + VNF_NAME: { get_param: vnf_name } + rules: + - remote_mode: remote_group_id + + vIPR_ATM_Server_Group: + type: OS::Nova::ServerGroup + properties: + name: + str_replace: + template: VNF_NAME_VIPR_ATM_SERVER_GROUP + params: + VNF_NAME: { get_param: vnf_name } + policies: + - anti-affinity + +outputs: + vipr_atm_contrail_service_instance_fqdn: + description: The FQDN for the Contrail Service Instance that is needed to create tenant OAM network policy to service change through the vIPR-ATM firewall. + value: { list_join: [':', { get_attr: [ vIPR_ATM_Service_Instance, fq_name ] } ] } + + vipr_atm_service_left_fqdn: + description: The FQDN for the vIPR-ATM Service Left network. + value: { list_join: [':', { get_attr: [ vIPR_ATM_Service_Left, fq_name ] } ] } + + vipr_atm_service_right_fqdn: + description: The FQDN for the vIPR-ATM Service Right network. + value: { list_join: [':', { get_attr: [ vIPR_ATM_Service_Right, fq_name ] } ] } + + vipr_atm_ha_one_id: + description: The UUID for the vIPR-ATM HA One network. + value: { get_resource: vIPR_ATM_Ha_One } + + vipr_atm_ha_two_id: + description: The UUID for the vIPR-ATM HA Two network. + value: { get_resource: vIPR_ATM_Ha_Two } + + vipr_atm_oam_net_security_groups: + description: The list of OpenStack Security Groups to appliy to the vIPR-ATM-Instance\'s OAM network. + value: [ { get_resource: vIPR_ATM_OAM_SG } ] + + vipr_atm_ha_one_security_groups: + description: The list of OpenStack Security Groups to appliy to the vIPR-ATM-Instance\'s HA One network. + value: [ { get_resource: vIPR_ATM_HA_ONE_SG } ] + + vipr_atm_ha_two_security_groups: + description: The list of OpenStack Security Groups to appliy to the vIPR-ATM-Instance\'s HA Two network. + value: [ { get_resource: vIPR_ATM_HA_TWO_SG } ] + + vipr_atm_server_group: + description: The UUID for the vIPR-ATM OpenStack Server Group + value: { get_resource: vIPR_ATM_Server_Group } diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/groupNameParameter/inputfiles/vIPR-ATM-Instance.env b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/groupNameParameter/inputfiles/vIPR-ATM-Instance.env new file mode 100644 index 0000000000..77e8b8630a --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/groupNameParameter/inputfiles/vIPR-ATM-Instance.env @@ -0,0 +1,28 @@ +parameters: + oam_net_id: 1ac9d738-f545-413a-a9a2-b44309edc511 + vipr_atm_oam_net_security_groups: [ "c2369210-d154-4e4a-984d-047674beb5da" ] + + vipr_atm_contrail_service_instance_fqdn: default-domain:vIPR-ATM:vIPR-ATM-service-instance + + vipr_atm_service_left_fqdn: default-domain:vIPR-ATM:vIPR-ATM-service-left + vipr_atm_service_right_fqdn: default-domain:vIPR-ATM:vIPR-ATM-service-right + + vipr_atm_ha_one_id: 4abaafc8-b8af-40b9-b0d0-32bd91f958ee + vipr_atm_ha_one_ip_0: 192.168.35.1 + vipr_atm_ha_one_security_groups: [ "cbf8049e-69e8-48c3-a06f-255634391403" ] + + vipr_atm_ha_two_id: b75e27cf-452f-48ef-b107-8777e645c22d + vipr_atm_ha_two_ip_0: 192.168.35.9 + vipr_atm_ha_two_security_groups: [ "29e29a4a-b45d-42c2-ac14-b12a70036ae6" ] + + vipr_atm_server_group: 885dbf7f-fcb2-42d2-a694-a5930ce35b71 + + vipr_atm_name_0: zrcs1cctvpr001 + vipr_atm_image_name: vipr-atm-pan7.1 + vipr_atm_flavor_name: m1.vipr-atm-pan + vipr_atm_valet_eg_0: CORE_INFRASTRUCTURE_VNFs + availability_zone_0: 'nova' + + vnf_id: '1234' + vnf_name: 'RD3TX100vfw' + vf_module_id: '5678' diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/groupNameParameter/inputfiles/vIPR-ATM-Instance.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/groupNameParameter/inputfiles/vIPR-ATM-Instance.yaml new file mode 100644 index 0000000000..ea3b8ab659 --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/groupNameParameter/inputfiles/vIPR-ATM-Instance.yaml @@ -0,0 +1,299 @@ +heat_template_version: 2015-04-30 + +description: > + HOT template to create a vIPR-ATM firwall service instance. + This template creates the following + - Contrail Port Tuple for this firwall service instance + - Virtual machine interfaces and IP addresses attached to the two + service virtual networks. These virtual machine interfaces will be used + by the vIPR firewall service instance + - Neutron ports for OAM, HA0, and HA1 networks + - OS::Nova::Server with the created virtual machine interface and ports. This + is the firewall service instance virtual machine. + +parameters: + oam_net_id: + type: string + constraints: + - custom_constraint: neutron.network + description: This network must currently exist. + description: Neutron UUID for the managemnet network name of the vIPR-ATM firewall + vipr_atm_oam_net_security_groups: + type: comma_delimited_list + description: List of the security group to apply to the vIPR-ATM firewall management port + + vipr_atm_service_left_fqdn: + type: string + constraints: + - allowed_pattern: ^(?:[^:]{1,64}:){2}(?:[^:]{1,255})$ + description: | + A valid Contrail FQDN that contains three parts seperated by ':'. + The first two part are 1 to 64 characters long and must not contain ':'. + The third part is 1 to 255 characters long and must not contain ':'. + description: FQDN of the Left service network for the vIPR-ATM firewall + + vipr_atm_service_right_fqdn: + type: string + constraints: + - allowed_pattern: ^(?:[^:]{1,64}:){2}(?:[^:]{1,255})$ + description: | + A valid Contrail FQDN that contains three parts seperated by ':'. + The first two part are 1 to 64 characters long and must not contain ':'. + The third part is 1 to 255 characters long and must not contain ':'. + description: FQDN of the Right service network for the vIPR-ATM firewall + + vipr_atm_ha_one_id: + type: string + constraints: + - custom_constraint: neutron.network + description: This network must currently exist. + description: Neutron UUID of the first high availability network for the vIPR-ATM firewall + vipr_atm_ha_one_ip_0: + type: string + constraints: + - allowed_pattern: ^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$ + description: A valid IPv4 dot quad IP address. + description: Fixed IP to apply to the vIPR-ATM firewall ha0 port + vipr_atm_ha_one_security_groups: + type: comma_delimited_list + description: List of the security group to apply to the vIPR-ATM firewall ha0 port + + vipr_atm_ha_two_id: + type: string + constraints: + - custom_constraint: neutron.network + description: This network must currently exist. + description: Neutron UUID of the second high availability network for the vIPR-ATM firewal + vipr_atm_ha_two_ip_0: + type: string + constraints: + - allowed_pattern: ^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$ + description: A valid IPv4 dot quad IP address. + description: Fixed IP to apply to the vIPR-ATM firewall ha1 port + vipr_atm_ha_two_security_groups: + type: comma_delimited_list + description: List of the security group to apply to the vIPR-ATM firewall ha1 port + + vipr_atm_contrail_service_instance_fqdn: + type: string + constraints: + - allowed_pattern: ^(?:[^:]{1,64}:){2}(?:[^:]{1,255})$ + description: | + A valid Contrail FQDN that contains three parts seperated by ':'. + The first two part are 1 to 64 characters long and must not contain ':'. + The third part is 1 to 255 characters long and must not contain ':'. + description: FQDN of the vIPR-ATM firewall Contrail service instance for the port tuple + + vipr_atm_name_0: + type: string + constraints: + - length: { min: 1, max: 255 } + description: A string with length of at least 1 and less than 255. + description: Name of the vIPR-ATM firewall virtual machine + vipr_atm_image_name: + type: string + constraints: + - custom_constraint: glance.image + description: This image must currently exist. + description: Image name of the vIPR-ATM firewall virtual machine + vipr_atm_flavor_name: + type: string + constraints: + - custom_constraint: nova.flavor + description: This flavor must currently exist. + description: Flavor for the vIPR-ATM firewall virtual machine + vipr_atm_server_group: + type: string + constraints: + - length: { min: 1, max: 255 } + description: A string with length of at least 1 and less than 255. + description: Server Group with anti-affinity policy for the vIPR-ATM firewall virtual machine + vipr_atm_valet_eg_0: + type: string + constraints: + - length: { min: 1, max: 255 } + description: A string with length of at least 1 and less than 255. + description: The Valet 1.0 Exclusivity Group for the vIPR-ATM firewall virtual machine + availability_zone_0: + type: string + constraints: + - length: { min: 1, max: 255 } + description: A string with length of at least 1 and less than 255. + description: Availability Zone for the vIPR-ATM firewall virtual machine + + vnf_id: + type: string + constraints: + - length: { min: 1, max: 255 } + description: A string with length of at least 1 and less than 255. + description: Unique ID for this VF instance + vnf_name: + type: string + constraints: + - length: { min: 1, max: 255 } + description: A string with length of at least 1 and less than 255. + description: Unique Name for this VF instance + vf_module_id: + type: string + constraints: + - length: { min: 1, max: 255 } + description: A string with length of at least 1 and less than 255. + description: Unique ID for the VF Module instance + +resources: + # Create the Port Tuple + vIPR_ATM_RPT: + type: OS::ContrailV2::PortTuple + properties: + name: + str_replace: + template: VM_NAME_PORT_TUPLE + params: + VM_NAME: { get_param: vipr_atm_name_0 } + service_instance: { get_param: vipr_atm_contrail_service_instance_fqdn } + + # Left Port (Virtual Machine Interface) + vIPR_ATM_Left_RVMI: + type: OS::ContrailV2::VirtualMachineInterface + depends_on: [ vIPR_ATM_RPT ] + properties: + name: + str_replace: + template: VM_NAME_PORT_3 + params: + VM_NAME: { get_param: vipr_atm_name_0 } + virtual_machine_interface_properties: + { + virtual_machine_interface_properties_service_interface_type: 'left' + } + port_tuple_refs: [{ get_resource: vIPR_ATM_RPT }] + virtual_network_refs: [{ get_param: vipr_atm_service_left_fqdn }] + + # Right Port (Virtual Machine Interface) + vIPR_ATM_Right_RVMI: + type: OS::ContrailV2::VirtualMachineInterface + depends_on: [ vIPR_ATM_RPT ] + properties: + name: + str_replace: + template: VM_NAME_PORT_4 + params: + VM_NAME: { get_param: vipr_atm_name_0 } + virtual_machine_interface_properties: + { + virtual_machine_interface_properties_service_interface_type: 'right' + } + port_tuple_refs: [{ get_resource: vIPR_ATM_RPT }] + virtual_network_refs: [{ get_param: vipr_atm_service_right_fqdn }] + + # Left Instance IP + vIPR_ATM_Left_RII: + type: OS::ContrailV2::InstanceIp + depends_on: [ vIPR_ATM_Left_RVMI ] + properties: + name: + str_replace: + template: VM_NAME_INSTANCE_IP_LEFT + params: + VM_NAME: { get_param: vipr_atm_name_0 } + virtual_machine_interface_refs: [{ get_resource: vIPR_ATM_Left_RVMI }] + virtual_network_refs: [{ get_param: vipr_atm_service_left_fqdn }] + + # Right Instance IP + vIPR_ATM_Right_RII: + type: OS::ContrailV2::InstanceIp + depends_on: [ vIPR_ATM_Right_RVMI ] + properties: + name: + str_replace: + template: VM_NAME_INSTANCE_IP_RIGHT + params: + VM_NAME: { get_param: vipr_atm_name_0 } + virtual_machine_interface_refs: [{ get_resource: vIPR_ATM_Right_RVMI }] + virtual_network_refs: [{ get_param: vipr_atm_service_right_fqdn }] + + # OAM Network Port (not part of Port Tuple) + vIPR_ATM_OAM_0_Port: + type: OS::Neutron::Port + properties: + name: + str_replace: + template: VM_NAME_PORT_0 + params: + VM_NAME: { get_param: vipr_atm_name_0 } + network: { get_param: oam_net_id } + security_groups: { get_param: vipr_atm_oam_net_security_groups } + + # HA One Port (not part of Port Tuple) + vIPR_ATM_Ha_One_0_Port: + type: OS::Neutron::Port + properties: + name: + str_replace: + template: VM_NAME_PORT_1 + params: + VM_NAME: { get_param: vipr_atm_name_0 } + network: { get_param: vipr_atm_ha_one_id } + fixed_ips: [ { "ip_address": { get_param: vipr_atm_ha_one_ip_0 } } ] + security_groups: { get_param: vipr_atm_ha_one_security_groups } + + # HA Two Port (not part of Port Tuple) + vIPR_ATM_Ha_Two_0_Port: + type: OS::Neutron::Port + properties: + name: + str_replace: + template: VM_NAME_PORT_2 + params: + VM_NAME: { get_param: vipr_atm_name_0 } + network: { get_param: vipr_atm_ha_two_id } + fixed_ips: [ { "ip_address": { get_param: vipr_atm_ha_two_ip_0 } } ] + security_groups: { get_param: vipr_atm_ha_two_security_groups } + + # Valet Exclusivity Group + vIPR_ATM_Valet_EG_0: + type: ATT::Valet::GroupAssignment + properties: + group_name: { get_param: vipr_atm_valet_eg_0 } + group_type: exclusivity + level: host + resources: + - { get_resource: vIPR_ATM_Firewall } + + # Create the VM and bind the five ports to it + # vIPR_ATM_Firewall_Cloud_Config: + # type: OS::Heat::CloudConfig + # properties: + # cloud_config: + # password: ubuntu + # chpasswd: { expire: False } + # ssh_pwauth: True + # manage_etc_hosts: true + + vIPR_ATM_Firewall: + type: OS::Nova::Server + depends_on: + - vIPR_ATM_Left_RII + - vIPR_ATM_Right_RII + - vIPR_ATM_OAM_0_Port + - vIPR_ATM_Ha_One_0_Port + - vIPR_ATM_Ha_Two_0_Port + properties: + name: { get_param: vipr_atm_name_0 } + image: { get_param: vipr_atm_image_name } + flavor: { get_param: vipr_atm_flavor_name } + availability_zone: { get_param: availability_zone_0 } + scheduler_hints: + group: { get_param: vipr_atm_server_group } + networks: + - port: { get_resource: vIPR_ATM_OAM_0_Port } + - port: { get_resource: vIPR_ATM_Ha_One_0_Port } + - port: { get_resource: vIPR_ATM_Ha_Two_0_Port } + - port: { get_resource: vIPR_ATM_Left_RVMI } + - port: { get_resource: vIPR_ATM_Right_RVMI } + metadata: + vnf_id: { get_param: vnf_id } + vnf_name: { get_param: vnf_name } + vf_module_id: { get_param: vf_module_id } +# user_data_format: RAW +# user_data: { get_resource: vIPR_ATM_Firewall_Cloud_Config } diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/invalidGroupAssignment/expectedoutputfiles/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/invalidGroupAssignment/expectedoutputfiles/MainServiceTemplate.yaml new file mode 100644 index 0000000000..5609b76193 --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/invalidGroupAssignment/expectedoutputfiles/MainServiceTemplate.yaml @@ -0,0 +1,292 @@ +tosca_definitions_version: tosca_simple_yaml_1_0_0 +metadata: + template_name: Main +imports: +- openecomp_heat_index: + file: openecomp-heat/_index.yml +node_types: + org.openecomp.resource.vfc.nodes.heat.myNovaServer2: + derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server + org.openecomp.resource.vfc.nodes.heat.myNovaServer1: + derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server + org.openecomp.resource.vfc.nodes.heat.myNovaServer3: + derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server +topology_template: + inputs: + flavor: + hidden: false + immutable: false + type: string + p1: + hidden: false + immutable: false + type: string + description: p1 + image: + hidden: false + immutable: false + type: string + p2: + hidden: false + immutable: false + type: string + description: p2 + names: + hidden: false + immutable: false + type: string + myIPs: + hidden: false + immutable: false + type: string + description: ip1 + availability_zone_1: + hidden: false + immutable: false + type: string + description: myAvailability_zone_1 + net: + hidden: false + immutable: false + type: string + description: UID of network + node_templates: + myPort6: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + replacement_policy: AUTO + ip_requirements: + - ip_version: 4 + ip_count_required: + is_required: true + floating_ip_count_required: + is_required: false + security_groups: + - get_input: p2 + fixed_ips: + - ip_address: + get_input: + - myIPs + - 0 + mac_requirements: + mac_count_required: + is_required: false + network: + get_input: net + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: myNovaServer3 + relationship: tosca.relationships.network.BindsTo + myPort5: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + replacement_policy: AUTO + ip_requirements: + - ip_version: 4 + ip_count_required: + is_required: true + floating_ip_count_required: + is_required: false + security_groups: + - get_input: p1 + fixed_ips: + - ip_address: + get_input: + - myIPs + - 0 + mac_requirements: + mac_count_required: + is_required: false + network: + get_input: net + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: myNovaServer3 + relationship: tosca.relationships.network.BindsTo + myNovaServer1: + type: org.openecomp.resource.vfc.nodes.heat.myNovaServer1 + properties: + flavor: + get_input: flavor + availability_zone: + get_input: availability_zone_1 + image: + get_input: image + name: + get_input: + - names + - 0 + myNovaServer2: + type: org.openecomp.resource.vfc.nodes.heat.myNovaServer2 + properties: + flavor: + get_input: flavor + availability_zone: + get_input: availability_zone_1 + image: + get_input: image + name: + get_input: + - names + - 0 + myPort2: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + replacement_policy: AUTO + ip_requirements: + - ip_version: 4 + ip_count_required: + is_required: true + floating_ip_count_required: + is_required: false + security_groups: + - get_input: p2 + fixed_ips: + - ip_address: + get_input: + - myIPs + - 0 + mac_requirements: + mac_count_required: + is_required: false + network: + get_input: net + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: myNovaServer1 + relationship: tosca.relationships.network.BindsTo + myNovaServer3: + type: org.openecomp.resource.vfc.nodes.heat.myNovaServer3 + properties: + flavor: + get_input: flavor + availability_zone: + get_input: availability_zone_1 + image: + get_input: image + name: + get_input: + - names + - 0 + myPort1: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + replacement_policy: AUTO + ip_requirements: + - ip_version: 4 + ip_count_required: + is_required: true + floating_ip_count_required: + is_required: false + security_groups: + - get_input: p1 + fixed_ips: + - ip_address: + get_input: + - myIPs + - 0 + mac_requirements: + mac_count_required: + is_required: false + network: + get_input: net + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: myNovaServer1 + relationship: tosca.relationships.network.BindsTo + myPort4: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + replacement_policy: AUTO + ip_requirements: + - ip_version: 4 + ip_count_required: + is_required: true + floating_ip_count_required: + is_required: false + security_groups: + - get_input: p2 + fixed_ips: + - ip_address: + get_input: + - myIPs + - 0 + mac_requirements: + mac_count_required: + is_required: false + network: + get_input: net + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: myNovaServer2 + relationship: tosca.relationships.network.BindsTo + myPort3: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + replacement_policy: AUTO + ip_requirements: + - ip_version: 4 + ip_count_required: + is_required: true + floating_ip_count_required: + is_required: false + security_groups: + - get_input: p1 + fixed_ips: + - ip_address: + get_input: + - myIPs + - 0 + mac_requirements: + mac_count_required: + is_required: false + network: + get_input: net + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: myNovaServer2 + relationship: tosca.relationships.network.BindsTo + groups: + main_group: + type: org.openecomp.groups.heat.HeatStack + properties: + heat_file: ../Artifacts/main.yml + description: cmaui server template for vMMSC + members: + - myPort6 + - myPort5 + - myNovaServer1 + - myNovaServer2 + - myPort2 + - myNovaServer3 + - myPort1 + - myPort4 + - myPort3 + SVCgroup1_simpleGroup1_group: + type: tosca.groups.Root + members: + - myNovaServer1 + - myNovaServer2 + SVCgroup3_complexTwoGroups_group: + type: tosca.groups.Root + members: + - SVCgroup1_simpleGroup1_group + policies: + SVCgroup1_policy: + type: org.openecomp.policies.placement.valet.Affinity + properties: + level: host + targets: + - SVCgroup1_simpleGroup1_group + SVCgroup3_policy: + type: org.openecomp.policies.placement.valet.Affinity + properties: + level: host + targets: + - SVCgroup3_complexTwoGroups_group
\ No newline at end of file diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/invalidGroupAssignment/inputfiles/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/invalidGroupAssignment/inputfiles/MANIFEST.json new file mode 100644 index 0000000000..539e26b7ab --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/invalidGroupAssignment/inputfiles/MANIFEST.json @@ -0,0 +1,12 @@ +{ + "name": "vMME_Small", + "description": "HOT template to create 2 cinder volume attachment", + "version": "2013-05-23", + "data": [ + { + "file": "main.yml", + "type": "HEAT", + "isBase": "true" + } + ] +} diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/invalidGroupAssignment/inputfiles/main.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/invalidGroupAssignment/inputfiles/main.yml new file mode 100644 index 0000000000..7dc385e7c8 --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/invalidGroupAssignment/inputfiles/main.yml @@ -0,0 +1,132 @@ +heat_template_version: 2013-05-23 + +description: cmaui server template for vMMSC + +parameters: + net: + type: string + description: UID of network + p1: + type: string + description: p1 + p2: + type: string + description: p2 + myIPs: + type: string + description: ip1 + availability_zone_1: + type: string + description: myAvailability_zone_1 + names: + type: string + image: + type: string + flavor: + type: string +resources: + + myNovaServer1: + type: OS::Nova::Server + properties: + name: { get_param: [names, 0]} + image: { get_param: image } + availability_zone: { get_param: availability_zone_1 } + flavor: { get_param: flavor } + networks: + - port: { get_resource: myPort1 } + - port: { get_resource: myPort2 } + + + myNovaServer2: + type: OS::Nova::Server + properties: + name: { get_param: [names, 0]} + image: { get_param: image } + availability_zone: { get_param: availability_zone_1 } + flavor: { get_param: flavor } + networks: + - port: { get_resource: myPort3 } + - port: { get_resource: myPort4 } + + myNovaServer3: + type: OS::Nova::Server + properties: + name: { get_param: [names, 0]} + image: { get_param: image } + availability_zone: { get_param: availability_zone_1 } + flavor: { get_param: flavor } + networks: + - port: { get_resource: myPort5 } + - port: { get_resource: myPort6 } + myPort1: + type: OS::Neutron::Port + properties: + network: { get_param: net } + fixed_ips: [{"ip_address": {get_param: [myIPs, 0]}}] + security_groups: [{get_param: p1}] + replacement_policy: AUTO + + myPort2: + type: OS::Neutron::Port + properties: + network: { get_param: net } + fixed_ips: [{"ip_address": {get_param: [myIPs, 0]}}] + security_groups: [{get_param: p2}] + replacement_policy: AUTO + + myPort3: + type: OS::Neutron::Port + properties: + network: { get_param: net } + fixed_ips: [{"ip_address": {get_param: [myIPs, 0]}}] + security_groups: [{get_param: p1}] + replacement_policy: AUTO + + myPort4: + type: OS::Neutron::Port + properties: + network: { get_param: net } + fixed_ips: [{"ip_address": {get_param: [myIPs, 0]}}] + security_groups: [{get_param: p2}] + replacement_policy: AUTO + myPort5: + type: OS::Neutron::Port + properties: + network: { get_param: net } + fixed_ips: [{"ip_address": {get_param: [myIPs, 0]}}] + security_groups: [{get_param: p1}] + replacement_policy: AUTO + + myPort6: + type: OS::Neutron::Port + properties: + network: { get_param: net } + fixed_ips: [{"ip_address": {get_param: [myIPs, 0]}}] + security_groups: [{get_param: p2}] + replacement_policy: AUTO + SVCgroup1: + type: ATT::Valet::GroupAssignment + properties: + group_type: affinity + group_name: simpleGroup1 + level: host + resources: + - { get_resource: myNovaServer1} + - { get_resource: myNovaServer2} + SVCgroup2: + type: ATT::Valet::GroupAssignment + properties: + group_type: invalid + level: host + resources: + - { get_resource: myNovaServer3} + SVCgroup3: + type: ATT::Valet::GroupAssignment + properties: + group_type: affinity + group_name: complexTwoGroups + level: host + resources: + - { get_resource: SVCgroup1} + - { get_resource: SVCgroup2}
\ No newline at end of file diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/notconnected/expectedoutputfiles/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/notconnected/expectedoutputfiles/MainServiceTemplate.yaml new file mode 100644 index 0000000000..d0f744c3a5 --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/notconnected/expectedoutputfiles/MainServiceTemplate.yaml @@ -0,0 +1,209 @@ +tosca_definitions_version: tosca_simple_yaml_1_0_0 +metadata: + template_name: Main +imports: +- openecomp_heat_index: + file: openecomp-heat/_index.yml +node_types: + org.openecomp.resource.vfc.nodes.heat.myNovaServer2: + derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server + org.openecomp.resource.vfc.nodes.heat.myNovaServer1: + derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server +topology_template: + inputs: + flavor: + hidden: false + immutable: false + type: string + p1: + hidden: false + immutable: false + type: string + description: p1 + image: + hidden: false + immutable: false + type: string + p2: + hidden: false + immutable: false + type: string + description: p2 + names: + hidden: false + immutable: false + type: string + myIPs: + hidden: false + immutable: false + type: string + description: ip1 + availability_zone_1: + hidden: false + immutable: false + type: string + description: myAvailability_zone_1 + net: + hidden: false + immutable: false + type: string + description: UID of network + node_templates: + myNovaServer1: + type: org.openecomp.resource.vfc.nodes.heat.myNovaServer1 + properties: + flavor: + get_input: flavor + availability_zone: + get_input: availability_zone_1 + image: + get_input: image + name: + get_input: + - names + - 0 + myNovaServer2: + type: org.openecomp.resource.vfc.nodes.heat.myNovaServer2 + properties: + flavor: + get_input: flavor + availability_zone: + get_input: availability_zone_1 + image: + get_input: image + name: + get_input: + - names + - 0 + myPort2: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + replacement_policy: AUTO + ip_requirements: + - ip_version: 4 + ip_count_required: + is_required: true + floating_ip_count_required: + is_required: false + security_groups: + - get_input: p2 + fixed_ips: + - ip_address: + get_input: + - myIPs + - 0 + mac_requirements: + mac_count_required: + is_required: false + network: + get_input: net + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: myNovaServer1 + relationship: tosca.relationships.network.BindsTo + myPort1: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + replacement_policy: AUTO + ip_requirements: + - ip_version: 4 + ip_count_required: + is_required: true + floating_ip_count_required: + is_required: false + security_groups: + - get_input: p1 + fixed_ips: + - ip_address: + get_input: + - myIPs + - 0 + mac_requirements: + mac_count_required: + is_required: false + network: + get_input: net + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: myNovaServer1 + relationship: tosca.relationships.network.BindsTo + myPort4: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + replacement_policy: AUTO + ip_requirements: + - ip_version: 4 + ip_count_required: + is_required: true + floating_ip_count_required: + is_required: false + security_groups: + - get_input: p2 + fixed_ips: + - ip_address: + get_input: + - myIPs + - 0 + mac_requirements: + mac_count_required: + is_required: false + network: + get_input: net + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: myNovaServer2 + relationship: tosca.relationships.network.BindsTo + myPort3: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + replacement_policy: AUTO + ip_requirements: + - ip_version: 4 + ip_count_required: + is_required: true + floating_ip_count_required: + is_required: false + security_groups: + - get_input: p1 + fixed_ips: + - ip_address: + get_input: + - myIPs + - 0 + mac_requirements: + mac_count_required: + is_required: false + network: + get_input: net + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: myNovaServer2 + relationship: tosca.relationships.network.BindsTo + groups: + main_group: + type: org.openecomp.groups.heat.HeatStack + properties: + heat_file: ../Artifacts/main.yml + description: cmaui server template for vMMSC + members: + - myNovaServer1 + - myNovaServer2 + - myPort2 + - myPort1 + - myPort4 + - myPort3 + SVCgroup1_simpleGroup_group: + type: tosca.groups.Root + members: [ + ] + policies: + SVCgroup1_policy: + type: org.openecomp.policies.placement.valet.Diversity + properties: + level: host + targets: + - SVCgroup1_simpleGroup_group
\ No newline at end of file diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/notconnected/inputfiles/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/notconnected/inputfiles/MANIFEST.json new file mode 100644 index 0000000000..539e26b7ab --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/notconnected/inputfiles/MANIFEST.json @@ -0,0 +1,12 @@ +{ + "name": "vMME_Small", + "description": "HOT template to create 2 cinder volume attachment", + "version": "2013-05-23", + "data": [ + { + "file": "main.yml", + "type": "HEAT", + "isBase": "true" + } + ] +} diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/notconnected/inputfiles/main.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/notconnected/inputfiles/main.yml new file mode 100644 index 0000000000..ce061c122a --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/notconnected/inputfiles/main.yml @@ -0,0 +1,88 @@ +heat_template_version: 2013-05-23 + +description: cmaui server template for vMMSC + +parameters: + net: + type: string + description: UID of network + p1: + type: string + description: p1 + p2: + type: string + description: p2 + myIPs: + type: string + description: ip1 + availability_zone_1: + type: string + description: myAvailability_zone_1 + names: + type: string + image: + type: string + flavor: + type: string +resources: + + myNovaServer1: + type: OS::Nova::Server + properties: + name: { get_param: [names, 0]} + image: { get_param: image } + availability_zone: { get_param: availability_zone_1 } + flavor: { get_param: flavor } + networks: + - port: { get_resource: myPort1 } + - port: { get_resource: myPort2 } + + + myNovaServer2: + type: OS::Nova::Server + properties: + name: { get_param: [names, 0]} + image: { get_param: image } + availability_zone: { get_param: availability_zone_1 } + flavor: { get_param: flavor } + networks: + - port: { get_resource: myPort3 } + - port: { get_resource: myPort4 } + + myPort1: + type: OS::Neutron::Port + properties: + network: { get_param: net } + fixed_ips: [{"ip_address": {get_param: [myIPs, 0]}}] + security_groups: [{get_param: p1}] + replacement_policy: AUTO + + myPort2: + type: OS::Neutron::Port + properties: + network: { get_param: net } + fixed_ips: [{"ip_address": {get_param: [myIPs, 0]}}] + security_groups: [{get_param: p2}] + replacement_policy: AUTO + + myPort3: + type: OS::Neutron::Port + properties: + network: { get_param: net } + fixed_ips: [{"ip_address": {get_param: [myIPs, 0]}}] + security_groups: [{get_param: p1}] + replacement_policy: AUTO + + myPort4: + type: OS::Neutron::Port + properties: + network: { get_param: net } + fixed_ips: [{"ip_address": {get_param: [myIPs, 0]}}] + security_groups: [{get_param: p2}] + replacement_policy: AUTO + SVCgroup1: + type: ATT::Valet::GroupAssignment + properties: + group_type: diversity + group_name: simpleGroup + level: host diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/simpleNovaAndNotSupportedResource/expectedoutputfiles/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/simpleNovaAndNotSupportedResource/expectedoutputfiles/MainServiceTemplate.yaml new file mode 100644 index 0000000000..b16c6c0247 --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/simpleNovaAndNotSupportedResource/expectedoutputfiles/MainServiceTemplate.yaml @@ -0,0 +1,209 @@ +tosca_definitions_version: tosca_simple_yaml_1_0_0 +metadata: + template_name: Main +imports: +- openecomp_heat_index: + file: openecomp-heat/_index.yml +node_types: + org.openecomp.resource.vfc.nodes.heat.myNovaServer2: + derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server + org.openecomp.resource.vfc.nodes.heat.myNovaServer1: + derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server +topology_template: + inputs: + flavor: + hidden: false + immutable: false + type: string + p1: + hidden: false + immutable: false + type: string + description: p1 + image: + hidden: false + immutable: false + type: string + p2: + hidden: false + immutable: false + type: string + description: p2 + names: + hidden: false + immutable: false + type: string + myIPs: + hidden: false + immutable: false + type: string + description: ip1 + availability_zone_1: + hidden: false + immutable: false + type: string + description: myAvailability_zone_1 + net: + hidden: false + immutable: false + type: string + description: UID of network + node_templates: + myNovaServer1: + type: org.openecomp.resource.vfc.nodes.heat.myNovaServer1 + properties: + flavor: + get_input: flavor + availability_zone: + get_input: availability_zone_1 + image: + get_input: image + name: + get_input: + - names + - 0 + myNovaServer2: + type: org.openecomp.resource.vfc.nodes.heat.myNovaServer2 + properties: + flavor: + get_input: flavor + availability_zone: + get_input: availability_zone_1 + image: + get_input: image + name: + get_input: + - names + - 0 + myPort2: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + replacement_policy: AUTO + ip_requirements: + - ip_version: 4 + ip_count_required: + is_required: true + floating_ip_count_required: + is_required: false + security_groups: + - get_input: p2 + fixed_ips: + - ip_address: + get_input: + - myIPs + - 0 + mac_requirements: + mac_count_required: + is_required: false + network: + get_input: net + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: myNovaServer1 + relationship: tosca.relationships.network.BindsTo + myPort1: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + replacement_policy: AUTO + ip_requirements: + - ip_version: 4 + ip_count_required: + is_required: true + floating_ip_count_required: + is_required: false + security_groups: + - get_input: p1 + fixed_ips: + - ip_address: + get_input: + - myIPs + - 0 + mac_requirements: + mac_count_required: + is_required: false + network: + get_input: net + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: myNovaServer1 + relationship: tosca.relationships.network.BindsTo + myPort4: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + replacement_policy: AUTO + ip_requirements: + - ip_version: 4 + ip_count_required: + is_required: true + floating_ip_count_required: + is_required: false + security_groups: + - get_input: p2 + fixed_ips: + - ip_address: + get_input: + - myIPs + - 0 + mac_requirements: + mac_count_required: + is_required: false + network: + get_input: net + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: myNovaServer2 + relationship: tosca.relationships.network.BindsTo + myPort3: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + replacement_policy: AUTO + ip_requirements: + - ip_version: 4 + ip_count_required: + is_required: true + floating_ip_count_required: + is_required: false + security_groups: + - get_input: p1 + fixed_ips: + - ip_address: + get_input: + - myIPs + - 0 + mac_requirements: + mac_count_required: + is_required: false + network: + get_input: net + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: myNovaServer2 + relationship: tosca.relationships.network.BindsTo + groups: + main_group: + type: org.openecomp.groups.heat.HeatStack + properties: + heat_file: ../Artifacts/main.yml + description: cmaui server template for vMMSC + members: + - myNovaServer1 + - myNovaServer2 + - myPort2 + - myPort1 + - myPort4 + - myPort3 + SVCgroup1_simpleGroup_group: + type: tosca.groups.Root + members: + - myNovaServer1 + policies: + SVCgroup1_policy: + type: org.openecomp.policies.placement.valet.Exclusivity + properties: + level: host + targets: + - SVCgroup1_simpleGroup_group
\ No newline at end of file diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/simpleNovaAndNotSupportedResource/inputfiles/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/simpleNovaAndNotSupportedResource/inputfiles/MANIFEST.json new file mode 100644 index 0000000000..539e26b7ab --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/simpleNovaAndNotSupportedResource/inputfiles/MANIFEST.json @@ -0,0 +1,12 @@ +{ + "name": "vMME_Small", + "description": "HOT template to create 2 cinder volume attachment", + "version": "2013-05-23", + "data": [ + { + "file": "main.yml", + "type": "HEAT", + "isBase": "true" + } + ] +} diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/simpleNovaAndNotSupportedResource/inputfiles/main.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/simpleNovaAndNotSupportedResource/inputfiles/main.yml new file mode 100644 index 0000000000..caa95edfa9 --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/simpleNovaAndNotSupportedResource/inputfiles/main.yml @@ -0,0 +1,96 @@ +heat_template_version: 2013-05-23 + +description: cmaui server template for vMMSC + +parameters: + net: + type: string + description: UID of network + p1: + type: string + description: p1 + p2: + type: string + description: p2 + myIPs: + type: string + description: ip1 + availability_zone_1: + type: string + description: myAvailability_zone_1 + names: + type: string + image: + type: string + flavor: + type: string +resources: + + myNovaServer1: + type: OS::Nova::Server + properties: + name: { get_param: [names, 0]} + image: { get_param: image } + availability_zone: { get_param: availability_zone_1 } + flavor: { get_param: flavor } + networks: + - port: { get_resource: myPort1 } + - port: { get_resource: myPort2 } + + + myNovaServer2: + type: OS::Nova::Server + properties: + name: { get_param: [names, 0]} + image: { get_param: image } + availability_zone: { get_param: availability_zone_1 } + flavor: { get_param: flavor } + networks: + - port: { get_resource: myPort3 } + - port: { get_resource: myPort4 } + + myPort1: + type: OS::Neutron::Port + properties: + network: { get_param: net } + fixed_ips: [{"ip_address": {get_param: [myIPs, 0]}}] + security_groups: [{get_param: p1}] + replacement_policy: AUTO + + myPort2: + type: OS::Neutron::Port + properties: + network: { get_param: net } + fixed_ips: [{"ip_address": {get_param: [myIPs, 0]}}] + security_groups: [{get_param: p2}] + replacement_policy: AUTO + + myPort3: + type: OS::Neutron::Port + properties: + network: { get_param: net } + fixed_ips: [{"ip_address": {get_param: [myIPs, 0]}}] + security_groups: [{get_param: p1}] + replacement_policy: AUTO + + myPort4: + type: OS::Neutron::Port + properties: + network: { get_param: net } + fixed_ips: [{"ip_address": {get_param: [myIPs, 0]}}] + security_groups: [{get_param: p2}] + replacement_policy: AUTO + myDummyResource: + type: myDummyResource::type + properties: + prop: propertyValue + + SVCgroup1: + type: ATT::Valet::GroupAssignment + properties: + group_type: exclusivity + group_name: simpleGroup + level: host + resources: + - { get_resource: myNovaServer1} + - { get_resource: myDummyResource} diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/simpleOnlyNotSupportedResources/expectedoutputfiles/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/simpleOnlyNotSupportedResources/expectedoutputfiles/MainServiceTemplate.yaml new file mode 100644 index 0000000000..a43a1d1f5d --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/simpleOnlyNotSupportedResources/expectedoutputfiles/MainServiceTemplate.yaml @@ -0,0 +1,209 @@ +tosca_definitions_version: tosca_simple_yaml_1_0_0 +metadata: + template_name: Main +imports: +- openecomp_heat_index: + file: openecomp-heat/_index.yml +node_types: + org.openecomp.resource.vfc.nodes.heat.myNovaServer2: + derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server + org.openecomp.resource.vfc.nodes.heat.myNovaServer1: + derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server +topology_template: + inputs: + flavor: + hidden: false + immutable: false + type: string + p1: + hidden: false + immutable: false + type: string + description: p1 + image: + hidden: false + immutable: false + type: string + p2: + hidden: false + immutable: false + type: string + description: p2 + names: + hidden: false + immutable: false + type: string + myIPs: + hidden: false + immutable: false + type: string + description: ip1 + availability_zone_1: + hidden: false + immutable: false + type: string + description: myAvailability_zone_1 + net: + hidden: false + immutable: false + type: string + description: UID of network + node_templates: + myNovaServer1: + type: org.openecomp.resource.vfc.nodes.heat.myNovaServer1 + properties: + flavor: + get_input: flavor + availability_zone: + get_input: availability_zone_1 + image: + get_input: image + name: + get_input: + - names + - 0 + myNovaServer2: + type: org.openecomp.resource.vfc.nodes.heat.myNovaServer2 + properties: + flavor: + get_input: flavor + availability_zone: + get_input: availability_zone_1 + image: + get_input: image + name: + get_input: + - names + - 0 + myPort2: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + replacement_policy: AUTO + ip_requirements: + - ip_version: 4 + ip_count_required: + is_required: true + floating_ip_count_required: + is_required: false + security_groups: + - get_input: p2 + fixed_ips: + - ip_address: + get_input: + - myIPs + - 0 + mac_requirements: + mac_count_required: + is_required: false + network: + get_input: net + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: myNovaServer1 + relationship: tosca.relationships.network.BindsTo + myPort1: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + replacement_policy: AUTO + ip_requirements: + - ip_version: 4 + ip_count_required: + is_required: true + floating_ip_count_required: + is_required: false + security_groups: + - get_input: p1 + fixed_ips: + - ip_address: + get_input: + - myIPs + - 0 + mac_requirements: + mac_count_required: + is_required: false + network: + get_input: net + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: myNovaServer1 + relationship: tosca.relationships.network.BindsTo + myPort4: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + replacement_policy: AUTO + ip_requirements: + - ip_version: 4 + ip_count_required: + is_required: true + floating_ip_count_required: + is_required: false + security_groups: + - get_input: p2 + fixed_ips: + - ip_address: + get_input: + - myIPs + - 0 + mac_requirements: + mac_count_required: + is_required: false + network: + get_input: net + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: myNovaServer2 + relationship: tosca.relationships.network.BindsTo + myPort3: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + replacement_policy: AUTO + ip_requirements: + - ip_version: 4 + ip_count_required: + is_required: true + floating_ip_count_required: + is_required: false + security_groups: + - get_input: p1 + fixed_ips: + - ip_address: + get_input: + - myIPs + - 0 + mac_requirements: + mac_count_required: + is_required: false + network: + get_input: net + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: myNovaServer2 + relationship: tosca.relationships.network.BindsTo + groups: + main_group: + type: org.openecomp.groups.heat.HeatStack + properties: + heat_file: ../Artifacts/main.yml + description: cmaui server template for vMMSC + members: + - myNovaServer1 + - myNovaServer2 + - myPort2 + - myPort1 + - myPort4 + - myPort3 + SVCgroup1_emptyGroup_group: + type: tosca.groups.Root + members: [ + ] + policies: + SVCgroup1_policy: + type: org.openecomp.policies.placement.valet.Affinity + properties: + level: host + targets: + - SVCgroup1_emptyGroup_group
\ No newline at end of file diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/simpleOnlyNotSupportedResources/inputfiles/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/simpleOnlyNotSupportedResources/inputfiles/MANIFEST.json new file mode 100644 index 0000000000..539e26b7ab --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/simpleOnlyNotSupportedResources/inputfiles/MANIFEST.json @@ -0,0 +1,12 @@ +{ + "name": "vMME_Small", + "description": "HOT template to create 2 cinder volume attachment", + "version": "2013-05-23", + "data": [ + { + "file": "main.yml", + "type": "HEAT", + "isBase": "true" + } + ] +} diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/simpleOnlyNotSupportedResources/inputfiles/main.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/simpleOnlyNotSupportedResources/inputfiles/main.yml new file mode 100644 index 0000000000..e5842434e1 --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/simpleOnlyNotSupportedResources/inputfiles/main.yml @@ -0,0 +1,103 @@ +heat_template_version: 2013-05-23 + +description: cmaui server template for vMMSC + +parameters: + net: + type: string + description: UID of network + p1: + type: string + description: p1 + p2: + type: string + description: p2 + myIPs: + type: string + description: ip1 + availability_zone_1: + type: string + description: myAvailability_zone_1 + names: + type: string + image: + type: string + flavor: + type: string +resources: + + myNovaServer1: + type: OS::Nova::Server + properties: + name: { get_param: [names, 0]} + image: { get_param: image } + availability_zone: { get_param: availability_zone_1 } + flavor: { get_param: flavor } + networks: + - port: { get_resource: myPort1 } + - port: { get_resource: myPort2 } + + + myNovaServer2: + type: OS::Nova::Server + properties: + name: { get_param: [names, 0]} + image: { get_param: image } + availability_zone: { get_param: availability_zone_1 } + flavor: { get_param: flavor } + networks: + - port: { get_resource: myPort3 } + - port: { get_resource: myPort4 } + + myPort1: + type: OS::Neutron::Port + properties: + network: { get_param: net } + fixed_ips: [{"ip_address": {get_param: [myIPs, 0]}}] + security_groups: [{get_param: p1}] + replacement_policy: AUTO + + myPort2: + type: OS::Neutron::Port + properties: + network: { get_param: net } + fixed_ips: [{"ip_address": {get_param: [myIPs, 0]}}] + security_groups: [{get_param: p2}] + replacement_policy: AUTO + + myPort3: + type: OS::Neutron::Port + properties: + network: { get_param: net } + fixed_ips: [{"ip_address": {get_param: [myIPs, 0]}}] + security_groups: [{get_param: p1}] + replacement_policy: AUTO + + myPort4: + type: OS::Neutron::Port + properties: + network: { get_param: net } + fixed_ips: [{"ip_address": {get_param: [myIPs, 0]}}] + security_groups: [{get_param: p2}] + replacement_policy: AUTO + + myDummyResource1: + type: myDummyResource1 + properties: + prop1: aaaa + + myDummyResource2: + type: myDummyResource2 + properties: + prop1: bbb + + + SVCgroup1: + type: ATT::Valet::GroupAssignment + properties: + group_type: affinity + group_name: emptyGroup + level: host + resources: + - { get_resource: myDummyResource1} + - { get_resource: myDummyResource2} diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/simpleOnlyNova/expectedoutputfiles/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/simpleOnlyNova/expectedoutputfiles/MainServiceTemplate.yaml new file mode 100644 index 0000000000..3ec1bd245e --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/simpleOnlyNova/expectedoutputfiles/MainServiceTemplate.yaml @@ -0,0 +1,210 @@ +tosca_definitions_version: tosca_simple_yaml_1_0_0 +metadata: + template_name: Main +imports: +- openecomp_heat_index: + file: openecomp-heat/_index.yml +node_types: + org.openecomp.resource.vfc.nodes.heat.myNovaServer2: + derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server + org.openecomp.resource.vfc.nodes.heat.myNovaServer1: + derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server +topology_template: + inputs: + flavor: + hidden: false + immutable: false + type: string + p1: + hidden: false + immutable: false + type: string + description: p1 + image: + hidden: false + immutable: false + type: string + p2: + hidden: false + immutable: false + type: string + description: p2 + names: + hidden: false + immutable: false + type: string + myIPs: + hidden: false + immutable: false + type: string + description: ip1 + availability_zone_1: + hidden: false + immutable: false + type: string + description: myAvailability_zone_1 + net: + hidden: false + immutable: false + type: string + description: UID of network + node_templates: + myNovaServer1: + type: org.openecomp.resource.vfc.nodes.heat.myNovaServer1 + properties: + flavor: + get_input: flavor + availability_zone: + get_input: availability_zone_1 + image: + get_input: image + name: + get_input: + - names + - 0 + myNovaServer2: + type: org.openecomp.resource.vfc.nodes.heat.myNovaServer2 + properties: + flavor: + get_input: flavor + availability_zone: + get_input: availability_zone_1 + image: + get_input: image + name: + get_input: + - names + - 0 + myPort2: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + replacement_policy: AUTO + ip_requirements: + - ip_version: 4 + ip_count_required: + is_required: true + floating_ip_count_required: + is_required: false + security_groups: + - get_input: p2 + fixed_ips: + - ip_address: + get_input: + - myIPs + - 0 + mac_requirements: + mac_count_required: + is_required: false + network: + get_input: net + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: myNovaServer1 + relationship: tosca.relationships.network.BindsTo + myPort1: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + replacement_policy: AUTO + ip_requirements: + - ip_version: 4 + ip_count_required: + is_required: true + floating_ip_count_required: + is_required: false + security_groups: + - get_input: p1 + fixed_ips: + - ip_address: + get_input: + - myIPs + - 0 + mac_requirements: + mac_count_required: + is_required: false + network: + get_input: net + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: myNovaServer1 + relationship: tosca.relationships.network.BindsTo + myPort4: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + replacement_policy: AUTO + ip_requirements: + - ip_version: 4 + ip_count_required: + is_required: true + floating_ip_count_required: + is_required: false + security_groups: + - get_input: p2 + fixed_ips: + - ip_address: + get_input: + - myIPs + - 0 + mac_requirements: + mac_count_required: + is_required: false + network: + get_input: net + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: myNovaServer2 + relationship: tosca.relationships.network.BindsTo + myPort3: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + replacement_policy: AUTO + ip_requirements: + - ip_version: 4 + ip_count_required: + is_required: true + floating_ip_count_required: + is_required: false + security_groups: + - get_input: p1 + fixed_ips: + - ip_address: + get_input: + - myIPs + - 0 + mac_requirements: + mac_count_required: + is_required: false + network: + get_input: net + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: myNovaServer2 + relationship: tosca.relationships.network.BindsTo + groups: + main_group: + type: org.openecomp.groups.heat.HeatStack + properties: + heat_file: ../Artifacts/main.yml + description: cmaui server template for vMMSC + members: + - myNovaServer1 + - myNovaServer2 + - myPort2 + - myPort1 + - myPort4 + - myPort3 + SVCgroup1_simpleGroup_group: + type: tosca.groups.Root + members: + - myNovaServer1 + - myNovaServer2 + policies: + SVCgroup1_policy: + type: org.openecomp.policies.placement.valet.Affinity + properties: + level: host + targets: + - SVCgroup1_simpleGroup_group
\ No newline at end of file diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/simpleOnlyNova/inputfiles/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/simpleOnlyNova/inputfiles/MANIFEST.json new file mode 100644 index 0000000000..539e26b7ab --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/simpleOnlyNova/inputfiles/MANIFEST.json @@ -0,0 +1,12 @@ +{ + "name": "vMME_Small", + "description": "HOT template to create 2 cinder volume attachment", + "version": "2013-05-23", + "data": [ + { + "file": "main.yml", + "type": "HEAT", + "isBase": "true" + } + ] +} diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/simpleOnlyNova/inputfiles/main.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/simpleOnlyNova/inputfiles/main.yml new file mode 100644 index 0000000000..586a7343e4 --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/simpleOnlyNova/inputfiles/main.yml @@ -0,0 +1,91 @@ +heat_template_version: 2013-05-23 + +description: cmaui server template for vMMSC + +parameters: + net: + type: string + description: UID of network + p1: + type: string + description: p1 + p2: + type: string + description: p2 + myIPs: + type: string + description: ip1 + availability_zone_1: + type: string + description: myAvailability_zone_1 + names: + type: string + image: + type: string + flavor: + type: string +resources: + + myNovaServer1: + type: OS::Nova::Server + properties: + name: { get_param: [names, 0]} + image: { get_param: image } + availability_zone: { get_param: availability_zone_1 } + flavor: { get_param: flavor } + networks: + - port: { get_resource: myPort1 } + - port: { get_resource: myPort2 } + + + myNovaServer2: + type: OS::Nova::Server + properties: + name: { get_param: [names, 0]} + image: { get_param: image } + availability_zone: { get_param: availability_zone_1 } + flavor: { get_param: flavor } + networks: + - port: { get_resource: myPort3 } + - port: { get_resource: myPort4 } + + myPort1: + type: OS::Neutron::Port + properties: + network: { get_param: net } + fixed_ips: [{"ip_address": {get_param: [myIPs, 0]}}] + security_groups: [{get_param: p1}] + replacement_policy: AUTO + + myPort2: + type: OS::Neutron::Port + properties: + network: { get_param: net } + fixed_ips: [{"ip_address": {get_param: [myIPs, 0]}}] + security_groups: [{get_param: p2}] + replacement_policy: AUTO + + myPort3: + type: OS::Neutron::Port + properties: + network: { get_param: net } + fixed_ips: [{"ip_address": {get_param: [myIPs, 0]}}] + security_groups: [{get_param: p1}] + replacement_policy: AUTO + + myPort4: + type: OS::Neutron::Port + properties: + network: { get_param: net } + fixed_ips: [{"ip_address": {get_param: [myIPs, 0]}}] + security_groups: [{get_param: p2}] + replacement_policy: AUTO + SVCgroup1: + type: ATT::Valet::GroupAssignment + properties: + group_type: affinity + group_name: simpleGroup + level: host + resources: + - { get_resource: myNovaServer1} + - { get_resource: myNovaServer2} diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/simpleOnlySingleNova/expectedoutputfiles/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/simpleOnlySingleNova/expectedoutputfiles/MainServiceTemplate.yaml new file mode 100644 index 0000000000..56b552b348 --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/simpleOnlySingleNova/expectedoutputfiles/MainServiceTemplate.yaml @@ -0,0 +1,209 @@ +tosca_definitions_version: tosca_simple_yaml_1_0_0 +metadata: + template_name: Main +imports: +- openecomp_heat_index: + file: openecomp-heat/_index.yml +node_types: + org.openecomp.resource.vfc.nodes.heat.myNovaServer2: + derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server + org.openecomp.resource.vfc.nodes.heat.myNovaServer1: + derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server +topology_template: + inputs: + flavor: + hidden: false + immutable: false + type: string + p1: + hidden: false + immutable: false + type: string + description: p1 + image: + hidden: false + immutable: false + type: string + p2: + hidden: false + immutable: false + type: string + description: p2 + names: + hidden: false + immutable: false + type: string + myIPs: + hidden: false + immutable: false + type: string + description: ip1 + availability_zone_1: + hidden: false + immutable: false + type: string + description: myAvailability_zone_1 + net: + hidden: false + immutable: false + type: string + description: UID of network + node_templates: + myNovaServer1: + type: org.openecomp.resource.vfc.nodes.heat.myNovaServer1 + properties: + flavor: + get_input: flavor + availability_zone: + get_input: availability_zone_1 + image: + get_input: image + name: + get_input: + - names + - 0 + myNovaServer2: + type: org.openecomp.resource.vfc.nodes.heat.myNovaServer2 + properties: + flavor: + get_input: flavor + availability_zone: + get_input: availability_zone_1 + image: + get_input: image + name: + get_input: + - names + - 0 + myPort2: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + replacement_policy: AUTO + ip_requirements: + - ip_version: 4 + ip_count_required: + is_required: true + floating_ip_count_required: + is_required: false + security_groups: + - get_input: p2 + fixed_ips: + - ip_address: + get_input: + - myIPs + - 0 + mac_requirements: + mac_count_required: + is_required: false + network: + get_input: net + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: myNovaServer1 + relationship: tosca.relationships.network.BindsTo + myPort1: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + replacement_policy: AUTO + ip_requirements: + - ip_version: 4 + ip_count_required: + is_required: true + floating_ip_count_required: + is_required: false + security_groups: + - get_input: p1 + fixed_ips: + - ip_address: + get_input: + - myIPs + - 0 + mac_requirements: + mac_count_required: + is_required: false + network: + get_input: net + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: myNovaServer1 + relationship: tosca.relationships.network.BindsTo + myPort4: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + replacement_policy: AUTO + ip_requirements: + - ip_version: 4 + ip_count_required: + is_required: true + floating_ip_count_required: + is_required: false + security_groups: + - get_input: p2 + fixed_ips: + - ip_address: + get_input: + - myIPs + - 0 + mac_requirements: + mac_count_required: + is_required: false + network: + get_input: net + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: myNovaServer2 + relationship: tosca.relationships.network.BindsTo + myPort3: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + replacement_policy: AUTO + ip_requirements: + - ip_version: 4 + ip_count_required: + is_required: true + floating_ip_count_required: + is_required: false + security_groups: + - get_input: p1 + fixed_ips: + - ip_address: + get_input: + - myIPs + - 0 + mac_requirements: + mac_count_required: + is_required: false + network: + get_input: net + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: myNovaServer2 + relationship: tosca.relationships.network.BindsTo + groups: + main_group: + type: org.openecomp.groups.heat.HeatStack + properties: + heat_file: ../Artifacts/main.yml + description: cmaui server template for vMMSC + members: + - myNovaServer1 + - myNovaServer2 + - myPort2 + - myPort1 + - myPort4 + - myPort3 + SVCgroup1_simpleGroup_group: + type: tosca.groups.Root + members: + - myNovaServer1 + policies: + SVCgroup1_policy: + type: org.openecomp.policies.placement.valet.Diversity + properties: + level: host + targets: + - SVCgroup1_simpleGroup_group
\ No newline at end of file diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/simpleOnlySingleNova/inputfiles/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/simpleOnlySingleNova/inputfiles/MANIFEST.json new file mode 100644 index 0000000000..539e26b7ab --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/simpleOnlySingleNova/inputfiles/MANIFEST.json @@ -0,0 +1,12 @@ +{ + "name": "vMME_Small", + "description": "HOT template to create 2 cinder volume attachment", + "version": "2013-05-23", + "data": [ + { + "file": "main.yml", + "type": "HEAT", + "isBase": "true" + } + ] +} diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/simpleOnlySingleNova/inputfiles/main.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/simpleOnlySingleNova/inputfiles/main.yml new file mode 100644 index 0000000000..f7079ce7ce --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/resources/mock/services/heattotosca/attValetGroupAssignment/simpleOnlySingleNova/inputfiles/main.yml @@ -0,0 +1,90 @@ +heat_template_version: 2013-05-23 + +description: cmaui server template for vMMSC + +parameters: + net: + type: string + description: UID of network + p1: + type: string + description: p1 + p2: + type: string + description: p2 + myIPs: + type: string + description: ip1 + availability_zone_1: + type: string + description: myAvailability_zone_1 + names: + type: string + image: + type: string + flavor: + type: string +resources: + + myNovaServer1: + type: OS::Nova::Server + properties: + name: { get_param: [names, 0]} + image: { get_param: image } + availability_zone: { get_param: availability_zone_1 } + flavor: { get_param: flavor } + networks: + - port: { get_resource: myPort1 } + - port: { get_resource: myPort2 } + + + myNovaServer2: + type: OS::Nova::Server + properties: + name: { get_param: [names, 0]} + image: { get_param: image } + availability_zone: { get_param: availability_zone_1 } + flavor: { get_param: flavor } + networks: + - port: { get_resource: myPort3 } + - port: { get_resource: myPort4 } + + myPort1: + type: OS::Neutron::Port + properties: + network: { get_param: net } + fixed_ips: [{"ip_address": {get_param: [myIPs, 0]}}] + security_groups: [{get_param: p1}] + replacement_policy: AUTO + + myPort2: + type: OS::Neutron::Port + properties: + network: { get_param: net } + fixed_ips: [{"ip_address": {get_param: [myIPs, 0]}}] + security_groups: [{get_param: p2}] + replacement_policy: AUTO + + myPort3: + type: OS::Neutron::Port + properties: + network: { get_param: net } + fixed_ips: [{"ip_address": {get_param: [myIPs, 0]}}] + security_groups: [{get_param: p1}] + replacement_policy: AUTO + + myPort4: + type: OS::Neutron::Port + properties: + network: { get_param: net } + fixed_ips: [{"ip_address": {get_param: [myIPs, 0]}}] + security_groups: [{get_param: p2}] + replacement_policy: AUTO + SVCgroup1: + type: ATT::Valet::GroupAssignment + properties: + group_type: diversity + group_name: simpleGroup + level: host + resources: + - { get_resource: myNovaServer1} |