aboutsummaryrefslogtreecommitdiffstats
path: root/openecomp-be
diff options
context:
space:
mode:
authorDmitry Puzikov <dmitry.puzikov@tieto.com>2020-01-14 15:01:20 +0100
committerOfir Sonsino <ofir.sonsino@intl.att.com>2020-01-29 14:56:33 +0000
commit22b57cf9313f0b21a1dca090088b811eec8cca6a (patch)
treec13bf50660892cd4a35037e434d27ea1b99e4fe2 /openecomp-be
parentabc10d923a2520e7233f3681a8c5811516908891 (diff)
Implement policy element convertion during onboarding VSP
Implement absent policy convertion. Add test data for policies section convertion and explicit test for checking if policies been converted. Change-Id: I7d431a22922e1f9da0fbf0de4654995c3da42fcb Issue-ID: SDC-2727 Signed-off-by: Dmitry Puzikov <d.puzikov2@partner.samsung.com>
Diffstat (limited to 'openecomp-be')
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-api/src/main/java/org/openecomp/core/converter/ServiceTemplateReaderService.java22
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-api/src/main/java/org/openecomp/core/converter/datatypes/Constants.java73
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/main/java/org/openecomp/core/impl/VnfTopologyTemplateConverter.java95
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/main/java/org/openecomp/core/impl/services/ServiceTemplateReaderServiceImpl.java138
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/impl/ToscaConverterImplTest.java18
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertMainSt/in/MainServiceTemplate.yaml11
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertMainSt/out/MainServiceTemplate.yaml11
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertPolicies/in/Artifacts/checksum.lst1
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertPolicies/in/Artifacts/csar.meta3
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertPolicies/in/Definitions/GlobalSubstitutionTypesServiceTemplate.yaml60
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertPolicies/in/MainServiceTemplate.mf12
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertPolicies/in/MainServiceTemplate.yaml572
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertPolicies/in/TOSCA-Metadata/TOSCA.meta135
13 files changed, 997 insertions, 154 deletions
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-api/src/main/java/org/openecomp/core/converter/ServiceTemplateReaderService.java b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-api/src/main/java/org/openecomp/core/converter/ServiceTemplateReaderService.java
index 3b861e425d..8a97957be9 100644
--- a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-api/src/main/java/org/openecomp/core/converter/ServiceTemplateReaderService.java
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-api/src/main/java/org/openecomp/core/converter/ServiceTemplateReaderService.java
@@ -26,23 +26,25 @@ import java.util.Map;
public interface ServiceTemplateReaderService {
- Map<String, Object> readServiceTemplate(byte[] serivceTemplateContent);
+ Map<String, Object> readServiceTemplate(byte[] serivceTemplateContent);
- Object getMetadata();
+ Object getMetadata();
- Object getToscaVersion();
+ Object getToscaVersion();
- Map<String, Object> getNodeTypes();
+ Map<String, Object> getNodeTypes();
- Object getTopologyTemplate();
+ Object getTopologyTemplate();
- Map<String, Object> getNodeTemplates();
+ Map<String, Object> getNodeTemplates();
- Map<String, Object> getInputs();
+ Map<String, Object> getInputs();
- Map<String, Object> getOutputs();
+ Map<String, Object> getOutputs();
- Map<String, Object> getSubstitutionMappings();
+ Map<String, Object> getSubstitutionMappings();
- List<Object> getImports();
+ List<Object> getImports();
+
+ Map<String, Object> getPolicies();
}
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-api/src/main/java/org/openecomp/core/converter/datatypes/Constants.java b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-api/src/main/java/org/openecomp/core/converter/datatypes/Constants.java
index 90ce3f6f6b..18e6a49aa5 100644
--- a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-api/src/main/java/org/openecomp/core/converter/datatypes/Constants.java
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-api/src/main/java/org/openecomp/core/converter/datatypes/Constants.java
@@ -19,44 +19,45 @@ package org.openecomp.core.converter.datatypes;
import java.io.File;
public class Constants {
- public static final String mainStName = "MainServiceTemplate.yaml";
- public static final String globalStName = "GlobalSubstitutionTypesServiceTemplate.yaml";
- public static final String manifestFileName = "MainServiceTemplate.mf";
- public static final String definitionsDir = "Definitions/";
- public static final String metadataFile = "TOSCA-Metadata/TOSCA.meta";
+ public static final String mainStName = "MainServiceTemplate.yaml";
+ public static final String globalStName = "GlobalSubstitutionTypesServiceTemplate.yaml";
+ public static final String manifestFileName = "MainServiceTemplate.mf";
+ public static final String definitionsDir = "Definitions/";
+ public static final String metadataFile = "TOSCA-Metadata/TOSCA.meta";
- public static final String definitionVersion = "tosca_definitions_version";
- private static final String DEFAULT_NAMESPACE = "tosca_default_namespace";
- private static final String TEMPLATE_NAME = "template_name";
- public static final String topologyTemplate = "topology_template";
- private static final String TEMPLATE_AUTHOR = "template_author";
- private static final String TEMPLATE_VERSION = "template_version";
- private static final String DESCRIPTION = "description";
- private static final String IMPORTS = "imports";
- private static final String DSL_DEFINITIONS = "dsl_definitions";
- public static final String nodeType = "node_type";
- public static final String nodeTypes = "node_types";
- private static final String RELATIONSHIP_TYPES = "relationship_types";
- private static final String RELATIONSHIP_TEMPLATES = "relationship_templates";
- private static final String CAPABILITY_TYPES = "capability_types";
- private static final String ARTIFACT_TYPES = "artifact_types";
- private static final String DATA_TYPES = "data_types";
- private static final String INTERFACE_TYPES = "interface_types";
- private static final String POLICY_TYPES = "policy_types";
- private static final String GROUP_TYPES = "group_types";
- private static final String REPOSITORIES = "repositories";
- public static final String metadata = "metadata";
- public static final String nodeTemplates = "node_templates";
- public static final String inputs = "inputs";
- public static final String outputs = "outputs";
- public static final String substitutionMappings = "substitution_mappings";
- public static final String capabilities = "capabilities";
- public static final String requirements = "requirements";
+ public static final String definitionVersion = "tosca_definitions_version";
+ private static final String DEFAULT_NAMESPACE = "tosca_default_namespace";
+ private static final String TEMPLATE_NAME = "template_name";
+ public static final String topologyTemplate = "topology_template";
+ private static final String TEMPLATE_AUTHOR = "template_author";
+ private static final String TEMPLATE_VERSION = "template_version";
+ private static final String DESCRIPTION = "description";
+ private static final String IMPORTS = "imports";
+ private static final String DSL_DEFINITIONS = "dsl_definitions";
+ public static final String nodeType = "node_type";
+ public static final String nodeTypes = "node_types";
+ private static final String RELATIONSHIP_TYPES = "relationship_types";
+ private static final String RELATIONSHIP_TEMPLATES = "relationship_templates";
+ private static final String CAPABILITY_TYPES = "capability_types";
+ private static final String ARTIFACT_TYPES = "artifact_types";
+ private static final String DATA_TYPES = "data_types";
+ private static final String INTERFACE_TYPES = "interface_types";
+ private static final String POLICY_TYPES = "policy_types";
+ private static final String GROUP_TYPES = "group_types";
+ private static final String REPOSITORIES = "repositories";
+ public static final String metadata = "metadata";
+ public static final String nodeTemplates = "node_templates";
+ public static final String inputs = "inputs";
+ public static final String outputs = "outputs";
+ public static final String substitutionMappings = "substitution_mappings";
+ public static final String capabilities = "capabilities";
+ public static final String requirements = "requirements";
+ public static final String POLICIES = "policies";
- public static final String openecompHeatIndex = "openecomp_heat_index";
- public static final String ONAP_INDEX = "onap_index";
- public static final String globalSubstitution = "GlobalSubstitutionTypes";
+ public static final String openecompHeatIndex = "openecomp_heat_index";
+ public static final String ONAP_INDEX = "onap_index";
+ public static final String globalSubstitution = "GlobalSubstitutionTypes";
- public static final String externalFilesFolder = "External" + File.separator;
+ public static final String externalFilesFolder = "External" + File.separator;
}
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/main/java/org/openecomp/core/impl/VnfTopologyTemplateConverter.java b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/main/java/org/openecomp/core/impl/VnfTopologyTemplateConverter.java
index e6978bcfe1..b676fb2fad 100644
--- a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/main/java/org/openecomp/core/impl/VnfTopologyTemplateConverter.java
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/main/java/org/openecomp/core/impl/VnfTopologyTemplateConverter.java
@@ -28,9 +28,11 @@ import org.onap.sdc.tosca.datatypes.model.CapabilityAssignment;
import org.onap.sdc.tosca.datatypes.model.NodeFilter;
import org.onap.sdc.tosca.datatypes.model.NodeTemplate;
import org.onap.sdc.tosca.datatypes.model.ParameterDefinition;
+import org.onap.sdc.tosca.datatypes.model.PolicyDefinition;
import org.onap.sdc.tosca.datatypes.model.RequirementAssignment;
import org.onap.sdc.tosca.datatypes.model.ServiceTemplate;
import org.onap.sdc.tosca.datatypes.model.SubstitutionMapping;
+import org.onap.sdc.tosca.datatypes.model.Trigger;
import org.openecomp.core.converter.ServiceTemplateReaderService;
import org.openecomp.core.converter.datatypes.Constants;
import org.openecomp.core.converter.errors.SubstitutionMappingsConverterErrorBuilder;
@@ -51,64 +53,54 @@ import static org.openecomp.core.converter.datatypes.Constants.requirements;
public class VnfTopologyTemplateConverter {
- public void convertTopologyTemplate(ServiceTemplate serviceTemplate,
- ServiceTemplateReaderService readerService) {
-
+ public void convertTopologyTemplate(ServiceTemplate serviceTemplate, ServiceTemplateReaderService readerService) {
convertInputs(serviceTemplate, readerService);
convertNodeTemplates(serviceTemplate, readerService);
convertOutputs(serviceTemplate, readerService);
convertSubstitutionMappings(serviceTemplate, readerService);
+ convertPolicies(serviceTemplate, readerService);
}
- private void convertInputs(ServiceTemplate serviceTemplate,
- ServiceTemplateReaderService readerService) {
+ private void convertInputs(ServiceTemplate serviceTemplate, ServiceTemplateReaderService readerService) {
Map<String, Object> inputs = readerService.getInputs();
addInputsOrOutputsToServiceTemplate(serviceTemplate, inputs, Constants.inputs);
}
- private void convertOutputs(ServiceTemplate serviceTemplate,
- ServiceTemplateReaderService readerService) {
+ private void convertOutputs(ServiceTemplate serviceTemplate, ServiceTemplateReaderService readerService) {
Map<String, Object> outputs = readerService.getOutputs();
addInputsOrOutputsToServiceTemplate(serviceTemplate, outputs, Constants.outputs);
}
- private void addInputsOrOutputsToServiceTemplate(ServiceTemplate serviceTemplate,
- Map<String, Object> mapToConvert,
- String inputsOrOutputs) {
+ private void addInputsOrOutputsToServiceTemplate(ServiceTemplate serviceTemplate, Map<String, Object> mapToConvert,
+ String inputsOrOutputs) {
if (MapUtils.isEmpty(mapToConvert)) {
return;
}
for (Map.Entry<String, Object> entry : mapToConvert.entrySet()) {
- Optional<ParameterDefinition> parameterDefinition =
- ToscaConverterUtil.createObjectFromClass(
- entry.getKey(), entry.getValue(), ParameterDefinition.class);
+ Optional<ParameterDefinition> parameterDefinition = ToscaConverterUtil.createObjectFromClass(entry.getKey(),
+ entry.getValue(), ParameterDefinition.class);
parameterDefinition.ifPresent(parameterDefinitionValue -> {
Optional<Object> defaultValue =
ToscaConverterUtil.getDefaultValue(entry.getValue(), parameterDefinition.get());
defaultValue.ifPresent(parameterDefinitionValue::set_default);
- addToServiceTemplateAccordingToSection(
- serviceTemplate, inputsOrOutputs, entry.getKey(), parameterDefinition.get());
+ addToServiceTemplateAccordingToSection(serviceTemplate, inputsOrOutputs, entry.getKey(),
+ parameterDefinition.get());
});
}
}
- private void addToServiceTemplateAccordingToSection(ServiceTemplate serviceTemplate,
- String inputsOrOutputs,
- String parameterId,
- ParameterDefinition parameterDefinition) {
+ private void addToServiceTemplateAccordingToSection(ServiceTemplate serviceTemplate, String inputsOrOutputs,
+ String parameterId, ParameterDefinition parameterDefinition) {
if (inputsOrOutputs.equals(inputs)) {
- DataModelUtil
- .addInputParameterToTopologyTemplate(serviceTemplate, parameterId, parameterDefinition);
+ DataModelUtil.addInputParameterToTopologyTemplate(serviceTemplate, parameterId, parameterDefinition);
} else if (inputsOrOutputs.equals(outputs)) {
- DataModelUtil
- .addOutputParameterToTopologyTemplate(serviceTemplate, parameterId, parameterDefinition);
+ DataModelUtil.addOutputParameterToTopologyTemplate(serviceTemplate, parameterId, parameterDefinition);
}
}
- private void convertNodeTemplates(ServiceTemplate serviceTemplate,
- ServiceTemplateReaderService readerService) {
+ private void convertNodeTemplates(ServiceTemplate serviceTemplate, ServiceTemplateReaderService readerService) {
Map<String, Object> nodeTemplates = readerService.getNodeTemplates();
if (MapUtils.isEmpty(nodeTemplates)) {
return;
@@ -129,15 +121,12 @@ public class VnfTopologyTemplateConverter {
nodeTemplate.setCopy((String) nodeTemplateAsMap.get("copy"));
nodeTemplate.setDescription((String) nodeTemplateAsMap.get("description"));
nodeTemplate.setDirectives((List<String>) nodeTemplateAsMap.get("directives"));
- nodeTemplate.setInterfaces(
- (Map<String, Object>) nodeTemplateAsMap.get("interfaces"));
+ nodeTemplate.setInterfaces((Map<String, Object>) nodeTemplateAsMap.get("interfaces"));
nodeTemplate.setNode_filter((NodeFilter) nodeTemplateAsMap.get("node_filter"));
nodeTemplate.setProperties((Map<String, Object>) nodeTemplateAsMap.get("properties"));
- nodeTemplate.setRequirements(
- (List<Map<String, RequirementAssignment>>) nodeTemplateAsMap.get("requirements"));
+ nodeTemplate.setRequirements((List<Map<String, RequirementAssignment>>) nodeTemplateAsMap.get("requirements"));
nodeTemplate.setType((String) nodeTemplateAsMap.get("type"));
- nodeTemplate.setCapabilities(
- convertCapabilities((Map<String, Object>) nodeTemplateAsMap.get("capabilities")));
+ nodeTemplate.setCapabilities(convertCapabilities((Map<String, Object>) nodeTemplateAsMap.get("capabilities")));
return nodeTemplate;
}
@@ -149,19 +138,20 @@ public class VnfTopologyTemplateConverter {
Map<String, CapabilityAssignment> convertedCapabilities = new HashMap<>();
for (Map.Entry<String, Object> capabilityAssignmentEntry : capabilities.entrySet()) {
- Optional<CapabilityAssignment> capabilityAssignment = ToscaConverterUtil.createObjectFromClass
- (capabilityAssignmentEntry.getKey(), capabilityAssignmentEntry.getValue(),
- CapabilityAssignment.class);
+ Optional<CapabilityAssignment> capabilityAssignment = ToscaConverterUtil.createObjectFromClass(
+ capabilityAssignmentEntry.getKey(), capabilityAssignmentEntry.getValue(),
+ CapabilityAssignment.class);
- capabilityAssignment.ifPresent(capabilityAssignmentValue ->
- convertedCapabilities.put(capabilityAssignmentEntry.getKey(), capabilityAssignmentValue));
+ capabilityAssignment.ifPresent(capabilityAssignmentValue -> convertedCapabilities
+ .put(capabilityAssignmentEntry.getKey(),
+ capabilityAssignmentValue));
}
return convertedCapabilities;
}
private void convertSubstitutionMappings(ServiceTemplate serviceTemplate,
- ServiceTemplateReaderService readerService) {
+ ServiceTemplateReaderService readerService) {
Map<String, Object> substitutionMappings = readerService.getSubstitutionMappings();
if (MapUtils.isEmpty(substitutionMappings)) {
return;
@@ -170,8 +160,7 @@ public class VnfTopologyTemplateConverter {
DataModelUtil.addSubstitutionMapping(serviceTemplate, substitutionMapping);
}
- private SubstitutionMapping convertSubstitutionMappings(
- Map<String, Object> substitutionMappings) {
+ private SubstitutionMapping convertSubstitutionMappings(Map<String, Object> substitutionMappings) {
SubstitutionMapping substitutionMapping = new SubstitutionMapping();
substitutionMapping.setNode_type((String) substitutionMappings.get(nodeType));
@@ -183,17 +172,15 @@ public class VnfTopologyTemplateConverter {
return substitutionMapping;
}
- private Map<String, List<String>> convertSubstitutionMappingsSections(String sectionName,
- Object sectionToConvert) {
+ private Map<String, List<String>> convertSubstitutionMappingsSections(String sectionName, Object sectionToConvert) {
if (Objects.isNull(sectionToConvert)) {
return null;
}
if (!(sectionToConvert instanceof Map)) {
- throw new CoreException(
- new SubstitutionMappingsConverterErrorBuilder(
- sectionName, sectionToConvert.getClass().getSimpleName()).build());
+ throw new CoreException(new SubstitutionMappingsConverterErrorBuilder(sectionName,
+ sectionToConvert.getClass().getSimpleName()).build());
}
return convertSection(sectionToConvert);
@@ -217,4 +204,24 @@ public class VnfTopologyTemplateConverter {
return convertedSection;
}
+ private void convertPolicies(ServiceTemplate serviceTemplate, ServiceTemplateReaderService readerService) {
+ Map<String, Object> policiesAsMap = readerService.getPolicies();
+ for (Map.Entry<String, Object> policy : policiesAsMap.entrySet()) {
+ PolicyDefinition policyDefinition = convertPolicy(policy.getValue());
+ DataModelUtil.addPolicyDefinition(serviceTemplate, policy.getKey(), policyDefinition);
+ }
+ }
+
+ private PolicyDefinition convertPolicy(Object policyCandidate) {
+ PolicyDefinition policyDefinition = new PolicyDefinition();
+ Map<String, Object> policy = (Map<String, Object>) policyCandidate;
+ policyDefinition.setDescription((String) policy.get("description"));
+ policyDefinition.setType((String) policy.get("type"));
+ policyDefinition.setMetadata((Map<String, String>) policy.get("metadata"));
+ policyDefinition.setProperties((Map<String, Object>) policy.get("properties"));
+ policyDefinition.setTargets((List<String>) policy.get("targets"));
+ policyDefinition.setTriggers((Map<String, Trigger>) policy.get("triggers"));
+
+ return policyDefinition;
+ }
}
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/main/java/org/openecomp/core/impl/services/ServiceTemplateReaderServiceImpl.java b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/main/java/org/openecomp/core/impl/services/ServiceTemplateReaderServiceImpl.java
index 44b0c80e24..f41caff349 100644
--- a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/main/java/org/openecomp/core/impl/services/ServiceTemplateReaderServiceImpl.java
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/main/java/org/openecomp/core/impl/services/ServiceTemplateReaderServiceImpl.java
@@ -33,68 +33,78 @@ import static org.openecomp.core.converter.datatypes.Constants.*;
public class ServiceTemplateReaderServiceImpl implements ServiceTemplateReaderService {
- private Map<String, Object> readServiceTemplate = new HashMap<>();
-
- public ServiceTemplateReaderServiceImpl(byte[] serviceTemplateContent){
- this.readServiceTemplate = readServiceTemplate(serviceTemplateContent);
- }
-
- @Override
- public Map<String, Object> readServiceTemplate(byte[] serviceTemplateContent) {
-
- return
- new YamlUtil().yamlToObject(new String(serviceTemplateContent), Map.class);
-
- }
-
- @Override
- public List<Object> getImports(){
- return Objects.isNull(this.readServiceTemplate.get("imports")) ?
- new ArrayList<>() : (List<Object>) this.readServiceTemplate.get("imports");
- }
-
- @Override
- public Object getMetadata(){
- return this.readServiceTemplate.get(metadata);
- }
-
- @Override
- public Object getToscaVersion(){
- return this.readServiceTemplate.get(definitionVersion);
- }
-
- @Override
- public Map<String, Object> getNodeTypes(){
- return Objects.isNull(this.readServiceTemplate.get(nodeTypes)) ? new HashMap<>()
- :(Map<String, Object>) this.readServiceTemplate.get(nodeTypes);
- }
-
- @Override
- public Object getTopologyTemplate(){
- return this.readServiceTemplate.get(topologyTemplate);
- }
-
- @Override
- public Map<String, Object> getNodeTemplates(){
- return Objects.isNull(this.getTopologyTemplate()) ? new HashMap<>()
- : (Map<String, Object>) ((Map<String, Object>)this.getTopologyTemplate()).get(nodeTemplates);
- }
-
- @Override
- public Map<String, Object> getInputs(){
- return Objects.isNull(this.getTopologyTemplate()) ? new HashMap<>()
- : (Map<String, Object>) ((Map<String, Object>)this.getTopologyTemplate()).get(inputs);
- }
-
- @Override
- public Map<String, Object> getOutputs(){
- return Objects.isNull(this.getTopologyTemplate()) ? new HashMap<>()
- : (Map<String, Object>) ((Map<String, Object>)this.getTopologyTemplate()).get(outputs);
- }
-
- @Override
- public Map<String, Object> getSubstitutionMappings(){
- return Objects.isNull(this.getTopologyTemplate()) ? new HashMap<>()
- : (Map<String, Object>) ((Map<String, Object>)this.getTopologyTemplate()).get(substitutionMappings);
- }
+ private Map<String, Object> readServiceTemplate = new HashMap<>();
+
+ public ServiceTemplateReaderServiceImpl(byte[] serviceTemplateContent) {
+ this.readServiceTemplate = readServiceTemplate(serviceTemplateContent);
+ }
+
+ @Override
+ public Map<String, Object> readServiceTemplate(byte[] serviceTemplateContent) {
+
+ return new YamlUtil().yamlToObject(new String(serviceTemplateContent), Map.class);
+
+ }
+
+ @Override
+ public List<Object> getImports() {
+ return Objects.isNull(this.readServiceTemplate.get("imports")) ? new ArrayList<>()
+ : (List<Object>) this.readServiceTemplate.get("imports");
+ }
+
+ @Override
+ public Map<String, Object> getPolicies() {
+ Map<String, Object> policiesAsMap = new HashMap<>();
+ if (!Objects.isNull(this.getTopologyTemplate()) && !Objects.isNull(
+ ((Map<String, Object>) this.getTopologyTemplate()).get(POLICIES))) {
+ policiesAsMap = (Map<String, Object>) ((Map<String, Object>) this.getTopologyTemplate()).get(POLICIES);
+ }
+ return policiesAsMap;
+ }
+
+ @Override
+ public Object getMetadata() {
+ return this.readServiceTemplate.get(metadata);
+ }
+
+ @Override
+ public Object getToscaVersion() {
+ return this.readServiceTemplate.get(definitionVersion);
+ }
+
+ @Override
+ public Map<String, Object> getNodeTypes() {
+ return Objects.isNull(this.readServiceTemplate.get(nodeTypes)) ? new HashMap<>()
+ : (Map<String, Object>) this.readServiceTemplate.get(nodeTypes);
+ }
+
+ @Override
+ public Object getTopologyTemplate() {
+ return this.readServiceTemplate.get(topologyTemplate);
+ }
+
+ @Override
+ public Map<String, Object> getNodeTemplates() {
+ return Objects.isNull(this.getTopologyTemplate()) ? new HashMap<>()
+ : (Map<String, Object>) ((Map<String, Object>) this.getTopologyTemplate()).get(nodeTemplates);
+ }
+
+ @Override
+ public Map<String, Object> getInputs() {
+ return Objects.isNull(this.getTopologyTemplate()) ? new HashMap<>()
+ : (Map<String, Object>) ((Map<String, Object>) this.getTopologyTemplate()).get(inputs);
+ }
+
+ @Override
+ public Map<String, Object> getOutputs() {
+ return Objects.isNull(this.getTopologyTemplate()) ? new HashMap<>()
+ : (Map<String, Object>) ((Map<String, Object>) this.getTopologyTemplate()).get(outputs);
+ }
+
+ @Override
+ public Map<String, Object> getSubstitutionMappings() {
+ return Objects.isNull(this.getTopologyTemplate()) ? new HashMap<>()
+ : (Map<String, Object>) ((Map<String, Object>) this.getTopologyTemplate())
+ .get(substitutionMappings);
+ }
}
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/impl/ToscaConverterImplTest.java b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/impl/ToscaConverterImplTest.java
index 3e4e62a0d1..bcfc3d8eda 100644
--- a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/impl/ToscaConverterImplTest.java
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/impl/ToscaConverterImplTest.java
@@ -40,6 +40,7 @@ import java.nio.file.NotDirectoryException;
import java.util.*;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
import static org.openecomp.core.converter.datatypes.Constants.globalStName;
import static org.openecomp.core.converter.datatypes.Constants.mainStName;
@@ -134,6 +135,23 @@ public class ToscaConverterImplTest {
Assert.assertEquals(1, occurrences[1]);
}
+ @Test
+ public void testPoliciesBeenConverted() throws IOException {
+ String inputFilesPath = BASE_DIR + "/convertPolicies/in";
+ FileContentHandler fileContentHandler =
+ createFileContentHandlerFromInput(inputFilesPath);
+ ToscaServiceModel toscaServiceModel = toscaConverter.convert(fileContentHandler);
+ Optional<ServiceTemplate> st = toscaServiceModel.getServiceTemplate("MainServiceTemplate.yaml");
+
+ assertTrue(st.isPresent());
+
+ Map<String, PolicyDefinition> pds = st.get().getTopology_template().getPolicies();
+
+ assertEquals(2, pds.size());
+ assertTrue(pds.containsKey("scaling_aspects"));
+ assertTrue(pds.containsKey("instantiation_levels"));
+ }
+
private Object[] buildOccurrences(String... bounds) {
return buildOccurrences(Arrays.asList(bounds));
}
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertMainSt/in/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertMainSt/in/MainServiceTemplate.yaml
index 041afbacf8..a650f7d29d 100644
--- a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertMainSt/in/MainServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertMainSt/in/MainServiceTemplate.yaml
@@ -548,4 +548,15 @@ topology_template:
substitution_mappings:
node_type: tosca.nodes.nfv.VNF.vPCRF
+ policies:
+ scaling_aspects:
+ type: tosca.policies.nfv.ScalingAspects
+ properties:
+ aspects:
+ processing:
+ name: processing
+ description: aspect for processing
+ max_scale_level: 5
+ step_deltas:
+ - delta_1
tosca_definitions_version: tosca_simple_yaml_1_0 \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertMainSt/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertMainSt/out/MainServiceTemplate.yaml
index 0f41bb0d8b..f40f214929 100644
--- a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertMainSt/out/MainServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertMainSt/out/MainServiceTemplate.yaml
@@ -544,5 +544,16 @@ topology_template:
- virtual_link:
capability: virtual_linkable
node: Fabric
+ policies:
+ scaling_aspects:
+ type: tosca.policies.nfv.ScalingAspects
+ properties:
+ aspects:
+ processing:
+ name: processing
+ description: aspect for processing
+ max_scale_level: 5
+ step_deltas:
+ - delta_1
substitution_mappings:
node_type: tosca.nodes.nfv.VNF.vPCRF
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertPolicies/in/Artifacts/checksum.lst b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertPolicies/in/Artifacts/checksum.lst
new file mode 100644
index 0000000000..701f14d45d
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertPolicies/in/Artifacts/checksum.lst
@@ -0,0 +1 @@
+Definitions/openovnf__vPCRF.yaml:75bd8963ecc09bf769d0bb5cb475314d
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertPolicies/in/Artifacts/csar.meta b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertPolicies/in/Artifacts/csar.meta
new file mode 100644
index 0000000000..aac2fed3c3
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertPolicies/in/Artifacts/csar.meta
@@ -0,0 +1,3 @@
+Type:NFAR
+Version:v1.0
+Provider:Huawei \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertPolicies/in/Definitions/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertPolicies/in/Definitions/GlobalSubstitutionTypesServiceTemplate.yaml
new file mode 100644
index 0000000000..a88171701e
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertPolicies/in/Definitions/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -0,0 +1,60 @@
+node_types:
+ tosca.nodes.nfv.VDU.Compute:
+ attributes:
+ private_address:
+ type: string
+ public_address:
+ type: string
+ networks:
+ type: string
+ ports:
+ type: string
+ capabilities:
+ scalable:
+ type: tosca.capabilities.Scalable
+ virtual_compute:
+ type: tosca.capabilities.nfv.VirtualCompute
+ endpoint:
+ type: tosca.capabilities.Endpoint.Admin
+ os:
+ type: tosca.capabilities.OperatingSystem
+ virtual_binding:
+ type: tosca.capabilities.nfv.VirtualBindable
+ host:
+ type: tosca.capabilities.Container
+ binding:
+ type: tosca.capabilities.network.Bindable
+ monitoring_parameter:
+ type: tosca.capabilities.nfv.Metric
+ derived_from: tosca.nodes.Root
+ properties:
+ configurable_properties:
+ entry_schema:
+ type: tosca.datatypes.nfv.VnfcConfigurableProperties
+ type: map
+ name:
+ type: string
+ nfvi_constraints:
+ entry_schema:
+ type: string
+ required: false
+ type: list
+ descrption:
+ type: string
+ boot_order:
+ entry_schema:
+ type: string
+ required: false
+ type: list
+ requirements:
+ - local_storage:
+ capability: tosca.capabilities.Attachment
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - virtual_storage:
+ capability: tosca.capabilities.nfv.VirtualStorage
+ occurrences:
+ - 0
+ - UNBOUNDED
+tosca_definitions_version: tosca_simple_yaml_1_0
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertPolicies/in/MainServiceTemplate.mf b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertPolicies/in/MainServiceTemplate.mf
new file mode 100644
index 0000000000..e45f002332
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertPolicies/in/MainServiceTemplate.mf
@@ -0,0 +1,12 @@
+Manifest-Version: 1.0
+
+Name: Entry-Definitions
+Name: MainServiceTemplate.yaml
+
+Name: Definitions\GlobalSubstitutionTypesServiceTemplate.yaml
+
+Name: Artifacts\install.sh
+
+Name: Artifacts\create_stack.sh
+
+Name: Licenses\license.xml
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertPolicies/in/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertPolicies/in/MainServiceTemplate.yaml
new file mode 100644
index 0000000000..2a3de9d1e9
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertPolicies/in/MainServiceTemplate.yaml
@@ -0,0 +1,572 @@
+imports:
+- openovnf__tosca.nodes.nfv.VNF.vPCRF.yaml
+- openonfv__tosca.capabilities.Scalable.yaml
+- openonfv__tosca.capabilities.nfv.Metric.yaml
+- openonfv__tosca.nodes.nfv.VnfVirtualLinkDesc.yaml
+- openonfv__tosca.capabilities.network.Bindable.yaml
+- openonfv__tosca.capabilities.Attachment.yaml
+- openonfv__tosca.capabilities.nfv.VirtualBindable.yaml
+- openonfv__tosca.capabilities.nfv.VirtualLinkable.yaml
+- openonfv__tosca.requirements.nfv.VirtualStorage.yaml
+- openonfv__tosca.nodes.nfv.VDU.VirtualStorage.yaml
+- openonfv__tosca.relationships.nfv.VirtualBindsTo.yaml
+- openonfv__tosca.nodes.nfv.VDU.Compute.yaml
+- openonfv__tosca.relationships.nfv.VirtualLinksTo.yaml
+- openonfv__tosca.capabilities.nfv.VirtualCompute.yaml
+- openonfv__tosca.capabilities.Container.yaml
+- openonfv__tosca.capabilities.nfv.VirtualStorage.yaml
+- openonfv__tosca.requirements.nfv.VirtualBinding.yaml
+- openonfv__tosca.capabilities.Endpoint.Admin.yaml
+- openonfv__tosca.capabilities.OperatingSystem.yaml
+- openonfv__tosca.nodes.nfv.VduCpd.yaml
+- openonfv__tosca.relationships.nfv.VDU.AttachedTo.yaml
+
+metadata:
+ vendor: Huawei
+ csarVersion: v1.0
+ csarProvider: Huawei
+ id: vPCRF_NF_HW
+ version: v1.0
+ csarType: NFAR
+ name: vPCRF
+ vnfdVersion: v1.0
+ vnfmType: hwvnfm
+
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.nat_fw:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+topology_template:
+ node_templates:
+ PUPDU_Storage:
+ attributes:
+ tosca_name: PUPDU_Storage
+ properties:
+ id: PUPDU_Storage
+ size_of_storage: 200G
+ type_of_storage: volume
+ type: tosca.nodes.nfv.VDU.VirtualStorage
+ USRSU:
+ attributes:
+ tosca_name: USRSU
+ capabilities:
+ virtual_compute:
+ properties:
+ virtual_memory:
+ virtual_mem_size: 24G
+ requested_additional_capabilities: {}
+ virtual_cpu:
+ num_virtual_cpu: 4
+ properties:
+ configurable_properties:
+ test: {"additional_vnfc_configurable_properties":{"aaa":"1"}}
+ name: USRSU
+ descrption: the virtual machine of USRSU
+ requirements:
+ - virtual_storage:
+ capability: virtual_storage
+ node: USRSU_Storage
+ - local_storage:
+ node: tosca.nodes.Root
+ type: tosca.nodes.nfv.VDU.Compute
+ USPID3_VduCpd_Fabric:
+ attributes:
+ tosca_name: USPID3_VduCpd_Fabric
+ properties:
+ role: root
+ layer_protocol: ipv4
+ requirements:
+ - virtual_binding:
+ capability: virtual_binding
+ node: USPID3
+ - virtual_link:
+ capability: virtual_linkable
+ node: Fabric
+ type: tosca.nodes.nfv.VduCpd
+ PUPDU_VduCpd_Base:
+ attributes:
+ tosca_name: PUPDU_VduCpd_Base
+ properties:
+ role: root
+ layer_protocol: ipv4
+ requirements:
+ - virtual_binding:
+ capability: virtual_binding
+ node: PUPDU
+ - virtual_link:
+ capability: virtual_linkable
+ node: Base
+ type: tosca.nodes.nfv.VduCpd
+ OMU_VduCpd_Fabric:
+ attributes:
+ tosca_name: OMU_VduCpd_Fabric
+ properties:
+ role: root
+ layer_protocol: ipv4
+ requirements:
+ - virtual_binding:
+ capability: virtual_binding
+ node: OMU
+ - virtual_link:
+ capability: virtual_linkable
+ node: Fabric
+ type: tosca.nodes.nfv.VduCpd
+ USPID3:
+ attributes:
+ tosca_name: USPID3
+ capabilities:
+ virtual_compute:
+ properties:
+ virtual_memory:
+ virtual_mem_size: 24G
+ requested_additional_capabilities: {}
+ virtual_cpu:
+ num_virtual_cpu: 4
+ properties:
+ configurable_properties:
+ test: {"additional_vnfc_configurable_properties":{"aaa":"1"}}
+ name: USPID3
+ descrption: the virtual machine of USPID3
+ requirements:
+ - virtual_storage:
+ capability: virtual_storage
+ node: USPID3_Storage
+ - local_storage:
+ node: tosca.nodes.Root
+ type: tosca.nodes.nfv.VDU.Compute
+ UPIRU_VduCpd_Base:
+ attributes:
+ tosca_name: UPIRU_VduCpd_Base
+ properties:
+ role: root
+ layer_protocol: ipv4
+ requirements:
+ - virtual_binding:
+ capability: virtual_binding
+ node: UPIRU
+ - virtual_link:
+ capability: virtual_linkable
+ node: Base
+ type: tosca.nodes.nfv.VduCpd
+ OMU2ManageNet:
+ attributes:
+ tosca_name: OMU2ManageNet
+ properties:
+ role: root
+ layer_protocol: ipv4
+ requirements:
+ - virtual_binding:
+ node: tosca.nodes.Root
+ - virtual_link:
+ node: tosca.nodes.Root
+ type: tosca.nodes.nfv.VduCpd
+ OMU_Storage:
+ attributes:
+ tosca_name: OMU_Storage
+ properties:
+ id: OMU_Storage
+ size_of_storage: 256G
+ rdma_enabled: false
+ type_of_storage: volume
+ type: tosca.nodes.nfv.VDU.VirtualStorage
+ UPSPU:
+ attributes:
+ tosca_name: UPSPU
+ capabilities:
+ virtual_compute:
+ properties:
+ virtual_memory:
+ virtual_mem_size: 24G
+ requested_additional_capabilities: {}
+ virtual_cpu:
+ num_virtual_cpu: 4
+ properties:
+ configurable_properties:
+ test: {"additional_vnfc_configurable_properties":{"aaa":"1"}}
+ name: UPSPU
+ descrption: the virtual machine of UPSPU
+ requirements:
+ - virtual_storage:
+ capability: virtual_storage
+ node: UPSPU_Storage
+ - local_storage:
+ node: tosca.nodes.Root
+ type: tosca.nodes.nfv.VDU.Compute
+ PUPDU_VduCpd_Fabric:
+ attributes:
+ tosca_name: PUPDU_VduCpd_Fabric
+ properties:
+ role: root
+ layer_protocol: ipv4
+ requirements:
+ - virtual_binding:
+ capability: virtual_binding
+ node: PUPDU
+ - virtual_link:
+ capability: virtual_linkable
+ node: Fabric
+ type: tosca.nodes.nfv.VduCpd
+ USPID2BossNet:
+ attributes:
+ tosca_name: USPID2BossNet
+ properties:
+ role: root
+ layer_protocol: ethernet
+ requirements:
+ - virtual_binding:
+ capability: virtual_binding
+ node: USPID3
+ - virtual_link:
+ node: tosca.nodes.Root
+ type: tosca.nodes.nfv.VduCpd
+ OMU_VduCpd_Base:
+ attributes:
+ tosca_name: OMU_VduCpd_Base
+ properties:
+ role: root
+ layer_protocol: ipv4
+ requirements:
+ - virtual_binding:
+ capability: virtual_binding
+ node: OMU
+ - virtual_link:
+ capability: virtual_linkable
+ node: Base
+ type: tosca.nodes.nfv.VduCpd
+ USPID3_Storage:
+ attributes:
+ tosca_name: USPID3_Storage
+ properties:
+ id: USPID3_Storage
+ size_of_storage: 300G
+ type_of_storage: volume
+ type: tosca.nodes.nfv.VDU.VirtualStorage
+ UPIRU2DataNet2:
+ attributes:
+ tosca_name: UPIRU2DataNet2
+ properties:
+ role: root
+ layer_protocol: ipv4
+ requirements:
+ - virtual_binding:
+ capability: virtual_binding
+ node: UPIRU
+ - virtual_link:
+ node: tosca.nodes.Root
+ type: tosca.nodes.nfv.VduCpd
+ USPID2ManageNet:
+ attributes:
+ tosca_name: USPID2ManageNet
+ properties:
+ role: root
+ layer_protocol: ipv4
+ requirements:
+ - virtual_binding:
+ capability: virtual_binding
+ node: USPID3
+ - virtual_link:
+ node: tosca.nodes.Root
+ type: tosca.nodes.nfv.VduCpd
+ UPIRU2DataNet3:
+ attributes:
+ tosca_name: UPIRU2DataNet3
+ properties:
+ role: root
+ layer_protocol: ipv4
+ requirements:
+ - virtual_binding:
+ capability: virtual_binding
+ node: UPIRU
+ - virtual_link:
+ node: tosca.nodes.Root
+ type: tosca.nodes.nfv.VduCpd
+ PUPDU2DataNet3:
+ attributes:
+ tosca_name: PUPDU2DataNet3
+ properties:
+ role: root
+ layer_protocol: ethernet
+ requirements:
+ - virtual_binding:
+ capability: virtual_binding
+ node: PUPDU
+ - virtual_link:
+ node: tosca.nodes.Root
+ type: tosca.nodes.nfv.VduCpd
+ USRSU2DataNet1:
+ attributes:
+ tosca_name: USRSU2DataNet1
+ properties:
+ role: root
+ layer_protocol: ipv4
+ requirements:
+ - virtual_binding:
+ capability: virtual_binding
+ node: USRSU
+ - virtual_link:
+ node: tosca.nodes.Root
+ type: tosca.nodes.nfv.VduCpd
+ USRSU2DataNet2:
+ attributes:
+ tosca_name: USRSU2DataNet2
+ properties:
+ role: root
+ layer_protocol: ipv4
+ requirements:
+ - virtual_binding:
+ capability: virtual_binding
+ node: USRSU
+ - virtual_link:
+ node: tosca.nodes.Root
+ type: tosca.nodes.nfv.VduCpd
+ UPIRU_Storage:
+ attributes:
+ tosca_name: UPIRU_Storage
+ properties:
+ id: UPIRU_Storage
+ size_of_storage: 4G
+ type_of_storage: volume
+ type: tosca.nodes.nfv.VDU.VirtualStorage
+ PUPDU2SignalNet1:
+ attributes:
+ tosca_name: PUPDU2SignalNet1
+ properties:
+ role: root
+ layer_protocol: ipv4
+ requirements:
+ - virtual_binding:
+ capability: virtual_binding
+ node: PUPDU
+ - virtual_link:
+ node: tosca.nodes.Root
+ type: tosca.nodes.nfv.VduCpd
+ UPIRU2DataNet1:
+ attributes:
+ tosca_name: UPIRU2DataNet1
+ properties:
+ role: root
+ layer_protocol: ipv4
+ requirements:
+ - virtual_binding:
+ capability: virtual_binding
+ node: UPIRU
+ - virtual_link:
+ node: tosca.nodes.Root
+ type: tosca.nodes.nfv.VduCpd
+ USPID3_VduCpd_Base:
+ attributes:
+ tosca_name: USPID3_VduCpd_Base
+ properties:
+ role: root
+ layer_protocol: ipv4
+ requirements:
+ - virtual_binding:
+ capability: virtual_binding
+ node: USPID3
+ - virtual_link:
+ capability: virtual_linkable
+ node: Base
+ type: tosca.nodes.nfv.VduCpd
+ Base:
+ attributes:
+ tosca_name: Base
+ properties:
+ vl_flavours:
+ flavours: test2
+ connectivity_type:
+ layer_protocol: ipv4
+ flow_pattern:
+ type: tosca.nodes.nfv.VnfVirtualLinkDesc
+ USRSU_Storage:
+ attributes:
+ tosca_name: USRSU_Storage
+ properties:
+ id: USRSU_Storage
+ size_of_storage: 200G
+ type_of_storage: volume
+ type: tosca.nodes.nfv.VDU.VirtualStorage
+ UPSPU_VduCpd_Base:
+ attributes:
+ tosca_name: UPSPU_VduCpd_Base
+ properties:
+ role: root
+ layer_protocol: ipv4
+ requirements:
+ - virtual_binding:
+ capability: virtual_binding
+ node: UPSPU
+ - virtual_link:
+ capability: virtual_linkable
+ node: Base
+ type: tosca.nodes.nfv.VduCpd
+ PUPDU:
+ attributes:
+ tosca_name: PUPDU
+ capabilities:
+ virtual_compute:
+ properties:
+ virtual_memory:
+ virtual_mem_size: 24G
+ requested_additional_capabilities: {}
+ virtual_cpu:
+ num_virtual_cpu: 4
+ properties:
+ configurable_properties:
+ test: {"additional_vnfc_configurable_properties":{"aaa":"1"}}
+ name: PUPDU
+ descrption: the virtual machine of PUPDU
+ requirements:
+ - virtual_storage:
+ capability: virtual_storage
+ node: PUPDU_Storage
+ - local_storage:
+ node: tosca.nodes.Root
+ type: tosca.nodes.nfv.VDU.Compute
+ USRSU_VduCpd_Base:
+ attributes:
+ tosca_name: USRSU_VduCpd_Base
+ properties:
+ role: root
+ layer_protocol: ipv4
+ requirements:
+ - virtual_binding:
+ capability: virtual_binding
+ node: USRSU
+ - virtual_link:
+ capability: virtual_linkable
+ node: Base
+ type: tosca.nodes.nfv.VduCpd
+ OMU:
+ attributes:
+ tosca_name: OMU
+ capabilities:
+ virtual_compute:
+ properties:
+ virtual_memory:
+ virtual_mem_size: 16G
+ requested_additional_capabilities: {}
+ virtual_cpu:
+ num_virtual_cpu: 4
+ properties:
+ configurable_properties:
+ test: {"additional_vnfc_configurable_properties":{"aaa":"1"}}
+ name: OMU
+ descrption: the virtual machine of OMU
+ requirements:
+ - virtual_storage:
+ capability: virtual_storage
+ node: OMU_Storage
+ - local_storage:
+ node: tosca.nodes.Root
+ type: tosca.nodes.nfv.VDU.Compute
+ UPIRU_VduCpd_Fabric:
+ attributes:
+ tosca_name: UPIRU_VduCpd_Fabric
+ properties:
+ role: root
+ layer_protocol: ipv4
+ requirements:
+ - virtual_binding:
+ capability: virtual_binding
+ node: UPIRU
+ - virtual_link:
+ capability: virtual_linkable
+ node: Fabric
+ type: tosca.nodes.nfv.VduCpd
+ UPSPU_Storage:
+ attributes:
+ tosca_name: UPSPU_Storage
+ properties:
+ id: UPSPU_Storage
+ size_of_storage: 4G
+ type_of_storage: volume
+ type: tosca.nodes.nfv.VDU.VirtualStorage
+ PUPDU2ManageNet:
+ attributes:
+ tosca_name: PUPDU2ManageNet
+ properties:
+ role: root
+ layer_protocol: ethernet
+ requirements:
+ - virtual_binding:
+ capability: virtual_binding
+ node: PUPDU
+ - virtual_link:
+ node: tosca.nodes.Root
+ type: tosca.nodes.nfv.VduCpd
+ USRSU_VduCpd_Fabric:
+ attributes:
+ tosca_name: USRSU_VduCpd_Fabric
+ properties:
+ role: root
+ layer_protocol: ipv4
+ requirements:
+ - virtual_binding:
+ capability: virtual_binding
+ node: USRSU
+ - virtual_link:
+ capability: virtual_linkable
+ node: Fabric
+ type: tosca.nodes.nfv.VduCpd
+ UPIRU2SignalNet1:
+ attributes:
+ tosca_name: UPIRU2SignalNet1
+ properties:
+ role: root
+ layer_protocol: ipv4
+ requirements:
+ - virtual_binding:
+ capability: virtual_binding
+ node: UPIRU
+ - virtual_link:
+ node: tosca.nodes.Root
+ type: tosca.nodes.nfv.VduCpd
+ Fabric:
+ attributes:
+ tosca_name: Fabric
+ properties:
+ vl_flavours:
+ flavours: test1
+ connectivity_type:
+ layer_protocol: ipv4
+ flow_pattern:
+ type: tosca.nodes.nfv.VnfVirtualLinkDesc
+ UPSPU_VduCpd_Fabric:
+ attributes:
+ tosca_name: UPSPU_VduCpd_Fabric
+ properties:
+ role: root
+ layer_protocol: ipv4
+ requirements:
+ - virtual_binding:
+ capability: virtual_binding
+ node: UPSPU
+ - virtual_link:
+ capability: virtual_linkable
+ node: Fabric
+ type: tosca.nodes.nfv.VduCpd
+
+ substitution_mappings:
+ node_type: tosca.nodes.nfv.VNF.vPCRF
+ policies:
+ scaling_aspects:
+ type: tosca.policies.nfv.ScalingAspects
+ properties:
+ aspects:
+ processing:
+ name: processing
+ description: aspect for processing
+ max_scale_level: 5
+ step_deltas:
+ - delta_1
+ instantiation_levels:
+ type: tosca.policies.nfv.InstantiationLevels
+ description: test policy
+ properties:
+ levels:
+ instantiation_level_1:
+ scale_info:
+ processing:
+ scale_level: 0
+ default_level: instantiation_level_1
+tosca_definitions_version: tosca_simple_yaml_1_0 \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertPolicies/in/TOSCA-Metadata/TOSCA.meta b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertPolicies/in/TOSCA-Metadata/TOSCA.meta
new file mode 100644
index 0000000000..69f62ca864
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertPolicies/in/TOSCA-Metadata/TOSCA.meta
@@ -0,0 +1,135 @@
+TOSCA-Meta-Version: 1.0
+CSAR-Version: 1.0
+Created-By: Winery 0.1.37-SNAPSHOT
+Entry-Definitions: Definitions/openovnf__vPCRF.yaml
+
+Name: Definitions/openovnf__vPCRF.yaml
+Content-Type: application/vnd.oasis.tosca.definitions
+
+Name: Definitions/openovnf__tosca.nodes.nfv.VNF.vPCRF.yaml
+Content-Type: application/vnd.oasis.tosca.definitions
+
+Name: Definitions/openonfv__tosca.capabilities.Scalable.yaml
+Content-Type: application/vnd.oasis.tosca.definitions
+
+Name: Definitions/openonfv__tosca.capabilities.nfv.Metric.yaml
+Content-Type: application/vnd.oasis.tosca.definitions
+
+Name: Definitions/openonfv__tosca.nodes.nfv.VnfVirtualLinkDesc.yaml
+Content-Type: application/vnd.oasis.tosca.definitions
+
+Name: Definitions/openonfv__tosca.capabilities.network.Bindable.yaml
+Content-Type: application/vnd.oasis.tosca.definitions
+
+Name: Definitions/openonfv__tosca.capabilities.Attachment.yaml
+Content-Type: application/vnd.oasis.tosca.definitions
+
+Name: Definitions/openonfv__tosca.capabilities.nfv.VirtualBindable.yaml
+Content-Type: application/vnd.oasis.tosca.definitions
+
+Name: Definitions/openonfv__tosca.capabilities.nfv.VirtualLinkable.yaml
+Content-Type: application/vnd.oasis.tosca.definitions
+
+Name: Definitions/openonfv__tosca.requirements.nfv.VirtualStorage.yaml
+Content-Type: application/vnd.oasis.tosca.definitions
+
+Name: Definitions/openonfv__tosca.nodes.nfv.VDU.VirtualStorage.yaml
+Content-Type: application/vnd.oasis.tosca.definitions
+
+Name: Definitions/openonfv__tosca.relationships.nfv.VirtualBindsTo.yaml
+Content-Type: application/vnd.oasis.tosca.definitions
+
+Name: Definitions/openonfv__tosca.nodes.nfv.VDU.Compute.yaml
+Content-Type: application/vnd.oasis.tosca.definitions
+
+Name: Definitions/openonfv__tosca.relationships.nfv.VirtualLinksTo.yaml
+Content-Type: application/vnd.oasis.tosca.definitions
+
+Name: Definitions/openonfv__tosca.capabilities.nfv.VirtualCompute.yaml
+Content-Type: application/vnd.oasis.tosca.definitions
+
+Name: Definitions/openonfv__tosca.capabilities.Container.yaml
+Content-Type: application/vnd.oasis.tosca.definitions
+
+Name: Definitions/openonfv__tosca.capabilities.nfv.VirtualStorage.yaml
+Content-Type: application/vnd.oasis.tosca.definitions
+
+Name: Definitions/openonfv__tosca.requirements.nfv.VirtualBinding.yaml
+Content-Type: application/vnd.oasis.tosca.definitions
+
+Name: Definitions/openonfv__tosca.capabilities.Endpoint.Admin.yaml
+Content-Type: application/vnd.oasis.tosca.definitions
+
+Name: Definitions/openonfv__tosca.capabilities.OperatingSystem.yaml
+Content-Type: application/vnd.oasis.tosca.definitions
+
+Name: Definitions/openonfv__tosca.nodes.nfv.VduCpd.yaml
+Content-Type: application/vnd.oasis.tosca.definitions
+
+Name: Definitions/openonfv__tosca.relationships.nfv.VDU.AttachedTo.yaml
+Content-Type: application/vnd.oasis.tosca.definitions
+
+Name: Definitions/openonfv__tosca.requirements.nfv.VirtualLink.yaml
+Content-Type: application/vnd.oasis.tosca.definitions
+
+Name: Definitions/openovnf__tosca.nodes.nfv.VNF.yaml
+Content-Type: application/vnd.oasis.tosca.definitions
+
+Name: nodetypes/http%3A%2F%2Fwww.open-o.org%2Ftosca%2Fnfv/tosca.nodes.nfv.VDU.VirtualStorage/propertiesdefinition/Properties.xsd
+Content-Type: text/xml
+
+Name: nodetypes/http%3A%2F%2Fwww.open-o.org%2Ftosca%2Fnfv/tosca.nodes.nfv.VnfVirtualLinkDesc/appearance/bigIcon.png
+Content-Type: image/png
+
+Name: nodetypes/http%3A%2F%2Fwww.open-o.org%2Ftosca%2Fnfv/tosca.nodes.nfv.VnfVirtualLinkDesc/appearance/smallIcon.png
+Content-Type: image/png
+
+Name: nodetypes/http%3A%2F%2Fwww.open-o.org%2Ftosca%2Fnfv/tosca.nodes.nfv.VDU.Compute/propertiesdefinition/Properties.xsd
+Content-Type: text/xml
+
+Name: nodetypes/http%3A%2F%2Fwww.open-o.org%2Ftosca%2Fnfv/tosca.nodes.nfv.VduCpd/propertiesdefinition/Properties.xsd
+Content-Type: text/xml
+
+Name: capabilitytypes/http%3A%2F%2Fwww.open-o.org%2Ftosca%2Fnfv/tosca.capabilities.nfv.VirtualCompute/propertiesdefinition/Properties.xsd
+Content-Type: text/xml
+
+Name: nodetypes/http%3A%2F%2Fwww.open-o.org%2Ftosca%2Fnfv%2Fvnf/tosca.nodes.nfv.VNF/propertiesdefinition/Properties.xsd
+Content-Type: text/xml
+
+Name: nodetypes/http%3A%2F%2Fwww.open-o.org%2Ftosca%2Fnfv/tosca.nodes.nfv.VDU.VirtualStorage/appearance/bigIcon.png
+Content-Type: image/png
+
+Name: nodetypes/http%3A%2F%2Fwww.open-o.org%2Ftosca%2Fnfv/tosca.nodes.nfv.VDU.VirtualStorage/appearance/smallIcon.png
+Content-Type: image/png
+
+Name: capabilitytypes/http%3A%2F%2Fwww.open-o.org%2Ftosca%2Fnfv/tosca.capabilities.Container/propertiesdefinition/Properties.xsd
+Content-Type: text/xml
+
+Name: nodetypes/http%3A%2F%2Fwww.open-o.org%2Ftosca%2Fnfv/tosca.nodes.nfv.VDU.Compute/appearance/bigIcon.png
+Content-Type: image/png
+
+Name: nodetypes/http%3A%2F%2Fwww.open-o.org%2Ftosca%2Fnfv/tosca.nodes.nfv.VDU.Compute/appearance/smallIcon.png
+Content-Type: image/png
+
+Name: nodetypes/http%3A%2F%2Fwww.open-o.org%2Ftosca%2Fnfv%2Fvnf/tosca.nodes.nfv.VNF.vPCRF/propertiesdefinition/Properties.xsd
+Content-Type: text/xml
+
+Name: capabilitytypes/http%3A%2F%2Fwww.open-o.org%2Ftosca%2Fnfv/tosca.capabilities.OperatingSystem/propertiesdefinition/Properties.xsd
+Content-Type: text/xml
+
+Name: nodetypes/http%3A%2F%2Fwww.open-o.org%2Ftosca%2Fnfv/tosca.nodes.nfv.VnfVirtualLinkDesc/propertiesdefinition/Properties.xsd
+Content-Type: text/xml
+
+Name: nodetypes/http%3A%2F%2Fwww.open-o.org%2Ftosca%2Fnfv/tosca.nodes.nfv.VduCpd/appearance/bigIcon.png
+Content-Type: image/png
+
+Name: nodetypes/http%3A%2F%2Fwww.open-o.org%2Ftosca%2Fnfv/tosca.nodes.nfv.VduCpd/appearance/smallIcon.png
+Content-Type: image/png
+
+Name: capabilitytypes/http%3A%2F%2Fwww.open-o.org%2Ftosca%2Fnfv/tosca.capabilities.Scalable/propertiesdefinition/Properties.xsd
+Content-Type: text/xml
+
+Name: relationshiptypes/http%3A%2F%2Fwww.open-o.org%2Ftosca%2Fnfv/tosca.relationships.nfv.VDU.AttachedTo/propertiesdefinition/Properties.xsd
+Content-Type: text/xml
+
+