aboutsummaryrefslogtreecommitdiffstats
path: root/openecomp-be/lib/openecomp-sdc-translator-lib
diff options
context:
space:
mode:
Diffstat (limited to 'openecomp-be/lib/openecomp-sdc-translator-lib')
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/SubInterfaceTemplateConsolidationData.java29
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationService.java67
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/UnifiedCompositionService.java154
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/UnifiedCompositionUtil.java56
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/unifiedcomposition/UnifiedCompositionNestedSingleCompute.java25
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/UnifiedCompositionServiceTest.java33
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/fulltest/UnifiedCompositionSubInterfaceFullTest.java15
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern5/complexVFCMultiLevelNestedDiffComputeScenario/out/nested_pattern5ServiceTemplate.yaml1
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern5/complexVFCMultiLevelNestedScenario/out/nested_pattern5ServiceTemplate.yaml1
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/vfcInstanceGroup/pattern4SubInterfaceNodesConnectedOut/in/MANIFEST.json22
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/vfcInstanceGroup/pattern4SubInterfaceNodesConnectedOut/in/main.yml35
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/vfcInstanceGroup/pattern4SubInterfaceNodesConnectedOut/in/nested_pattern4.yml233
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/vfcInstanceGroup/pattern4SubInterfaceNodesConnectedOut/in/nested_vlan.yml116
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/vfcInstanceGroup/pattern4SubInterfaceNodesConnectedOut/out/GlobalSubstitutionTypesServiceTemplate.yaml692
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/vfcInstanceGroup/pattern4SubInterfaceNodesConnectedOut/out/MainServiceTemplate.yaml110
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/vfcInstanceGroup/pattern4SubInterfaceNodesConnectedOut/out/nested_pattern4ServiceTemplate.yaml561
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/vfcInstanceGroup/pattern4SubInterfaceNodesConnectedOut/out/nested_vlanServiceTemplate.yaml171
17 files changed, 2165 insertions, 156 deletions
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/SubInterfaceTemplateConsolidationData.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/SubInterfaceTemplateConsolidationData.java
index 9a6826d644..9b80b91ce5 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/SubInterfaceTemplateConsolidationData.java
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/SubInterfaceTemplateConsolidationData.java
@@ -16,6 +16,12 @@
package org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation;
+import org.openecomp.sdc.tosca.datatypes.model.ServiceTemplate;
+import org.openecomp.sdc.tosca.services.ToscaUtil;
+import org.openecomp.sdc.translator.datatypes.heattotosca.TranslationContext;
+
+import java.util.Optional;
+
public class SubInterfaceTemplateConsolidationData extends EntityConsolidationData {
//Value of the property count in the resource group representing the sub-interface
@@ -48,4 +54,27 @@ public class SubInterfaceTemplateConsolidationData extends EntityConsolidationDa
public void setParentPortNodeTemplateId(String parentPortNodeTemplateId) {
this.parentPortNodeTemplateId = parentPortNodeTemplateId;
}
+
+ public Optional<PortTemplateConsolidationData> getParentPortTemplateConsolidationData(ServiceTemplate serviceTemplate,
+ TranslationContext context) {
+ FilePortConsolidationData filePortConsolidationData = context.getConsolidationData().getPortConsolidationData()
+ .getFilePortConsolidationData(ToscaUtil.getServiceTemplateFileName(serviceTemplate));
+ PortTemplateConsolidationData portTemplateConsolidationData = null;
+ if (filePortConsolidationData != null) {
+ portTemplateConsolidationData = filePortConsolidationData
+ .getPortTemplateConsolidationData(parentPortNodeTemplateId);
+ }
+ return Optional.ofNullable(portTemplateConsolidationData);
+ }
+
+ public Optional<String> getParentPortNetworkRole(ServiceTemplate serviceTemplate,
+ TranslationContext context) {
+ Optional<PortTemplateConsolidationData> subInterfacePortTemplateConsolidationData =
+ getParentPortTemplateConsolidationData(serviceTemplate, context);
+ if (!subInterfacePortTemplateConsolidationData.isPresent()) {
+ return Optional.empty();
+ }
+ return Optional.ofNullable(subInterfacePortTemplateConsolidationData.get().getNetworkRole());
+ }
+
}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationService.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationService.java
index cb6a3bc351..9fe2ea0fbd 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationService.java
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationService.java
@@ -834,7 +834,7 @@ public class ConsolidationService {
if (substitutionConsolidationRuleResult) {
List<UnifiedCompositionData> unifiedCompositionDataList =
createSubstitutionUnifiedCompositionDataList(substituteNodeTemplateId,
- serviceTemplate, consolidationData);
+ serviceTemplate, substitutionServiceTemplate, consolidationData);
unifiedCompositionService
.createUnifiedComposition(serviceTemplate, substitutionServiceTemplate,
unifiedCompositionDataList, UnifiedCompositionMode.NestedSingleCompute,
@@ -939,33 +939,22 @@ public class ConsolidationService {
for (ComputeTemplateConsolidationData computeTemplateConsolidationData : typeComputeConsolidationData
.getAllComputeTemplateConsolidationData()) {
-
UnifiedCompositionData unifiedCompositionData = new UnifiedCompositionData();
unifiedCompositionData.setComputeTemplateConsolidationData(computeTemplateConsolidationData);
-
- Collection<List<String>> portCollection =
- computeTemplateConsolidationData.getPorts() == null ? Collections.emptyList()
- : computeTemplateConsolidationData.getPorts().values();
-
FilePortConsolidationData filePortConsolidationData =
consolidationData.getPortConsolidationData().getFilePortConsolidationData(ToscaUtil
.getServiceTemplateFileName(serviceTemplate));
- List<SubInterfaceTemplateConsolidationData> subInterfaceTemplateConsolidationDataList = new ArrayList<>();
- portCollection.stream()
- .flatMap(Collection::stream)
- .forEach(portId -> setUnifiedCompositionDataWithPortTemplateData(filePortConsolidationData, portId,
- unifiedCompositionData, subInterfaceTemplateConsolidationDataList));
- unifiedCompositionData.setSubInterfaceTemplateConsolidationDataList(
- subInterfaceTemplateConsolidationDataList);
+ setUnifiedCompositionDataWithPortTemplateData(computeTemplateConsolidationData, filePortConsolidationData,
+ unifiedCompositionData);
unifiedCompositionDataList.add(unifiedCompositionData);
}
return unifiedCompositionDataList;
}
- private void setUnifiedCompositionDataWithPortTemplateData(FilePortConsolidationData filePortConsolidationData,
- String portId,
- UnifiedCompositionData unifiedCompositionData,
- List<SubInterfaceTemplateConsolidationData>
+ private void setPortTemplateConsolidationData(FilePortConsolidationData filePortConsolidationData,
+ String portId,
+ UnifiedCompositionData unifiedCompositionData,
+ List<SubInterfaceTemplateConsolidationData>
subInterfaceTemplateConsolidationDataList) {
if (Objects.isNull(filePortConsolidationData)) {
return;
@@ -981,6 +970,7 @@ public class ConsolidationService {
private List<UnifiedCompositionData> createSubstitutionUnifiedCompositionDataList(
String substituteNodeTemplateId,
ServiceTemplate serviceTemplate,
+ ServiceTemplate substitutionServiceTemplate,
ConsolidationData consolidationData) {
List<UnifiedCompositionData> unifiedCompositionDataList = new ArrayList<>();
FileNestedConsolidationData fileNestedConsolidationData =
@@ -993,12 +983,51 @@ public class ConsolidationService {
UnifiedCompositionData unifiedCompositionData = new UnifiedCompositionData();
unifiedCompositionData.setNestedTemplateConsolidationData(nestedTemplateConsolidationData);
unifiedCompositionDataList.add(unifiedCompositionData);
- return unifiedCompositionDataList;
+ addSubInterfaceDataToNestedCompositionData(substitutionServiceTemplate, consolidationData,
+ unifiedCompositionData);
}
return unifiedCompositionDataList;
}
+ private void addSubInterfaceDataToNestedCompositionData(ServiceTemplate substitutionServiceTemplate,
+ ConsolidationData consolidationData,
+ UnifiedCompositionData unifiedCompositionData) {
+ FileComputeConsolidationData nestedFileComputeConsolidationData = consolidationData.getComputeConsolidationData()
+ .getFileComputeConsolidationData(ToscaUtil.getServiceTemplateFileName(substitutionServiceTemplate));
+ FilePortConsolidationData nestedFilePortConsolidationData = consolidationData.getPortConsolidationData()
+ .getFilePortConsolidationData(ToscaUtil.getServiceTemplateFileName(substitutionServiceTemplate));
+ if (Objects.isNull(nestedFileComputeConsolidationData)
+ || Objects.isNull(nestedFilePortConsolidationData)) {
+ return;
+ }
+ TypeComputeConsolidationData computeType =
+ nestedFileComputeConsolidationData.getAllTypeComputeConsolidationData().iterator().next();
+ if (Objects.isNull(computeType)) {
+ return;
+ }
+ ComputeTemplateConsolidationData computeTemplateConsolidationData =
+ computeType.getAllComputeTemplateConsolidationData().iterator().next();
+ setUnifiedCompositionDataWithPortTemplateData(computeTemplateConsolidationData, nestedFilePortConsolidationData,
+ unifiedCompositionData);
+ }
+
+ private void setUnifiedCompositionDataWithPortTemplateData(ComputeTemplateConsolidationData
+ computeTemplateConsolidationData,
+ FilePortConsolidationData filePortConsolidationData,
+ UnifiedCompositionData unifiedCompositionData) {
+ Collection<List<String>> portCollection =
+ computeTemplateConsolidationData.getPorts() == null ? Collections.emptyList()
+ : computeTemplateConsolidationData.getPorts().values();
+ List<SubInterfaceTemplateConsolidationData> subInterfaceTemplateConsolidationDataList = new ArrayList<>();
+ portCollection.stream()
+ .flatMap(Collection::stream)
+ .forEach(portId -> setPortTemplateConsolidationData(filePortConsolidationData, portId,
+ unifiedCompositionData, subInterfaceTemplateConsolidationDataList));
+ unifiedCompositionData.setSubInterfaceTemplateConsolidationDataList(
+ subInterfaceTemplateConsolidationDataList);
+ }
+
private boolean consolidationPreCondition(
ServiceTemplate serviceTemplate,
ConsolidationData consolidationData,
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/UnifiedCompositionService.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/UnifiedCompositionService.java
index f064fb6b60..0217d02328 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/UnifiedCompositionService.java
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/UnifiedCompositionService.java
@@ -36,7 +36,6 @@ import static org.openecomp.sdc.translator.services.heattotosca.UnifiedCompositi
import static org.openecomp.sdc.translator.services.heattotosca.UnifiedCompositionUtil.getNewComputeNodeTemplateId;
import static org.openecomp.sdc.translator.services.heattotosca.UnifiedCompositionUtil.getNewPortNodeTemplateId;
import static org.openecomp.sdc.translator.services.heattotosca.UnifiedCompositionUtil.getNewSubInterfaceNodeTemplateId;
-import static org.openecomp.sdc.translator.services.heattotosca.UnifiedCompositionUtil.getSubInterfacePortTemplateConsolidationData;
import static org.openecomp.sdc.translator.services.heattotosca.UnifiedCompositionUtil.getSubInterfaceTemplateConsolidationDataList;
import static org.openecomp.sdc.translator.services.heattotosca.UnifiedCompositionUtil.getSubInterfaceTypeSuffix;
@@ -282,46 +281,53 @@ public class UnifiedCompositionService {
if (!TranslationContext.isVfcInstanceGroupingEnabled()) {
return;
}
- for (UnifiedCompositionData unifiedCompositionData : unifiedCompositionDataList) {
- List<SubInterfaceTemplateConsolidationData> subInterfaceTemplateConsolidationDataList =
- getSubInterfaceTemplateConsolidationDataList(unifiedCompositionData);
- if (CollectionUtils.isNotEmpty(subInterfaceTemplateConsolidationDataList)) {
- createVfcInstanceGroupPerSubInterface(abstractNodeTemplateId, serviceTemplate,
- subInterfaceTemplateConsolidationDataList, context);
- }
- }
+ UnifiedCompositionTo unifiedCompositionTo = new UnifiedCompositionTo(serviceTemplate, null,
+ unifiedCompositionDataList, context);
+ unifiedCompositionDataList.forEach(unifiedCompositionData ->
+ createSubInterfaceVfcInstanceGroup(abstractNodeTemplateId, unifiedCompositionTo, unifiedCompositionData));
}
- private void createVfcInstanceGroupPerSubInterface(String abstractNodeTemplateId,
- ServiceTemplate serviceTemplate,
- List<SubInterfaceTemplateConsolidationData>
- subInterfaceList,
- TranslationContext context) {
- for (SubInterfaceTemplateConsolidationData subInterface : subInterfaceList) {
- PortTemplateConsolidationData subInterfacePortTemplateConsolidationData =
- getSubInterfacePortTemplateConsolidationData(serviceTemplate, subInterface, context);
- String subInterfaceNetworkRole = subInterface.getNetworkRole();
- if (Objects.isNull(subInterfaceNetworkRole)
- || Objects.isNull(subInterfacePortTemplateConsolidationData.getNetworkRole())) {
- continue;
+ private void createSubInterfaceVfcInstanceGroup(String abstractNodeTemplateId,
+ UnifiedCompositionTo unifiedCompositionTo,
+ UnifiedCompositionData unifiedCompositionData) {
+ List<SubInterfaceTemplateConsolidationData> subInterfaceTemplateConsolidationDataList =
+ getSubInterfaceTemplateConsolidationDataList(unifiedCompositionData);
+ for (SubInterfaceTemplateConsolidationData subInterface : subInterfaceTemplateConsolidationDataList) {
+ Optional<String> parentPortNetworkRole;
+ if (Objects.isNull(unifiedCompositionTo.getSubstitutionServiceTemplate())) {
+ parentPortNetworkRole = subInterface.getParentPortNetworkRole(unifiedCompositionTo.getServiceTemplate(),
+ unifiedCompositionTo.getContext());
+ } else {
+ parentPortNetworkRole = subInterface.getParentPortNetworkRole(unifiedCompositionTo
+ .getSubstitutionServiceTemplate(), unifiedCompositionTo.getContext());
}
- String vfcNetworkRoleGroupId = getVfcNetworkRoleGroupId(subInterfaceNetworkRole);
- Map<String, GroupDefinition> groups = DataModelUtil.getGroups(serviceTemplate);
- if (!groups.containsKey(vfcNetworkRoleGroupId)) {
- createNewVfcInstanceGroup(serviceTemplate, subInterfacePortTemplateConsolidationData,
- subInterfaceNetworkRole, vfcNetworkRoleGroupId);
+ String subInterfaceNetworkRole = subInterface.getNetworkRole();
+ if (Objects.nonNull(subInterfaceNetworkRole) && parentPortNetworkRole.isPresent()) {
+ createVfcInstanceGroupPerSubInterfaceNetworkRole(abstractNodeTemplateId, subInterfaceNetworkRole,
+ parentPortNetworkRole.get(), unifiedCompositionTo.getServiceTemplate());
}
- DataModelUtil.addGroupMember(serviceTemplate, vfcNetworkRoleGroupId, abstractNodeTemplateId);
}
}
+ private void createVfcInstanceGroupPerSubInterfaceNetworkRole(String abstractNodeTemplateId,
+ String subInterfaceNetworkRole,
+ String parentPortNetworkRole,
+ ServiceTemplate serviceTemplate) {
+ String vfcNetworkRoleGroupId = getVfcNetworkRoleGroupId(subInterfaceNetworkRole);
+ Map<String, GroupDefinition> groups = DataModelUtil.getGroups(serviceTemplate);
+ if (!groups.containsKey(vfcNetworkRoleGroupId)) {
+ createNewVfcInstanceGroup(serviceTemplate, parentPortNetworkRole, subInterfaceNetworkRole, vfcNetworkRoleGroupId);
+ }
+ DataModelUtil.addGroupMember(serviceTemplate, vfcNetworkRoleGroupId, abstractNodeTemplateId);
+ }
+
private void createNewVfcInstanceGroup(ServiceTemplate serviceTemplate,
- PortTemplateConsolidationData portTemplate,
+ String parentPortNetworkRole,
String subInterfaceNetworkRole,
String vfcNetworkRoleGroupId) {
Map<String, Object> properties = new HashMap<>();
properties.put(SUB_INTERFACE_ROLE, subInterfaceNetworkRole);
- properties.put(VFC_PARENT_PORT_ROLE, portTemplate.getNetworkRole());
+ properties.put(VFC_PARENT_PORT_ROLE, parentPortNetworkRole);
updateVfcInstanceGroupExposedProperties(subInterfaceNetworkRole,
serviceTemplate, properties);
@@ -494,18 +500,15 @@ public class UnifiedCompositionService {
/**
* Handle unified nested definition.
*
- * @param mainServiceTemplate the main service template
- * @param nestedServiceTemplate the nested service template
- * @param unifiedCompositionData the unified composition data
- * @param context the context
+ * @param unifiedCompositionTo the unified composition data transfer object
+ * @param unifiedCompositionData the unified composition data
*/
- public void handleUnifiedNestedDefinition(ServiceTemplate mainServiceTemplate,
- ServiceTemplate nestedServiceTemplate,
- UnifiedCompositionData unifiedCompositionData,
- TranslationContext context) {
- handleUnifiedNestedNodeType(mainServiceTemplate, nestedServiceTemplate, context);
- updateUnifiedNestedTemplates(mainServiceTemplate, nestedServiceTemplate,
- unifiedCompositionData, context);
+ public void handleUnifiedNestedDefinition(UnifiedCompositionTo unifiedCompositionTo,
+ UnifiedCompositionData unifiedCompositionData) {
+ handleUnifiedNestedNodeType(unifiedCompositionTo.getServiceTemplate(), unifiedCompositionTo
+ .getSubstitutionServiceTemplate(), unifiedCompositionTo.getContext());
+ updateUnifiedNestedTemplates(unifiedCompositionTo.getServiceTemplate(), unifiedCompositionTo
+ .getSubstitutionServiceTemplate(), unifiedCompositionData, unifiedCompositionTo.getContext());
}
private void handleGetAttrInConnectivity(ServiceTemplate serviceTemplate,
@@ -687,51 +690,55 @@ public class UnifiedCompositionService {
return;
}
handleNestedNodeTemplateInMainServiceTemplate(
- nestedTemplateConsolidationData.getNodeTemplateId(), mainServiceTemplate,
- nestedServiceTemplate, context);
-
+ nestedTemplateConsolidationData.getNodeTemplateId(), mainServiceTemplate,
+ nestedServiceTemplate, context);
}
/**
* Update connectivity for unified nested patterns.
*
- * @param serviceTemplate the service template
- * @param nestedServiceTemplate the nested service template
- * @param unifiedCompositionData the unified composition data
- * @param context the context
+ * @param unifiedCompositionTo the unified composition data transfer object
+ * @param unifiedCompositionData the unified composition data
*/
- public void updateUnifiedNestedConnectivity(ServiceTemplate serviceTemplate,
- ServiceTemplate nestedServiceTemplate,
- UnifiedCompositionData unifiedCompositionData,
- TranslationContext context) {
+ public void updateUnifiedNestedConnectivity(UnifiedCompositionTo unifiedCompositionTo,
+ UnifiedCompositionData unifiedCompositionData) {
- updNestedCompositionNodesConnectedInConnectivity(serviceTemplate, unifiedCompositionData,
- context);
- updNestedCompositionNodesConnectedOutConnectivity(serviceTemplate, nestedServiceTemplate,
- unifiedCompositionData, context);
- updNestedCompositionNodesGetAttrInConnectivity(serviceTemplate, unifiedCompositionData,
- context);
- updNestedCompositionOutputParamGetAttrInConnectivity(serviceTemplate,
- unifiedCompositionData, context);
+ updNestedCompositionNodesConnectedInConnectivity(unifiedCompositionTo.getServiceTemplate(), unifiedCompositionData,
+ unifiedCompositionTo.getContext());
+ updNestedCompositionNodesConnectedOutConnectivity(unifiedCompositionTo.getServiceTemplate(),
+ unifiedCompositionTo.getSubstitutionServiceTemplate(), unifiedCompositionData, unifiedCompositionTo
+ .getContext());
+ updNestedCompositionNodesGetAttrInConnectivity(unifiedCompositionTo.getServiceTemplate(), unifiedCompositionData,
+ unifiedCompositionTo.getContext());
+ updNestedCompositionOutputParamGetAttrInConnectivity(unifiedCompositionTo.getServiceTemplate(),
+ unifiedCompositionData, unifiedCompositionTo.getContext());
}
/**
* Clean unified nested entities. Update the heat stack group with the new node template ids.
*
- * @param serviceTemplate the service template
+ * @param unifiedCompositionTo the unified composition data transfer object
* @param unifiedCompositionData the unified composition data
- * @param context the context
*/
- public void cleanUnifiedNestedEntities(ServiceTemplate serviceTemplate,
- UnifiedCompositionData unifiedCompositionData,
- TranslationContext context) {
+ public void cleanUnifiedNestedEntities(UnifiedCompositionTo unifiedCompositionTo,
+ UnifiedCompositionData unifiedCompositionData) {
EntityConsolidationData entityConsolidationData =
- unifiedCompositionData.getNestedTemplateConsolidationData();
- updateHeatStackGroupNestedComposition(serviceTemplate, entityConsolidationData, context);
+ unifiedCompositionData.getNestedTemplateConsolidationData();
+ updateHeatStackGroupNestedComposition(unifiedCompositionTo.getServiceTemplate(), entityConsolidationData,
+ unifiedCompositionTo.getContext());
}
+ public void createNestedVfcInstanceGroup(String nestedNodeTemplateId,
+ UnifiedCompositionTo unifiedCompositionTo,
+ UnifiedCompositionData unifiedCompositionData) {
+ if (!TranslationContext.isVfcInstanceGroupingEnabled()) {
+ return;
+ }
+ createSubInterfaceVfcInstanceGroup(nestedNodeTemplateId, unifiedCompositionTo, unifiedCompositionData);
+ }
+
public void handleComplexVfcType(ServiceTemplate serviceTemplate, TranslationContext context) {
SubstitutionMapping substitutionMapping =
serviceTemplate.getTopology_template().getSubstitution_mappings();
@@ -1936,18 +1943,17 @@ public class UnifiedCompositionService {
subInterfaceTemplateConsolidationDataList) {
SubInterfaceTemplateConsolidationData subInterfaceTemplateConsolidationData =
subInterfaceTemplateConsolidationDataList.get(0);
- PortTemplateConsolidationData portTemplateConsolidationData =
- getSubInterfacePortTemplateConsolidationData(unifiedCompositionTo.getServiceTemplate(),
- subInterfaceTemplateConsolidationData, unifiedCompositionTo.getContext());
-
- if (Objects.isNull(portTemplateConsolidationData)) {
+ Optional<PortTemplateConsolidationData> portTemplateConsolidationDataOptional =
+ subInterfaceTemplateConsolidationData.getParentPortTemplateConsolidationData(unifiedCompositionTo
+ .getServiceTemplate(), unifiedCompositionTo.getContext());
+ if (!portTemplateConsolidationDataOptional.isPresent()) {
return;
}
-
+ PortTemplateConsolidationData portTemplateConsolidationData = portTemplateConsolidationDataOptional.get();
String originalSubInterfaceNodeTemplateId = subInterfaceTemplateConsolidationDataList.get(0)
.getNodeTemplateId();
- NodeTemplate originalSubInterfaceNodeTemplate =
- DataModelUtil.getNodeTemplate(unifiedCompositionTo.getServiceTemplate(), originalSubInterfaceNodeTemplateId);
+ NodeTemplate originalSubInterfaceNodeTemplate = DataModelUtil.getNodeTemplate(unifiedCompositionTo
+ .getServiceTemplate(), originalSubInterfaceNodeTemplateId);
if (Objects.isNull(originalSubInterfaceNodeTemplate)) {
return;
}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/UnifiedCompositionUtil.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/UnifiedCompositionUtil.java
index 223dc8760a..528dc5e0e2 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/UnifiedCompositionUtil.java
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/UnifiedCompositionUtil.java
@@ -19,33 +19,29 @@ package org.openecomp.sdc.translator.services.heattotosca;
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.ListMultimap;
import org.apache.commons.collections4.MapUtils;
-import org.openecomp.sdc.logging.api.Logger;
-import org.openecomp.sdc.logging.api.LoggerFactory;
import org.openecomp.sdc.tosca.datatypes.model.NodeTemplate;
import org.openecomp.sdc.tosca.datatypes.model.ServiceTemplate;
import org.openecomp.sdc.tosca.services.DataModelUtil;
-import org.openecomp.sdc.tosca.services.ToscaUtil;
import org.openecomp.sdc.translator.datatypes.heattotosca.TranslationContext;
import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.UnifiedCompositionData;
import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.ComputeTemplateConsolidationData;
-import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.FilePortConsolidationData;
import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.PortTemplateConsolidationData;
import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.SubInterfaceTemplateConsolidationData;
import java.util.ArrayList;
import java.util.Collection;
+import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
+import java.util.Optional;
/**
* Utility class for consolidation data collection helper methods.
*/
public class UnifiedCompositionUtil {
- protected static Logger logger = LoggerFactory.getLogger(UnifiedCompositionUtil.class);
-
private UnifiedCompositionUtil() {
//Hiding the implicit public constructor
}
@@ -155,34 +151,17 @@ public class UnifiedCompositionUtil {
StringBuilder newSubInterfaceNodeTemplateId = new StringBuilder();
newSubInterfaceNodeTemplateId.append(getNewPortNodeTemplateId(subInterfaceTemplateConsolidationData
.getParentPortNodeTemplateId(), connectedComputeNodeType, computeTemplateConsolidationData));
- PortTemplateConsolidationData portTemplateConsolidationData =
- getSubInterfacePortTemplateConsolidationData(serviceTemplate, subInterfaceTemplateConsolidationData, context);
+ Optional<PortTemplateConsolidationData> portTemplateConsolidationData =
+ subInterfaceTemplateConsolidationData.getParentPortTemplateConsolidationData(serviceTemplate, context);
NodeTemplate subInterfaceNodeTemplate =
DataModelUtil.getNodeTemplate(serviceTemplate, subInterfaceTemplateConsolidationData.getNodeTemplateId());
- if (Objects.nonNull(portTemplateConsolidationData)) {
- String subInterfaceSuffix = (portTemplateConsolidationData.isSubInterfaceNodeTemplateIdParameter(subInterfaceNodeTemplate.getType()))?
- //If there are more than one subinterfaces with same type use node template id
- subInterfaceTemplateConsolidationData.getNodeTemplateId():
- //Add sub interface type since we have only one subinterface per type
- getSubInterfaceTypeSuffix(subInterfaceNodeTemplate.getType());
- newSubInterfaceNodeTemplateId.append("_").append(subInterfaceSuffix);
- return newSubInterfaceNodeTemplateId.toString();
- }
- return subInterfaceTemplateConsolidationData.getNodeTemplateId();
- }
-
- static PortTemplateConsolidationData getSubInterfacePortTemplateConsolidationData(ServiceTemplate serviceTemplate,
- SubInterfaceTemplateConsolidationData
- subInterfaceTemplateConsolidationData,
- TranslationContext context) {
- FilePortConsolidationData filePortConsolidationData = context.getConsolidationData().getPortConsolidationData()
- .getFilePortConsolidationData(ToscaUtil.getServiceTemplateFileName(serviceTemplate));
- PortTemplateConsolidationData portTemplateConsolidationData = null;
- if (filePortConsolidationData != null) {
- portTemplateConsolidationData = filePortConsolidationData
- .getPortTemplateConsolidationData(subInterfaceTemplateConsolidationData.getParentPortNodeTemplateId());
+ if (portTemplateConsolidationData.isPresent()) {
+ String subInterfaceSuffix = getSubInterfaceSuffix(portTemplateConsolidationData.get(),
+ subInterfaceNodeTemplate, subInterfaceTemplateConsolidationData);
+ newSubInterfaceNodeTemplateId.append("_").append(subInterfaceSuffix);
+ return newSubInterfaceNodeTemplateId.toString();
}
- return portTemplateConsolidationData;
+ return subInterfaceTemplateConsolidationData.getNodeTemplateId();
}
static String getSubInterfaceTypeSuffix(String nodeType) {
@@ -191,8 +170,19 @@ public class UnifiedCompositionUtil {
public static List<SubInterfaceTemplateConsolidationData> getSubInterfaceTemplateConsolidationDataList(
UnifiedCompositionData unifiedCompositionData) {
- return unifiedCompositionData.getSubInterfaceTemplateConsolidationDataList() == null ? new
- ArrayList<>() : unifiedCompositionData.getSubInterfaceTemplateConsolidationDataList();
+ return unifiedCompositionData.getSubInterfaceTemplateConsolidationDataList() == null ? Collections.emptyList() :
+ unifiedCompositionData.getSubInterfaceTemplateConsolidationDataList();
}
+ private static String getSubInterfaceSuffix(PortTemplateConsolidationData portTemplateConsolidationData,
+ NodeTemplate subInterfaceNodeTemplate,
+ SubInterfaceTemplateConsolidationData
+ subInterfaceTemplateConsolidationData) {
+ if (portTemplateConsolidationData.isSubInterfaceNodeTemplateIdParameter(subInterfaceNodeTemplate.getType())) {
+ //If there are more than one subinterfaces with same type use node template id
+ return subInterfaceTemplateConsolidationData.getNodeTemplateId();
+ }
+ //Add sub interface type since we have only one subinterface per type
+ return getSubInterfaceTypeSuffix(subInterfaceNodeTemplate.getType());
+ }
}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/unifiedcomposition/UnifiedCompositionNestedSingleCompute.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/unifiedcomposition/UnifiedCompositionNestedSingleCompute.java
index d6b49ec35e..a48e107370 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/unifiedcomposition/UnifiedCompositionNestedSingleCompute.java
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/unifiedcomposition/UnifiedCompositionNestedSingleCompute.java
@@ -4,17 +4,17 @@ import org.apache.commons.collections4.CollectionUtils;
import org.openecomp.sdc.tosca.datatypes.model.ServiceTemplate;
import org.openecomp.sdc.translator.datatypes.heattotosca.TranslationContext;
import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.UnifiedCompositionData;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.to.UnifiedCompositionTo;
import org.openecomp.sdc.translator.services.heattotosca.UnifiedComposition;
import org.openecomp.sdc.translator.services.heattotosca.UnifiedCompositionService;
-import java.util.ArrayList;
import java.util.List;
public class UnifiedCompositionNestedSingleCompute implements UnifiedComposition {
- // There is no consolidation in NestedSingleCompute implemetation.
+ // There is no consolidation in NestedSingleCompute implementation.
// In case of nested single compute, if there is more than one entry in the
- // unifiedComposotionDataList, each one should be handed seperatly, no consolidation between
+ // unifiedCompositionDataList, each one should be handed separately, no consolidation between
// them.
@Override
public void createUnifiedComposition(ServiceTemplate serviceTemplate,
@@ -26,18 +26,15 @@ public class UnifiedCompositionNestedSingleCompute implements UnifiedComposition
return;
}
- for (int i = 0; i < unifiedCompositionDataList.size(); i++) {
- List<UnifiedCompositionData> nestedUnifiedCompositionDataList = new ArrayList<>();
- nestedUnifiedCompositionDataList.add(unifiedCompositionDataList.get(i));
-
- unifiedCompositionService
- .handleUnifiedNestedDefinition(serviceTemplate, nestedServiceTemplate,
- unifiedCompositionDataList.get(i), context);
- unifiedCompositionService
- .updateUnifiedNestedConnectivity(serviceTemplate, nestedServiceTemplate,
- unifiedCompositionDataList.get(i), context);
+ UnifiedCompositionTo unifiedCompositionTo = new UnifiedCompositionTo(serviceTemplate, nestedServiceTemplate,
+ unifiedCompositionDataList, context);
+ for (UnifiedCompositionData unifiedCompositionData : unifiedCompositionDataList) {
+ unifiedCompositionService.handleUnifiedNestedDefinition(unifiedCompositionTo, unifiedCompositionData);
+ String nestedNodeTemplateId = unifiedCompositionData.getNestedTemplateConsolidationData().getNodeTemplateId();
unifiedCompositionService
- .cleanUnifiedNestedEntities(serviceTemplate, unifiedCompositionDataList.get(i), context);
+ .createNestedVfcInstanceGroup(nestedNodeTemplateId, unifiedCompositionTo, unifiedCompositionData);
+ unifiedCompositionService.updateUnifiedNestedConnectivity(unifiedCompositionTo, unifiedCompositionData);
+ unifiedCompositionService.cleanUnifiedNestedEntities(unifiedCompositionTo, unifiedCompositionData);
unifiedCompositionService.updateSubstitutionNodeTypePrefix(nestedServiceTemplate);
}
}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/UnifiedCompositionServiceTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/UnifiedCompositionServiceTest.java
index e239805710..83b83d3353 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/UnifiedCompositionServiceTest.java
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/UnifiedCompositionServiceTest.java
@@ -16,6 +16,10 @@
package org.openecomp.sdc.translator.services.heattotosca;
+import static org.junit.Assert.assertEquals;
+import static org.mockito.Matchers.anyObject;
+import static org.mockito.Matchers.anyString;
+
import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.commons.lang3.tuple.Pair;
import org.junit.Before;
@@ -35,6 +39,7 @@ import org.openecomp.sdc.translator.datatypes.heattotosca.TranslationContext;
import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.UnifiedCompositionData;
import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.UnifiedCompositionEntity;
import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.UnifiedSubstitutionData;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.to.UnifiedCompositionTo;
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.EntityConsolidationData;
@@ -56,10 +61,6 @@ import java.util.Map;
import java.util.Objects;
import java.util.Optional;
-import static org.junit.Assert.assertEquals;
-import static org.mockito.Matchers.anyObject;
-import static org.mockito.Matchers.anyString;
-
public class UnifiedCompositionServiceTest {
private static final String BASE_DIRECTORY = "/mock/services/heattotosca/unifiedComposition/";
@InjectMocks
@@ -1003,9 +1004,11 @@ public class UnifiedCompositionServiceTest {
context.getTranslatedServiceTemplates()
.put(MAIN_SERVICE_TEMPLATE_YAML, inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML));
- UnifiedCompositionData unifiedComposition = createUnifiedCompositionOnlyNested("server_pcm_001");
- unifiedCompositionService.handleUnifiedNestedDefinition(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
- inputServiceTemplates.get(nestedFileName), unifiedComposition, context);
+ UnifiedCompositionData unifiedComposition = createUnifiedCompositionOnlyNested("server_pcm_001");
+ UnifiedCompositionTo unifiedCompositionTo = new UnifiedCompositionTo(
+ inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML), inputServiceTemplates.get(nestedFileName), null,
+ context);
+ unifiedCompositionService.handleUnifiedNestedDefinition(unifiedCompositionTo, unifiedComposition);
checkSTResults(expectedOutserviceTemplates, nestedFileName,
context.getTranslatedServiceTemplates().get(nestedFileName),
@@ -1044,13 +1047,15 @@ public class UnifiedCompositionServiceTest {
context.getTranslatedServiceTemplates()
.put(MAIN_SERVICE_TEMPLATE_YAML, inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML));
- UnifiedCompositionData unifiedComposition =
- createUnifiedCompositionOnlyNested("server_pcm_001");
- unifiedCompositionService.handleUnifiedNestedDefinition(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
- inputServiceTemplates.get(nestedFileName1), unifiedComposition, context);
- unifiedComposition = createUnifiedCompositionOnlyNested("server_oam_001");
- unifiedCompositionService.handleUnifiedNestedDefinition(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
- inputServiceTemplates.get(nestedFileName2), unifiedComposition, context);
+ UnifiedCompositionData unifiedComposition =
+ createUnifiedCompositionOnlyNested("server_pcm_001");
+ UnifiedCompositionTo unifiedCompositionTo1 = new UnifiedCompositionTo(inputServiceTemplates
+ .get(MAIN_SERVICE_TEMPLATE_YAML), inputServiceTemplates.get(nestedFileName1), null, context);
+ unifiedCompositionService.handleUnifiedNestedDefinition(unifiedCompositionTo1, unifiedComposition);
+ unifiedComposition = createUnifiedCompositionOnlyNested("server_oam_001");
+ UnifiedCompositionTo unifiedCompositionTo2 = new UnifiedCompositionTo(inputServiceTemplates
+ .get(MAIN_SERVICE_TEMPLATE_YAML), inputServiceTemplates.get(nestedFileName2), null, context);
+ unifiedCompositionService.handleUnifiedNestedDefinition(unifiedCompositionTo2, unifiedComposition);
checkSTResults(expectedOutserviceTemplates, nestedFileName1,
context.getTranslatedServiceTemplates().get(nestedFileName1),
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/fulltest/UnifiedCompositionSubInterfaceFullTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/fulltest/UnifiedCompositionSubInterfaceFullTest.java
index ca31c85307..89d7cab6a7 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/fulltest/UnifiedCompositionSubInterfaceFullTest.java
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/fulltest/UnifiedCompositionSubInterfaceFullTest.java
@@ -350,8 +350,7 @@ public class UnifiedCompositionSubInterfaceFullTest extends BaseFullTranslationT
* Nested Heat file with one compute, one port and one subinterface resource group with only
* port connected to network
*/
- testTranslationWithInit(PATTERN_4_BASE_DIRECTORY +
- "computePortNetworkSubInterface");
+ testTranslationWithInit(PATTERN_4_BASE_DIRECTORY + "computePortNetworkSubInterface");
}
@Test
@@ -428,6 +427,7 @@ public class UnifiedCompositionSubInterfaceFullTest extends BaseFullTranslationT
testTranslationWithInit(PATTERN_4_BASE_DIRECTORY + "subInterfaceNodesConnectedOut");
}
+
//****************** VFC Instance Group Tests ***************************
@Test
@@ -444,4 +444,15 @@ public class UnifiedCompositionSubInterfaceFullTest extends BaseFullTranslationT
public void testGroupingTwoSubInterfaceTypeAndTwoAbstractNodes() throws IOException {
testTranslationWithInit(VFC_INSTANCE_GROUP_BASE_DIRECTORY + "twoSubInterfaceNetworkRoleAndTwoAbstractNodes");
}
+
+ @Test
+ public void testSubInterfacePattern4WithGroup() throws IOException {
+ /*
+ * Nested Heat file with one compute, one port and one subinterface resource group with
+ * 1. Port connected to network
+ * 2. Sub-interface connected to same network
+ * 3. Sub-interface has depends on (out) connectivity with network resource
+ */
+ testTranslationWithInit(VFC_INSTANCE_GROUP_BASE_DIRECTORY + "pattern4SubInterfaceNodesConnectedOut");
+ }
}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern5/complexVFCMultiLevelNestedDiffComputeScenario/out/nested_pattern5ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern5/complexVFCMultiLevelNestedDiffComputeScenario/out/nested_pattern5ServiceTemplate.yaml
index 19e2b4e1e1..3add46dce6 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern5/complexVFCMultiLevelNestedDiffComputeScenario/out/nested_pattern5ServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern5/complexVFCMultiLevelNestedDiffComputeScenario/out/nested_pattern5ServiceTemplate.yaml
@@ -184,6 +184,7 @@ topology_template:
get_input: Vlan_vfc_instance_group_function
subinterface_role: Vlan
members:
+ - test_nested_level2
- abstract_pd_server_1b
substitution_mappings:
node_type: org.openecomp.resource.abstract.nodes.heat.nested_pattern5
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern5/complexVFCMultiLevelNestedScenario/out/nested_pattern5ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern5/complexVFCMultiLevelNestedScenario/out/nested_pattern5ServiceTemplate.yaml
index 45e7ec8f77..e0ee6fe9fe 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern5/complexVFCMultiLevelNestedScenario/out/nested_pattern5ServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern5/complexVFCMultiLevelNestedScenario/out/nested_pattern5ServiceTemplate.yaml
@@ -182,6 +182,7 @@ topology_template:
get_input: Vlan_vfc_instance_group_function
subinterface_role: Vlan
members:
+ - test_nested_level2
- abstract_pd_server_1b
substitution_mappings:
node_type: org.openecomp.resource.abstract.nodes.heat.nested_pattern5
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/vfcInstanceGroup/pattern4SubInterfaceNodesConnectedOut/in/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/vfcInstanceGroup/pattern4SubInterfaceNodesConnectedOut/in/MANIFEST.json
new file mode 100644
index 0000000000..6e418dbf74
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/vfcInstanceGroup/pattern4SubInterfaceNodesConnectedOut/in/MANIFEST.json
@@ -0,0 +1,22 @@
+{
+ "name": "vMME_Small",
+ "description": "HOT template to create 2 cinder volume attachment",
+ "version": "2013-05-23",
+ "data": [
+ {
+ "file": "main.yml",
+ "type": "HEAT",
+ "isBase": "true"
+ },
+ {
+ "file": "nested_pattern4.yml",
+ "type": "HEAT",
+ "isBase": "false"
+ },
+ {
+ "file": "nested_vlan.yml",
+ "type": "HEAT",
+ "isBase": "false"
+ }
+ ]
+}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/vfcInstanceGroup/pattern4SubInterfaceNodesConnectedOut/in/main.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/vfcInstanceGroup/pattern4SubInterfaceNodesConnectedOut/in/main.yml
new file mode 100644
index 0000000000..6c6881384b
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/vfcInstanceGroup/pattern4SubInterfaceNodesConnectedOut/in/main.yml
@@ -0,0 +1,35 @@
+heat_template_version: 2013-05-23
+
+description: >
+ Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
+
+parameters:
+ vnf_name:
+ type: string
+ description: Unique name for this VF instance
+ vf_module_name:
+ type: string
+ description: Unique name for this VF Module instance
+ vf_module_id:
+ type: string
+ description: Unique ID for this VF Module instance
+ tdcore_zone_0_count:
+ type: number
+ description: >
+ Number of TD Core VMs to be deployed zone 0.
+ This parameter is used to scale the TD Core instances.
+ constraints:
+ - range: { min: 0, max: 8 }
+
+resources:
+ tdcore_zone_0_RRG:
+ type: OS::Heat::ResourceGroup
+ properties:
+ count: { get_param: tdcore_zone_0_count }
+ index_var: $INDEX
+ resource_def:
+ type: nested_pattern4.yml
+ properties:
+ vnf_name: { get_param: vnf_name }
+ vf_module_id: {get_param: vf_module_id}
+ vf_module_name: {get_param: vf_module_name} \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/vfcInstanceGroup/pattern4SubInterfaceNodesConnectedOut/in/nested_pattern4.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/vfcInstanceGroup/pattern4SubInterfaceNodesConnectedOut/in/nested_pattern4.yml
new file mode 100644
index 0000000000..d876202ab1
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/vfcInstanceGroup/pattern4SubInterfaceNodesConnectedOut/in/nested_pattern4.yml
@@ -0,0 +1,233 @@
+heat_template_version: 2013-05-23
+
+description: >
+ Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
+
+parameters:
+ aap_address_mode:
+ description: "Address mode for the vDBE cluster IP"
+ type: string
+ control_int_net_forwarding_mode:
+ description: "forwarding mode of the control virtual network"
+ type: string
+ control_int_net_rpf:
+ description: "Reverse Path Filtering enable or disable for the control virtual network"
+ type: string
+ control_int_net_shared:
+ description: "control virtual network shared"
+ type: boolean
+ control_int_net_flood_unknown_unicast:
+ description: "forwarding mode of the control virtual network"
+ type: boolean
+ oam_net_name:
+ description: "Name of NSDNet network from which the management IP addresses will be allocated"
+ type: string
+ untrusted_net_name:
+ description: "Name of public untrusted network into which this vDBE HA cluster is deployed"
+ type: string
+ untrusted_num_vn:
+ constraints:
+ -
+ range:
+ max: 77
+ min: 1
+ description: "Number of vDBE subinterface virtual Networks"
+ type: number
+ untrusted_vlan_tags:
+ description: "List of subinterface vlan tags"
+ type: comma_delimited_list
+ untrusted_vn_networks:
+ description: "List of subinterface virtual networks"
+ type: comma_delimited_list
+ vdbe_aap_sec_untrusted_ip_prefix:
+ description: "ip prefix for secondary vDBE VM aap on the VAN untrusted network"
+ type: string
+ vdbe_aap_sec_untrusted_ip_prefix_len:
+ description: "ip prefix length for the secondary DBE VM aap on the VAN untrusted network"
+ type: string
+ vdbe_aap_untrusted_ip_prefix:
+ description: "ip prefix for primary vDBE VM on the VAN untrusted network"
+ type: string
+ vdbe_aap_untrusted_ip_prefix_len:
+ description: "ip prefix length for the primary vDBE VM on the VAN untrusted network"
+ type: string
+ vdbe_aap_untrusted_v6_ip_prefix:
+ description: "ipv6 prefix for the primary vDBE VM on the VAN untrusted network"
+ type: string
+ vdbe_aap_untrusted_v6_ip_prefix_len:
+ description: "ipv6 prefix length for the primary vDBE VM on the VAN untrusted network"
+ type: string
+ vdbe_device_name:
+ description: "VDBE device Name for this vdbe VNF"
+ type: string
+ vdbe_hw_untr_mac_1:
+ description: "Secondary MAC address of the secondary vDBE VM on the VAN untrusted network"
+ type: string
+ vdbe_name_1:
+ description: "VM Name for this vdbe node 1"
+ type: string
+ vdbe_untrusted_ip_1:
+ description: "IPV4 address of the secondary vDBE VM on the VAN untrusted network"
+ type: string
+ vdbe_untrusted_v6_ip_1:
+ description: "IPV6 address of the secondary vDBE VM on the VAN untrusted network"
+ type: string
+ vdbe_untrusted_vmac_address:
+ description: "Virtual MAC of the primary vDBE VM on the VAN untrusted network"
+ type: string
+ vdbe_flavor_name:
+ description: "Flavor to use for vDBE"
+ type: string
+ vdbe_image_name:
+ description: "Image to use for vDBE"
+ type: string
+ vnf_id:
+ description: "Unique ID for this VF inst"
+ type: string
+ vnf_name:
+ description: "Unique name for this VF instance"
+ type: string
+ vf_module_id:
+ description: "Unique ID for this VF module inst"
+ type: string
+ vf_module_name:
+ description: "Unique name for this VF module inst"
+ type: string
+ availability_zone_1:
+ description: "The availability zone of secondary node1 vDBE vm in the local HA pair."
+ type: string
+resources:
+ vdbe_node_1:
+ type: OS::Nova::Server
+ properties:
+ availability_zone:
+ get_param: availability_zone_1
+ flavor:
+ get_param: vdbe_flavor_name
+ image:
+ get_param: vdbe_image_name
+ metadata:
+ vf_module_id:
+ get_param: vf_module_id
+ vnf_id:
+ get_param: vnf_id
+ vnf_name:
+ get_param: vnf_name
+ name:
+ get_param: vdbe_name_1
+ networks:
+ - port: {get_resource: vdbe_0_untr_vmi_1}
+ vdbe_0_untr_vmi_1:
+ properties:
+ name:
+ str_replace:
+ params:
+ DBE:
+ get_param: vdbe_device_name
+ VM_NAME:
+ get_param: vdbe_name_1
+ template: VM_NAMEDBE001p1n004
+ virtual_machine_interface_allowed_address_pairs:
+ virtual_machine_interface_allowed_address_pairs_allowed_address_pair:
+ -
+ virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+ get_param: aap_address_mode
+ virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+ virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+ get_param: vdbe_aap_untrusted_ip_prefix
+ virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+ get_param: vdbe_aap_untrusted_ip_prefix_len
+ virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+ get_param: vdbe_untrusted_vmac_address
+ -
+ virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+ get_param: aap_address_mode
+ virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+ virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+ get_param: vdbe_aap_sec_untrusted_ip_prefix
+ virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+ get_param: vdbe_aap_sec_untrusted_ip_prefix_len
+ virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+ get_param: vdbe_hw_untr_mac_1
+ -
+ virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+ get_param: aap_address_mode
+ virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+ virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+ get_param: vdbe_aap_untrusted_v6_ip_prefix
+ virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+ get_param: vdbe_aap_untrusted_v6_ip_prefix_len
+ virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+ get_param: vdbe_untrusted_vmac_address
+ virtual_machine_interface_mac_addresses:
+ virtual_machine_interface_mac_addresses_mac_address:
+ -
+ get_param: vdbe_hw_untr_mac_1
+ virtual_network_refs:
+ -
+ get_resource: control_int_net
+ type: OS::ContrailV2::VirtualMachineInterface
+ vdbe_untr_1_subports:
+ type: OS::Heat::ResourceGroup
+ depends_on: control_int_net
+ properties:
+ count:
+ get_param: untrusted_num_vn
+ resource_def:
+ type: nested_vlan.yml
+ properties:
+ aap_address_mode:
+ get_param: aap_address_mode
+ aap_sec_untrusted_ip_prefix:
+ get_param: vdbe_aap_sec_untrusted_ip_prefix
+ aap_sec_untrusted_ip_prefix_len:
+ get_param: vdbe_aap_sec_untrusted_ip_prefix_len
+ aap_untrusted_ip_prefix:
+ get_param: vdbe_aap_untrusted_ip_prefix
+ aap_untrusted_ip_prefix_len:
+ get_param: vdbe_aap_untrusted_ip_prefix_len
+ aap_untrusted_v6_ip_prefix:
+ get_param: vdbe_aap_untrusted_v6_ip_prefix
+ aap_untrusted_v6_ip_prefix_len:
+ get_param: vdbe_aap_untrusted_v6_ip_prefix_len
+ counter: "%index%"
+ ip_address:
+ get_param: vdbe_untrusted_ip_1
+ ip_v6_address:
+ get_param: vdbe_untrusted_v6_ip_1
+ mac_address:
+ get_param: vdbe_hw_untr_mac_1
+ parent_interface:
+ get_resource: vdbe_0_untr_vmi_1
+ subinterfaces_name_prefix:
+ str_replace:
+ params:
+ DBE:
+ get_param: vdbe_device_name
+ VM_NAME:
+ get_param: vdbe_name_1
+ template: VM_NAMEDBE001p1n004
+ vlan_tag_list:
+ get_param: untrusted_vlan_tags
+ vmac_address:
+ get_param: vdbe_untrusted_vmac_address
+ vdbe_subport_network:
+ get_resource: control_int_net
+ control_int_net:
+ type: OS::ContrailV2::VirtualNetwork
+ properties:
+ flood_unknown_unicast:
+ get_param: control_int_net_flood_unknown_unicast
+ is_shared:
+ get_param: control_int_net_shared
+ name:
+ str_replace:
+ params:
+ VNF_NAME:
+ get_param: vnf_name
+ template: VNF_NAME_control_net
+ virtual_network_properties:
+ virtual_network_properties_forwarding_mode:
+ get_param: control_int_net_forwarding_mode
+ virtual_network_properties_rpf:
+ get_param: control_int_net_rpf
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/vfcInstanceGroup/pattern4SubInterfaceNodesConnectedOut/in/nested_vlan.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/vfcInstanceGroup/pattern4SubInterfaceNodesConnectedOut/in/nested_vlan.yml
new file mode 100644
index 0000000000..8b4b9b15a8
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/vfcInstanceGroup/pattern4SubInterfaceNodesConnectedOut/in/nested_vlan.yml
@@ -0,0 +1,116 @@
+heat_template_version: 2013-05-23
+
+description: cmaui server template for vMMSC
+
+parameters:
+ aap_address_mode:
+ description: "Address mode for the vDBE cluster IP"
+ type: string
+ aap_sec_untrusted_ip_prefix:
+ description: "ip prefix for secondary vDBE VM aap on the VAN untrusted network"
+ type: string
+ aap_sec_untrusted_ip_prefix_len:
+ description: "ip prefix length for the secondary DBE VM aap on the VAN untrusted network"
+ type: string
+ aap_untrusted_ip_prefix:
+ description: "ip prefix for primary vDBE VM on the VAN untrusted network"
+ type: string
+ aap_untrusted_ip_prefix_len:
+ description: "ip prefix length for the primary vDBE VM on the VAN untrusted network"
+ type: string
+ aap_untrusted_v6_ip_prefix:
+ description: "ipv6 prefix for the primary vDBE VM on the VAN untrusted network"
+ type: string
+ aap_untrusted_v6_ip_prefix_len:
+ description: "ipv6 prefix length for the primary vDBE VM on the VAN untrusted network"
+ type: string
+ counter:
+ description: "Index of instance among multiple instances. Use to retrieve correct parameter for this instance when passed all parameters for all instances."
+ type: number
+ mac_address:
+ description: "HW MAC address to use for subinterface"
+ type: string
+ parent_interface:
+ description: "Parent Contrail interface"
+ type: string
+ subinterfaces_name_prefix:
+ description: "Combined with subinterface_instance_index, this is used as the name of the subinterface resource"
+ type: string
+ vlan_tag_list:
+ description: "List of VLAN IDs to use for subinterfaces"
+ type: comma_delimited_list
+ vmac_address:
+ description: "virtual MAC address to use for subinterface"
+ type: string
+ vdbe_subport_network:
+ description: "List of Contrail VLAN networks to use for the subinterfaces. The order and number of these must match the VLAN ID list"
+ type: string
+ ip_address:
+ description: "IPv4 address associated with subinterfaces"
+ type: string
+ ip_v6_address:
+ description: "IPv6 address associated with subinterfaces"
+ type: string
+resources:
+ vdbe_0_subint_untr_vmi_1:
+ type: OS::ContrailV2::VirtualMachineInterface
+ properties:
+ name:
+ str_replace:
+ params:
+ $INDEX:
+ get_param:
+ - vlan_tag_list
+ -
+ get_param: counter
+ $NAME:
+ get_param: subinterfaces_name_prefix
+ template: $NAME_$INDEX
+ virtual_machine_interface_allowed_address_pairs:
+ virtual_machine_interface_allowed_address_pairs_allowed_address_pair:
+ -
+ virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+ get_param: aap_address_mode
+ virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+ virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+ get_param: aap_untrusted_ip_prefix
+ virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+ get_param: aap_untrusted_ip_prefix_len
+ virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+ get_param: vmac_address
+ -
+ virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+ get_param: aap_address_mode
+ virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+ virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+ get_param: aap_sec_untrusted_ip_prefix
+ virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+ get_param: aap_sec_untrusted_ip_prefix_len
+ virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+ get_param: mac_address
+ -
+ virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+ get_param: aap_address_mode
+ virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+ virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+ get_param: aap_untrusted_v6_ip_prefix
+ virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+ get_param: aap_untrusted_v6_ip_prefix_len
+ virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+ get_param: vmac_address
+ virtual_machine_interface_mac_addresses:
+ virtual_machine_interface_mac_addresses_mac_address:
+ -
+ get_param: mac_address
+ virtual_machine_interface_properties:
+ virtual_machine_interface_properties_sub_interface_vlan_tag:
+ get_param:
+ - vlan_tag_list
+ -
+ get_param: counter
+ virtual_machine_interface_refs:
+ [{get_param: parent_interface}]
+ virtual_network_refs:
+ [{get_param: vdbe_subport_network}]
+
+
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/vfcInstanceGroup/pattern4SubInterfaceNodesConnectedOut/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/vfcInstanceGroup/pattern4SubInterfaceNodesConnectedOut/out/GlobalSubstitutionTypesServiceTemplate.yaml
new file mode 100644
index 0000000000..e937a9e6bd
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/vfcInstanceGroup/pattern4SubInterfaceNodesConnectedOut/out/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -0,0 +1,692 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: GlobalSubstitutionTypes
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+node_types:
+ org.openecomp.resource.abstract.nodes.heat.vdbe:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ properties:
+ vf_module_id:
+ type: string
+ description: Unique ID for this VF module inst
+ required: true
+ status: SUPPORTED
+ port_vdbe_0_untr_vmi_1_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ control_int_net_rpf:
+ type: string
+ description: Reverse Path Filtering enable or disable for the control virtual network
+ required: true
+ status: SUPPORTED
+ control_int_net_forwarding_mode:
+ type: string
+ description: forwarding mode of the control virtual network
+ required: true
+ status: SUPPORTED
+ vnf_name:
+ type: string
+ description: Unique name for this VF instance
+ required: true
+ status: SUPPORTED
+ vdbe_untrusted_ip_1:
+ type: string
+ description: IPV4 address of the secondary vDBE VM on the VAN untrusted network
+ required: true
+ status: SUPPORTED
+ vdbe_aap_untrusted_ip_prefix_len:
+ type: string
+ description: ip prefix length for the primary vDBE VM on the VAN untrusted network
+ required: true
+ status: SUPPORTED
+ port_vdbe_0_untr_vmi_1_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ untrusted_num_vn:
+ type: float
+ description: Number of vDBE subinterface virtual Networks
+ required: true
+ status: SUPPORTED
+ constraints:
+ - in_range:
+ - 1
+ - 77
+ vf_module_name:
+ type: string
+ description: Unique name for this VF module inst
+ required: true
+ status: SUPPORTED
+ aap_address_mode:
+ type: string
+ description: Address mode for the vDBE cluster IP
+ required: true
+ status: SUPPORTED
+ control_int_net_shared:
+ type: boolean
+ description: control virtual network shared
+ required: true
+ status: SUPPORTED
+ vdbe_untrusted_v6_ip_1:
+ type: string
+ description: IPV6 address of the secondary vDBE VM on the VAN untrusted network
+ required: true
+ status: SUPPORTED
+ vdbe_untrusted_vmac_address:
+ type: string
+ description: Virtual MAC of the primary vDBE VM on the VAN untrusted network
+ required: true
+ status: SUPPORTED
+ control_int_net_flood_unknown_unicast:
+ type: boolean
+ description: forwarding mode of the control virtual network
+ required: true
+ status: SUPPORTED
+ vdbe_aap_sec_untrusted_ip_prefix:
+ type: string
+ description: ip prefix for secondary vDBE VM aap on the VAN untrusted network
+ required: true
+ status: SUPPORTED
+ vnf_id:
+ type: string
+ description: Unique ID for this VF inst
+ required: true
+ status: SUPPORTED
+ port_vdbe_0_untr_vmi_1_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ vdbe_name_1:
+ type: string
+ description: VM Name for this vdbe node 1
+ required: true
+ status: SUPPORTED
+ availability_zone_1:
+ type: string
+ description: The availability zone of secondary node1 vDBE vm in the local HA pair.
+ required: true
+ status: SUPPORTED
+ port_vdbe_0_untr_vmi_1_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ untrusted_vn_networks:
+ type: list
+ description: List of subinterface virtual networks
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ vdbe_image_name:
+ type: string
+ description: Image to use for vDBE
+ required: true
+ status: SUPPORTED
+ oam_net_name:
+ type: string
+ description: Name of NSDNet network from which the management IP addresses will be allocated
+ required: true
+ status: SUPPORTED
+ vdbe_aap_sec_untrusted_ip_prefix_len:
+ type: string
+ description: ip prefix length for the secondary DBE VM aap on the VAN untrusted network
+ required: true
+ status: SUPPORTED
+ vdbe_aap_untrusted_v6_ip_prefix:
+ type: string
+ description: ipv6 prefix for the primary vDBE VM on the VAN untrusted network
+ required: true
+ status: SUPPORTED
+ vdbe_aap_untrusted_v6_ip_prefix_len:
+ type: string
+ description: ipv6 prefix length for the primary vDBE VM on the VAN untrusted network
+ required: true
+ status: SUPPORTED
+ untrusted_vlan_tags:
+ type: list
+ description: List of subinterface vlan tags
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_vdbe_0_untr_vmi_1_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ vdbe_flavor_name:
+ type: string
+ description: Flavor to use for vDBE
+ required: true
+ status: SUPPORTED
+ port_vdbe_0_untr_vmi_1_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ vdbe_hw_untr_mac_1:
+ type: string
+ description: Secondary MAC address of the secondary vDBE VM on the VAN untrusted network
+ required: true
+ status: SUPPORTED
+ untrusted_net_name:
+ type: string
+ description: Name of public untrusted network into which this vDBE HA cluster is deployed
+ required: true
+ status: SUPPORTED
+ vdbe_device_name:
+ type: string
+ description: VDBE device Name for this vdbe VNF
+ required: true
+ status: SUPPORTED
+ port_vdbe_0_untr_vmi_1_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ vdbe_aap_untrusted_ip_prefix:
+ type: string
+ description: ip prefix for primary vDBE VM on the VAN untrusted network
+ required: true
+ status: SUPPORTED
+ port_vdbe_0_untr_vmi_1_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ requirements:
+ - dependency_vdbe_0_untr_vmi_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_vdbe_node_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_vdbe_node_1:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_vdbe_untr_1_subports:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_vdbe_0_subint_untr_vmi_1_vdbe_untr_1_subports:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_control_int_net:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capabilities:
+ disk.latency_vdbe_node_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_vdbe_node_1:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ instance_vdbe_node_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes_vdbe_0_untr_vmi_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests_vdbe_node_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.usage_vdbe_node_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_vdbe_0_untr_vmi_1:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ forwarder_vdbe_0_untr_vmi_1:
+ type: org.openecomp.capabilities.Forwarder
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes_vdbe_node_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes_vdbe_node_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.allocation_vdbe_node_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory_vdbe_node_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_util_vdbe_node_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes_vdbe_node_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_vdbe_0_untr_vmi_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes.rate_vdbe_node_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.allocation_vdbe_node_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests.rate_vdbe_node_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.root.size_vdbe_node_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.iops_vdbe_node_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests_vdbe_node_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests_vdbe_node_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ vcpus_vdbe_node_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.ephemeral.size_vdbe_node_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_vdbe_0_untr_vmi_1:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_vdbe_untr_1_subports:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_vdbe_0_untr_vmi_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.latency_vdbe_node_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.capacity_vdbe_node_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.capacity_vdbe_node_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.packets.rate_vdbe_0_untr_vmi_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ link_control_int_net:
+ type: tosca.capabilities.network.Linkable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ end_point_control_int_net:
+ type: tosca.capabilities.Endpoint
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.usage_vdbe_node_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes_vdbe_node_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests.rate_vdbe_node_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ host_vdbe_node_1:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_control_int_net:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes_vdbe_0_untr_vmi_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu.delta_vdbe_node_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ scalable_vdbe_node_1:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.iops_vdbe_node_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets.rate_vdbe_0_untr_vmi_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_vdbe_node_1:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.resident_vdbe_node_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ endpoint_vdbe_node_1:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_vdbe_0_untr_vmi_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ os_vdbe_node_1:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_vdbe_0_subint_untr_vmi_1_vdbe_untr_1_subports:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes.rate_vdbe_node_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes.rate_vdbe_node_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_vdbe_0_untr_vmi_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_control_int_net:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_vdbe_node_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests.rate_vdbe_node_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.requests_vdbe_node_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes.rate_vdbe_node_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.usage_vdbe_node_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ org.openecomp.resource.abstract.nodes.heat.subinterface.nested_vlan:
+ derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+ properties:
+ aap_untrusted_ip_prefix:
+ type: string
+ description: ip prefix for primary vDBE VM on the VAN untrusted network
+ required: true
+ status: SUPPORTED
+ aap_sec_untrusted_ip_prefix:
+ type: string
+ description: ip prefix for secondary vDBE VM aap on the VAN untrusted network
+ required: true
+ status: SUPPORTED
+ vdbe_subport_network:
+ type: string
+ description: List of Contrail VLAN networks to use for the subinterfaces. The order and number of these must match the VLAN ID list
+ required: true
+ status: SUPPORTED
+ ip_v6_address:
+ type: string
+ description: IPv6 address associated with subinterfaces
+ required: true
+ status: SUPPORTED
+ counter:
+ type: float
+ description: Index of instance among multiple instances. Use to retrieve correct parameter for this instance when passed all parameters for all instances.
+ required: true
+ status: SUPPORTED
+ subinterfaces_name_prefix:
+ type: string
+ description: Combined with subinterface_instance_index, this is used as the name of the subinterface resource
+ required: true
+ status: SUPPORTED
+ ip_address:
+ type: string
+ description: IPv4 address associated with subinterfaces
+ required: true
+ status: SUPPORTED
+ aap_address_mode:
+ type: string
+ description: Address mode for the vDBE cluster IP
+ required: true
+ status: SUPPORTED
+ aap_untrusted_v6_ip_prefix:
+ type: string
+ description: ipv6 prefix for the primary vDBE VM on the VAN untrusted network
+ required: true
+ status: SUPPORTED
+ parent_interface:
+ type: string
+ description: Parent Contrail interface
+ required: true
+ status: SUPPORTED
+ mac_address:
+ type: string
+ description: HW MAC address to use for subinterface
+ required: true
+ status: SUPPORTED
+ vlan_tag_list:
+ type: list
+ description: List of VLAN IDs to use for subinterfaces
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ aap_sec_untrusted_ip_prefix_len:
+ type: string
+ description: ip prefix length for the secondary DBE VM aap on the VAN untrusted network
+ required: true
+ status: SUPPORTED
+ vmac_address:
+ type: string
+ description: virtual MAC address to use for subinterface
+ required: true
+ status: SUPPORTED
+ aap_untrusted_v6_ip_prefix_len:
+ type: string
+ description: ipv6 prefix length for the primary vDBE VM on the VAN untrusted network
+ required: true
+ status: SUPPORTED
+ aap_untrusted_ip_prefix_len:
+ type: string
+ description: ip prefix length for the primary vDBE VM on the VAN untrusted network
+ required: true
+ status: SUPPORTED
+ requirements:
+ - dependency_vdbe_0_subint_untr_vmi_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_vdbe_0_subint_untr_vmi_1:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - binding_vdbe_0_subint_untr_vmi_1:
+ capability: tosca.capabilities.network.Bindable
+ node: org.openecomp.resource.cp.nodes.network.Port
+ relationship: tosca.relationships.network.BindsTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ feature_vdbe_0_subint_untr_vmi_1:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/vfcInstanceGroup/pattern4SubInterfaceNodesConnectedOut/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/vfcInstanceGroup/pattern4SubInterfaceNodesConnectedOut/out/MainServiceTemplate.yaml
new file mode 100644
index 0000000000..94f7b2fa25
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/vfcInstanceGroup/pattern4SubInterfaceNodesConnectedOut/out/MainServiceTemplate.yaml
@@ -0,0 +1,110 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Main
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+topology_template:
+ inputs:
+ vf_module_id:
+ hidden: false
+ immutable: false
+ annotations:
+ source:
+ type: org.openecomp.annotations.Source
+ properties:
+ vf_module_label:
+ - main
+ source_type: HEAT
+ param_name: vf_module_id
+ type: string
+ description: Unique ID for this VF Module instance
+ vnf_name:
+ hidden: false
+ immutable: false
+ annotations:
+ source:
+ type: org.openecomp.annotations.Source
+ properties:
+ vf_module_label:
+ - main
+ source_type: HEAT
+ param_name: vnf_name
+ type: string
+ description: Unique name for this VF instance
+ tdcore_zone_0_count:
+ hidden: false
+ immutable: false
+ annotations:
+ source:
+ type: org.openecomp.annotations.Source
+ properties:
+ vf_module_label:
+ - main
+ source_type: HEAT
+ param_name: tdcore_zone_0_count
+ type: float
+ description: |
+ Number of TD Core VMs to be deployed zone 0. This parameter is used to scale the TD Core instances.
+ constraints:
+ - in_range:
+ - 0
+ - 8
+ untr_network_collection_function:
+ type: string
+ required: true
+ untr_vfc_instance_group_function:
+ type: string
+ required: true
+ vf_module_name:
+ hidden: false
+ immutable: false
+ annotations:
+ source:
+ type: org.openecomp.annotations.Source
+ properties:
+ vf_module_label:
+ - main
+ source_type: HEAT
+ param_name: vf_module_name
+ type: string
+ description: Unique name for this VF Module instance
+ node_templates:
+ tdcore_zone_0_RRG:
+ type: org.openecomp.resource.abstract.nodes.heat.vdbe
+ directives:
+ - substitutable
+ properties:
+ vf_module_id:
+ get_input: vf_module_id
+ service_template_filter:
+ substitute_service_template: nested_pattern4ServiceTemplate.yaml
+ count:
+ get_input: tdcore_zone_0_count
+ mandatory: false
+ vnf_name:
+ get_input: vnf_name
+ vf_module_name:
+ get_input: vf_module_name
+ groups:
+ main_group:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/main.yml
+ description: |
+ Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
+ members:
+ - tdcore_zone_0_RRG
+ untr_group:
+ type: org.openecomp.groups.VfcInstanceGroup
+ properties:
+ vfc_parent_port_role: untr
+ network_collection_function:
+ get_input: untr_network_collection_function
+ vfc_instance_group_function:
+ get_input: untr_vfc_instance_group_function
+ subinterface_role: untr
+ members:
+ - tdcore_zone_0_RRG \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/vfcInstanceGroup/pattern4SubInterfaceNodesConnectedOut/out/nested_pattern4ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/vfcInstanceGroup/pattern4SubInterfaceNodesConnectedOut/out/nested_pattern4ServiceTemplate.yaml
new file mode 100644
index 0000000000..2ba36df895
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/vfcInstanceGroup/pattern4SubInterfaceNodesConnectedOut/out/nested_pattern4ServiceTemplate.yaml
@@ -0,0 +1,561 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: nested_pattern4
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.compute.nodes.heat.vdbe:
+ 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 this VF module inst
+ port_vdbe_0_untr_vmi_1_network_role_tag:
+ type: string
+ required: true
+ control_int_net_rpf:
+ hidden: false
+ immutable: false
+ type: string
+ description: Reverse Path Filtering enable or disable for the control virtual network
+ control_int_net_forwarding_mode:
+ hidden: false
+ immutable: false
+ type: string
+ description: forwarding mode of the control virtual network
+ vnf_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: Unique name for this VF instance
+ vdbe_untrusted_ip_1:
+ hidden: false
+ immutable: false
+ type: string
+ description: IPV4 address of the secondary vDBE VM on the VAN untrusted network
+ vdbe_aap_untrusted_ip_prefix_len:
+ hidden: false
+ immutable: false
+ type: string
+ description: ip prefix length for the primary vDBE VM on the VAN untrusted network
+ port_vdbe_0_untr_vmi_1_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ untrusted_num_vn:
+ hidden: false
+ immutable: false
+ type: float
+ description: Number of vDBE subinterface virtual Networks
+ constraints:
+ - in_range:
+ - 1
+ - 77
+ vf_module_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: Unique name for this VF module inst
+ aap_address_mode:
+ hidden: false
+ immutable: false
+ type: string
+ description: Address mode for the vDBE cluster IP
+ control_int_net_shared:
+ hidden: false
+ immutable: false
+ type: boolean
+ description: control virtual network shared
+ vdbe_untrusted_v6_ip_1:
+ hidden: false
+ immutable: false
+ type: string
+ description: IPV6 address of the secondary vDBE VM on the VAN untrusted network
+ vdbe_untrusted_vmac_address:
+ hidden: false
+ immutable: false
+ type: string
+ description: Virtual MAC of the primary vDBE VM on the VAN untrusted network
+ control_int_net_flood_unknown_unicast:
+ hidden: false
+ immutable: false
+ type: boolean
+ description: forwarding mode of the control virtual network
+ vdbe_aap_sec_untrusted_ip_prefix:
+ hidden: false
+ immutable: false
+ type: string
+ description: ip prefix for secondary vDBE VM aap on the VAN untrusted network
+ vnf_id:
+ hidden: false
+ immutable: false
+ type: string
+ description: Unique ID for this VF inst
+ port_vdbe_0_untr_vmi_1_order:
+ type: integer
+ required: true
+ vdbe_name_1:
+ hidden: false
+ immutable: false
+ type: string
+ description: VM Name for this vdbe node 1
+ availability_zone_1:
+ hidden: false
+ immutable: false
+ type: string
+ description: The availability zone of secondary node1 vDBE vm in the local HA pair.
+ port_vdbe_0_untr_vmi_1_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ untrusted_vn_networks:
+ hidden: false
+ immutable: false
+ type: list
+ description: List of subinterface virtual networks
+ entry_schema:
+ type: string
+ vdbe_image_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: Image to use for vDBE
+ oam_net_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: Name of NSDNet network from which the management IP addresses will be allocated
+ vdbe_aap_sec_untrusted_ip_prefix_len:
+ hidden: false
+ immutable: false
+ type: string
+ description: ip prefix length for the secondary DBE VM aap on the VAN untrusted network
+ vdbe_aap_untrusted_v6_ip_prefix:
+ hidden: false
+ immutable: false
+ type: string
+ description: ipv6 prefix for the primary vDBE VM on the VAN untrusted network
+ vdbe_aap_untrusted_v6_ip_prefix_len:
+ hidden: false
+ immutable: false
+ type: string
+ description: ipv6 prefix length for the primary vDBE VM on the VAN untrusted network
+ untrusted_vlan_tags:
+ hidden: false
+ immutable: false
+ type: list
+ description: List of subinterface vlan tags
+ entry_schema:
+ type: string
+ port_vdbe_0_untr_vmi_1_subnetpoolid:
+ type: string
+ required: true
+ vdbe_flavor_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: Flavor to use for vDBE
+ port_vdbe_0_untr_vmi_1_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ vdbe_hw_untr_mac_1:
+ hidden: false
+ immutable: false
+ type: string
+ description: Secondary MAC address of the secondary vDBE VM on the VAN untrusted network
+ untrusted_net_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: Name of public untrusted network into which this vDBE HA cluster is deployed
+ vdbe_device_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: VDBE device Name for this vdbe VNF
+ port_vdbe_0_untr_vmi_1_network_role:
+ type: string
+ required: true
+ vdbe_aap_untrusted_ip_prefix:
+ hidden: false
+ immutable: false
+ type: string
+ description: ip prefix for primary vDBE VM on the VAN untrusted network
+ port_vdbe_0_untr_vmi_1_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ node_templates:
+ vdbe_0_untr_vmi_1:
+ type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface
+ properties:
+ ip_requirements:
+ get_input: port_vdbe_0_untr_vmi_1_ip_requirements
+ network_role:
+ get_input: port_vdbe_0_untr_vmi_1_network_role
+ subnetpoolid:
+ get_input: port_vdbe_0_untr_vmi_1_subnetpoolid
+ mac_requirements:
+ get_input: port_vdbe_0_untr_vmi_1_mac_requirements
+ name:
+ str_replace:
+ template: VM_NAMEDBE001p1n004
+ params:
+ DBE:
+ get_input: vdbe_device_name
+ VM_NAME:
+ get_input: vdbe_name_1
+ exCP_naming:
+ get_input: port_vdbe_0_untr_vmi_1_exCP_naming
+ virtual_network_refs:
+ - control_int_net
+ vlan_requirements:
+ get_input: port_vdbe_0_untr_vmi_1_vlan_requirements
+ virtual_machine_interface_allowed_address_pairs:
+ allowed_address_pair:
+ - address_mode:
+ get_input: aap_address_mode
+ ip:
+ ip_prefix:
+ get_input: vdbe_aap_untrusted_ip_prefix
+ ip_prefix_len:
+ get_input: vdbe_aap_untrusted_ip_prefix_len
+ mac:
+ get_input: vdbe_untrusted_vmac_address
+ - address_mode:
+ get_input: aap_address_mode
+ ip:
+ ip_prefix:
+ get_input: vdbe_aap_sec_untrusted_ip_prefix
+ ip_prefix_len:
+ get_input: vdbe_aap_sec_untrusted_ip_prefix_len
+ mac:
+ get_input: vdbe_hw_untr_mac_1
+ - address_mode:
+ get_input: aap_address_mode
+ ip:
+ ip_prefix:
+ get_input: vdbe_aap_untrusted_v6_ip_prefix
+ ip_prefix_len:
+ get_input: vdbe_aap_untrusted_v6_ip_prefix_len
+ mac:
+ get_input: vdbe_untrusted_vmac_address
+ network_role_tag:
+ get_input: port_vdbe_0_untr_vmi_1_network_role_tag
+ virtual_machine_interface_mac_addresses:
+ - get_input: vdbe_hw_untr_mac_1
+ order:
+ get_input: port_vdbe_0_untr_vmi_1_order
+ requirements:
+ - link:
+ capability: tosca.capabilities.network.Linkable
+ node: control_int_net
+ relationship: tosca.relationships.network.LinksTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vdbe_node_1
+ relationship: tosca.relationships.network.BindsTo
+ vdbe_node_1:
+ type: org.openecomp.resource.vfc.compute.nodes.heat.vdbe
+ properties:
+ flavor:
+ get_input: vdbe_flavor_name
+ availability_zone:
+ get_input: availability_zone_1
+ image:
+ get_input: vdbe_image_name
+ metadata:
+ vf_module_id:
+ get_input: vf_module_id
+ vnf_id:
+ get_input: vnf_id
+ vnf_name:
+ get_input: vnf_name
+ name:
+ get_input: vdbe_name_1
+ vdbe_untr_1_subports:
+ type: org.openecomp.resource.abstract.nodes.heat.subinterface.nested_vlan
+ directives:
+ - substitutable
+ properties:
+ aap_untrusted_ip_prefix:
+ get_input: vdbe_aap_untrusted_ip_prefix
+ aap_sec_untrusted_ip_prefix:
+ get_input: vdbe_aap_sec_untrusted_ip_prefix
+ vdbe_subport_network: control_int_net
+ ip_v6_address:
+ get_input: vdbe_untrusted_v6_ip_1
+ counter:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ ip_address:
+ get_input: vdbe_untrusted_ip_1
+ subinterfaces_name_prefix:
+ str_replace:
+ template: VM_NAMEDBE001p1n004
+ params:
+ DBE:
+ get_input: vdbe_device_name
+ VM_NAME:
+ get_input: vdbe_name_1
+ aap_address_mode:
+ get_input: aap_address_mode
+ service_template_filter:
+ substitute_service_template: nested_vlanServiceTemplate.yaml
+ count:
+ get_input: untrusted_num_vn
+ mandatory: false
+ aap_untrusted_v6_ip_prefix:
+ get_input: vdbe_aap_untrusted_v6_ip_prefix
+ parent_interface: vdbe_0_untr_vmi_1
+ mac_address:
+ get_input: vdbe_hw_untr_mac_1
+ vlan_tag_list:
+ get_input: untrusted_vlan_tags
+ aap_sec_untrusted_ip_prefix_len:
+ get_input: vdbe_aap_sec_untrusted_ip_prefix_len
+ vmac_address:
+ get_input: vdbe_untrusted_vmac_address
+ aap_untrusted_v6_ip_prefix_len:
+ get_input: vdbe_aap_untrusted_v6_ip_prefix_len
+ aap_untrusted_ip_prefix_len:
+ get_input: vdbe_aap_untrusted_ip_prefix_len
+ requirements:
+ - link_vdbe_0_subint_untr_vmi_1:
+ capability: tosca.capabilities.network.Linkable
+ node: control_int_net
+ relationship: tosca.relationships.network.LinksTo
+ - binding_vdbe_0_subint_untr_vmi_1:
+ capability: tosca.capabilities.network.Bindable
+ node: vdbe_0_untr_vmi_1
+ relationship: tosca.relationships.network.BindsTo
+ - dependency:
+ capability: tosca.capabilities.Node
+ node: control_int_net
+ relationship: tosca.relationships.DependsOn
+ control_int_net:
+ type: org.openecomp.resource.vl.nodes.heat.network.contrailV2.VirtualNetwork
+ properties:
+ network_name:
+ str_replace:
+ template: VNF_NAME_control_net
+ params:
+ VNF_NAME:
+ get_input: vnf_name
+ groups:
+ nested_pattern4_group:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/nested_pattern4.yml
+ description: |
+ Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
+ members:
+ - vdbe_0_untr_vmi_1
+ - vdbe_node_1
+ - vdbe_untr_1_subports
+ - control_int_net
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.heat.vdbe
+ capabilities:
+ disk.latency_vdbe_node_1:
+ - vdbe_node_1
+ - disk.latency
+ binding_vdbe_node_1:
+ - vdbe_node_1
+ - binding
+ instance_vdbe_node_1:
+ - vdbe_node_1
+ - instance
+ network.outgoing.bytes_vdbe_0_untr_vmi_1:
+ - vdbe_0_untr_vmi_1
+ - network.outgoing.bytes
+ disk.device.read.requests_vdbe_node_1:
+ - vdbe_node_1
+ - disk.device.read.requests
+ disk.device.usage_vdbe_node_1:
+ - vdbe_node_1
+ - disk.device.usage
+ binding_vdbe_0_untr_vmi_1:
+ - vdbe_0_untr_vmi_1
+ - binding
+ forwarder_vdbe_0_untr_vmi_1:
+ - vdbe_0_untr_vmi_1
+ - forwarder
+ disk.write.bytes_vdbe_node_1:
+ - vdbe_node_1
+ - disk.write.bytes
+ disk.device.write.bytes_vdbe_node_1:
+ - vdbe_node_1
+ - disk.device.write.bytes
+ disk.allocation_vdbe_node_1:
+ - vdbe_node_1
+ - disk.allocation
+ memory_vdbe_node_1:
+ - vdbe_node_1
+ - memory
+ cpu_util_vdbe_node_1:
+ - vdbe_node_1
+ - cpu_util
+ disk.device.read.bytes_vdbe_node_1:
+ - vdbe_node_1
+ - disk.device.read.bytes
+ network.incoming.bytes.rate_vdbe_0_untr_vmi_1:
+ - vdbe_0_untr_vmi_1
+ - network.incoming.bytes.rate
+ disk.device.read.bytes.rate_vdbe_node_1:
+ - vdbe_node_1
+ - disk.device.read.bytes.rate
+ disk.device.allocation_vdbe_node_1:
+ - vdbe_node_1
+ - disk.device.allocation
+ disk.write.requests.rate_vdbe_node_1:
+ - vdbe_node_1
+ - disk.write.requests.rate
+ disk.root.size_vdbe_node_1:
+ - vdbe_node_1
+ - disk.root.size
+ disk.device.iops_vdbe_node_1:
+ - vdbe_node_1
+ - disk.device.iops
+ disk.device.write.requests_vdbe_node_1:
+ - vdbe_node_1
+ - disk.device.write.requests
+ disk.write.requests_vdbe_node_1:
+ - vdbe_node_1
+ - disk.write.requests
+ vcpus_vdbe_node_1:
+ - vdbe_node_1
+ - vcpus
+ disk.ephemeral.size_vdbe_node_1:
+ - vdbe_node_1
+ - disk.ephemeral.size
+ feature_vdbe_0_untr_vmi_1:
+ - vdbe_0_untr_vmi_1
+ - feature
+ feature_vdbe_untr_1_subports:
+ - vdbe_untr_1_subports
+ - feature
+ network.incoming.packets_vdbe_0_untr_vmi_1:
+ - vdbe_0_untr_vmi_1
+ - network.incoming.packets
+ disk.device.latency_vdbe_node_1:
+ - vdbe_node_1
+ - disk.device.latency
+ disk.capacity_vdbe_node_1:
+ - vdbe_node_1
+ - disk.capacity
+ disk.device.capacity_vdbe_node_1:
+ - vdbe_node_1
+ - disk.device.capacity
+ network.outgoing.packets.rate_vdbe_0_untr_vmi_1:
+ - vdbe_0_untr_vmi_1
+ - network.outgoing.packets.rate
+ link_control_int_net:
+ - control_int_net
+ - link
+ end_point_control_int_net:
+ - control_int_net
+ - end_point
+ disk.usage_vdbe_node_1:
+ - vdbe_node_1
+ - disk.usage
+ disk.read.bytes_vdbe_node_1:
+ - vdbe_node_1
+ - disk.read.bytes
+ disk.device.read.requests.rate_vdbe_node_1:
+ - vdbe_node_1
+ - disk.device.read.requests.rate
+ host_vdbe_node_1:
+ - vdbe_node_1
+ - host
+ feature_control_int_net:
+ - control_int_net
+ - feature
+ network.incoming.bytes_vdbe_0_untr_vmi_1:
+ - vdbe_0_untr_vmi_1
+ - network.incoming.bytes
+ cpu.delta_vdbe_node_1:
+ - vdbe_node_1
+ - cpu.delta
+ scalable_vdbe_node_1:
+ - vdbe_node_1
+ - scalable
+ disk.iops_vdbe_node_1:
+ - vdbe_node_1
+ - disk.iops
+ network.incoming.packets.rate_vdbe_0_untr_vmi_1:
+ - vdbe_0_untr_vmi_1
+ - network.incoming.packets.rate
+ feature_vdbe_node_1:
+ - vdbe_node_1
+ - feature
+ memory.resident_vdbe_node_1:
+ - vdbe_node_1
+ - memory.resident
+ endpoint_vdbe_node_1:
+ - vdbe_node_1
+ - endpoint
+ network.outgoing.bytes.rate_vdbe_0_untr_vmi_1:
+ - vdbe_0_untr_vmi_1
+ - network.outgoing.bytes.rate
+ os_vdbe_node_1:
+ - vdbe_node_1
+ - os
+ feature_vdbe_0_subint_untr_vmi_1_vdbe_untr_1_subports:
+ - vdbe_untr_1_subports
+ - feature_vdbe_0_subint_untr_vmi_1
+ disk.read.bytes.rate_vdbe_node_1:
+ - vdbe_node_1
+ - disk.read.bytes.rate
+ disk.device.write.bytes.rate_vdbe_node_1:
+ - vdbe_node_1
+ - disk.device.write.bytes.rate
+ network.outpoing.packets_vdbe_0_untr_vmi_1:
+ - vdbe_0_untr_vmi_1
+ - network.outpoing.packets
+ attachment_control_int_net:
+ - control_int_net
+ - attachment
+ cpu_vdbe_node_1:
+ - vdbe_node_1
+ - cpu
+ disk.device.write.requests.rate_vdbe_node_1:
+ - vdbe_node_1
+ - disk.device.write.requests.rate
+ disk.read.requests_vdbe_node_1:
+ - vdbe_node_1
+ - disk.read.requests
+ disk.write.bytes.rate_vdbe_node_1:
+ - vdbe_node_1
+ - disk.write.bytes.rate
+ memory.usage_vdbe_node_1:
+ - vdbe_node_1
+ - memory.usage
+ requirements:
+ dependency_vdbe_0_untr_vmi_1:
+ - vdbe_0_untr_vmi_1
+ - dependency
+ dependency_vdbe_node_1:
+ - vdbe_node_1
+ - dependency
+ local_storage_vdbe_node_1:
+ - vdbe_node_1
+ - local_storage
+ dependency_vdbe_0_subint_untr_vmi_1_vdbe_untr_1_subports:
+ - vdbe_untr_1_subports
+ - dependency_vdbe_0_subint_untr_vmi_1
+ dependency_control_int_net:
+ - control_int_net
+ - dependency
+ dependency_vdbe_untr_1_subports:
+ - vdbe_untr_1_subports
+ - dependency \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/vfcInstanceGroup/pattern4SubInterfaceNodesConnectedOut/out/nested_vlanServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/vfcInstanceGroup/pattern4SubInterfaceNodesConnectedOut/out/nested_vlanServiceTemplate.yaml
new file mode 100644
index 0000000000..94e55fe70a
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/vfcInstanceGroup/pattern4SubInterfaceNodesConnectedOut/out/nested_vlanServiceTemplate.yaml
@@ -0,0 +1,171 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: nested_vlan
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+topology_template:
+ inputs:
+ aap_untrusted_ip_prefix:
+ hidden: false
+ immutable: false
+ type: string
+ description: ip prefix for primary vDBE VM on the VAN untrusted network
+ aap_sec_untrusted_ip_prefix:
+ hidden: false
+ immutable: false
+ type: string
+ description: ip prefix for secondary vDBE VM aap on the VAN untrusted network
+ vdbe_subport_network:
+ hidden: false
+ immutable: false
+ type: string
+ description: List of Contrail VLAN networks to use for the subinterfaces. The order and number of these must match the VLAN ID list
+ ip_v6_address:
+ hidden: false
+ immutable: false
+ type: string
+ description: IPv6 address associated with subinterfaces
+ counter:
+ hidden: false
+ immutable: false
+ type: float
+ description: Index of instance among multiple instances. Use to retrieve correct parameter for this instance when passed all parameters for all instances.
+ subinterfaces_name_prefix:
+ hidden: false
+ immutable: false
+ type: string
+ description: Combined with subinterface_instance_index, this is used as the name of the subinterface resource
+ ip_address:
+ hidden: false
+ immutable: false
+ type: string
+ description: IPv4 address associated with subinterfaces
+ aap_address_mode:
+ hidden: false
+ immutable: false
+ type: string
+ description: Address mode for the vDBE cluster IP
+ aap_untrusted_v6_ip_prefix:
+ hidden: false
+ immutable: false
+ type: string
+ description: ipv6 prefix for the primary vDBE VM on the VAN untrusted network
+ parent_interface:
+ hidden: false
+ immutable: false
+ type: string
+ description: Parent Contrail interface
+ mac_address:
+ hidden: false
+ immutable: false
+ type: string
+ description: HW MAC address to use for subinterface
+ vlan_tag_list:
+ hidden: false
+ immutable: false
+ type: list
+ description: List of VLAN IDs to use for subinterfaces
+ entry_schema:
+ type: string
+ aap_sec_untrusted_ip_prefix_len:
+ hidden: false
+ immutable: false
+ type: string
+ description: ip prefix length for the secondary DBE VM aap on the VAN untrusted network
+ vmac_address:
+ hidden: false
+ immutable: false
+ type: string
+ description: virtual MAC address to use for subinterface
+ aap_untrusted_v6_ip_prefix_len:
+ hidden: false
+ immutable: false
+ type: string
+ description: ipv6 prefix length for the primary vDBE VM on the VAN untrusted network
+ aap_untrusted_ip_prefix_len:
+ hidden: false
+ immutable: false
+ type: string
+ description: ip prefix length for the primary vDBE VM on the VAN untrusted network
+ node_templates:
+ vdbe_0_subint_untr_vmi_1:
+ type: org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ properties:
+ virtual_machine_interface_refs:
+ - get_input: parent_interface
+ name:
+ str_replace:
+ template: $NAME_$INDEX
+ params:
+ $NAME:
+ get_input: subinterfaces_name_prefix
+ $INDEX:
+ get_input:
+ - vlan_tag_list
+ - get_input: counter
+ virtual_network_refs:
+ - get_input: vdbe_subport_network
+ virtual_machine_interface_properties:
+ sub_interface_vlan_tag:
+ get_input:
+ - vlan_tag_list
+ - get_input: counter
+ virtual_machine_interface_allowed_address_pairs:
+ allowed_address_pair:
+ - address_mode:
+ get_input: aap_address_mode
+ ip:
+ ip_prefix:
+ get_input: aap_untrusted_ip_prefix
+ ip_prefix_len:
+ get_input: aap_untrusted_ip_prefix_len
+ mac:
+ get_input: vmac_address
+ - address_mode:
+ get_input: aap_address_mode
+ ip:
+ ip_prefix:
+ get_input: aap_sec_untrusted_ip_prefix
+ ip_prefix_len:
+ get_input: aap_sec_untrusted_ip_prefix_len
+ mac:
+ get_input: mac_address
+ - address_mode:
+ get_input: aap_address_mode
+ ip:
+ ip_prefix:
+ get_input: aap_untrusted_v6_ip_prefix
+ ip_prefix_len:
+ get_input: aap_untrusted_v6_ip_prefix_len
+ mac:
+ get_input: vmac_address
+ virtual_machine_interface_mac_addresses:
+ mac_address:
+ - get_input: mac_address
+ groups:
+ nested_vlan_group:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/nested_vlan.yml
+ description: cmaui server template for vMMSC
+ members:
+ - vdbe_0_subint_untr_vmi_1
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.heat.subinterface.nested_vlan
+ capabilities:
+ feature_vdbe_0_subint_untr_vmi_1:
+ - vdbe_0_subint_untr_vmi_1
+ - feature
+ requirements:
+ dependency_vdbe_0_subint_untr_vmi_1:
+ - vdbe_0_subint_untr_vmi_1
+ - dependency
+ binding_vdbe_0_subint_untr_vmi_1:
+ - vdbe_0_subint_untr_vmi_1
+ - binding
+ link_vdbe_0_subint_untr_vmi_1:
+ - vdbe_0_subint_untr_vmi_1
+ - link \ No newline at end of file