aboutsummaryrefslogtreecommitdiffstats
path: root/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services
diff options
context:
space:
mode:
Diffstat (limited to 'openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services')
-rw-r--r--openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/ConfigConstants.java41
-rw-r--r--openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/DataModelUtil.java248
-rw-r--r--openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/ToscaAnalyzerService.java54
-rw-r--r--openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/ToscaConstants.java9
-rw-r--r--openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/ToscaFileOutputService.java12
-rw-r--r--openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/ToscaUtil.java46
-rw-r--r--openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/impl/ToscaAnalyzerServiceImpl.java517
-rw-r--r--openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/impl/ToscaFileOutputServiceCsarImpl.java213
8 files changed, 426 insertions, 714 deletions
diff --git a/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/ConfigConstants.java b/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/ConfigConstants.java
index 8666da9833..863d396585 100644
--- a/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/ConfigConstants.java
+++ b/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/ConfigConstants.java
@@ -13,31 +13,28 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
package org.openecomp.sdc.tosca.services;
public class ConfigConstants {
- //namespaces
- public static final String NAMESPACE = "ToscaModel";
-
- //keys
- public static final String PREFIX = "tosca.entity.namespace.prefix";
- public static final String PREFIX_CAPABILITY_TYPE = PREFIX + ".capabilityType";
- public static final String PREFIX_DATA_TYPE = PREFIX + ".dataType";
- public static final String PREFIX_GROUP_TYPE = PREFIX + ".groupType";
- public static final String PREFIX_POLICY_TYPE = PREFIX + ".policyType";
- public static final String PREFIX_ARTIFACT_TYPE = PREFIX + ".artifactType";
- public static final String PREFIX_RELATIONSHIP_TYPE = PREFIX + ".relationshipType";
- public static final String PREFIX_ANNOTATION_TYPE = PREFIX + ".annotationType";
- public static final String PREFIX_NODE_TYPE_VFC = PREFIX + ".nodeType.vfc";
- public static final String PREFIX_NODE_TYPE_NETWORK = PREFIX + ".nodeType.network";
- public static final String PREFIX_NODE_TYPE_CP = PREFIX + ".nodeType.connectionPoint";
- public static final String PREFIX_NODE_TYPE_EXTERNAL_CP = PREFIX + ".nodeType"
- + ".external.connectionPoint";
- public static final String PREFIX_NODE_TYPE_ABSTARCT = PREFIX + ".nodeType.abstract";
- public static final String PREFIX_NODE_TYPE_RULE = PREFIX + ".nodeType.rule";
+ //namespaces
+ public static final String NAMESPACE = "ToscaModel";
+ //keys
+ public static final String PREFIX = "tosca.entity.namespace.prefix";
+ public static final String PREFIX_CAPABILITY_TYPE = PREFIX + ".capabilityType";
+ public static final String PREFIX_DATA_TYPE = PREFIX + ".dataType";
+ public static final String PREFIX_GROUP_TYPE = PREFIX + ".groupType";
+ public static final String PREFIX_POLICY_TYPE = PREFIX + ".policyType";
+ public static final String PREFIX_ARTIFACT_TYPE = PREFIX + ".artifactType";
+ public static final String PREFIX_RELATIONSHIP_TYPE = PREFIX + ".relationshipType";
+ public static final String PREFIX_ANNOTATION_TYPE = PREFIX + ".annotationType";
+ public static final String PREFIX_NODE_TYPE_VFC = PREFIX + ".nodeType.vfc";
+ public static final String PREFIX_NODE_TYPE_NETWORK = PREFIX + ".nodeType.network";
+ public static final String PREFIX_NODE_TYPE_CP = PREFIX + ".nodeType.connectionPoint";
+ public static final String PREFIX_NODE_TYPE_EXTERNAL_CP = PREFIX + ".nodeType" + ".external.connectionPoint";
+ public static final String PREFIX_NODE_TYPE_ABSTARCT = PREFIX + ".nodeType.abstract";
+ public static final String PREFIX_NODE_TYPE_RULE = PREFIX + ".nodeType.rule";
- private ConfigConstants() {
- }
+ private ConfigConstants() {
+ }
}
diff --git a/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/DataModelUtil.java b/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/DataModelUtil.java
index 22b6eb847e..f60e823916 100644
--- a/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/DataModelUtil.java
+++ b/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/DataModelUtil.java
@@ -13,7 +13,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
package org.openecomp.sdc.tosca.services;
import java.io.ByteArrayInputStream;
@@ -30,7 +29,6 @@ import java.util.ListIterator;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
-
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import org.apache.commons.collections4.CollectionUtils;
@@ -84,13 +82,10 @@ public class DataModelUtil {
* @param serviceTemplate the service template
* @param substitutionMapping the substitution mapping
*/
- public static void addSubstitutionMapping(ServiceTemplate serviceTemplate,
- SubstitutionMapping substitutionMapping) {
+ public static void addSubstitutionMapping(ServiceTemplate serviceTemplate, SubstitutionMapping substitutionMapping) {
if (serviceTemplate == null) {
- throw new CoreException(new InvalidAddActionNullEntityErrorBuilder("Substitution Mapping", SERVICE_TEMPLATE)
- .build());
+ throw new CoreException(new InvalidAddActionNullEntityErrorBuilder("Substitution Mapping", SERVICE_TEMPLATE).build());
}
-
if (serviceTemplate.getTopology_template() == null) {
serviceTemplate.setTopology_template(new TopologyTemplate());
}
@@ -117,15 +112,11 @@ public class DataModelUtil {
* @param substitutionMappingRequirementId the substitution mapping requirement id
* @param substitutionMappingRequirementList the substitution mapping requirement list
*/
- public static void addSubstitutionMappingReq(ServiceTemplate serviceTemplate,
- String substitutionMappingRequirementId,
+ public static void addSubstitutionMappingReq(ServiceTemplate serviceTemplate, String substitutionMappingRequirementId,
List<String> substitutionMappingRequirementList) {
if (serviceTemplate == null) {
- throw new CoreException(
- new InvalidAddActionNullEntityErrorBuilder("Substitution Mapping Requirements", SERVICE_TEMPLATE)
- .build());
+ throw new CoreException(new InvalidAddActionNullEntityErrorBuilder("Substitution Mapping Requirements", SERVICE_TEMPLATE).build());
}
-
if (serviceTemplate.getTopology_template() == null) {
serviceTemplate.setTopology_template(new TopologyTemplate());
}
@@ -135,9 +126,8 @@ public class DataModelUtil {
if (serviceTemplate.getTopology_template().getSubstitution_mappings().getRequirements() == null) {
serviceTemplate.getTopology_template().getSubstitution_mappings().setRequirements(new HashMap<>());
}
-
serviceTemplate.getTopology_template().getSubstitution_mappings().getRequirements()
- .put(substitutionMappingRequirementId, substitutionMappingRequirementList);
+ .put(substitutionMappingRequirementId, substitutionMappingRequirementList);
}
/**
@@ -147,14 +137,11 @@ public class DataModelUtil {
* @param substitutionMappingCapabilityId the substitution mapping capability id
* @param substitutionMappingCapabilityList the substitution mapping capability list
*/
- public static void addSubstitutionMappingCapability(ServiceTemplate serviceTemplate,
- String substitutionMappingCapabilityId,
+ public static void addSubstitutionMappingCapability(ServiceTemplate serviceTemplate, String substitutionMappingCapabilityId,
List<String> substitutionMappingCapabilityList) {
if (serviceTemplate == null) {
- throw new CoreException(new InvalidAddActionNullEntityErrorBuilder("Substitution Mapping Capabilities",
- SERVICE_TEMPLATE).build());
+ throw new CoreException(new InvalidAddActionNullEntityErrorBuilder("Substitution Mapping Capabilities", SERVICE_TEMPLATE).build());
}
-
if (serviceTemplate.getTopology_template() == null) {
serviceTemplate.setTopology_template(new TopologyTemplate());
}
@@ -164,9 +151,8 @@ public class DataModelUtil {
if (serviceTemplate.getTopology_template().getSubstitution_mappings().getCapabilities() == null) {
serviceTemplate.getTopology_template().getSubstitution_mappings().setCapabilities(new HashMap<>());
}
-
serviceTemplate.getTopology_template().getSubstitution_mappings().getCapabilities()
- .putIfAbsent(substitutionMappingCapabilityId, substitutionMappingCapabilityList);
+ .putIfAbsent(substitutionMappingCapabilityId, substitutionMappingCapabilityList);
}
/**
@@ -176,11 +162,10 @@ public class DataModelUtil {
* @return the service template node templates and empty map if not present
*/
public static Map<String, NodeTemplate> getNodeTemplates(ServiceTemplate serviceTemplate) {
- if (Objects.isNull(serviceTemplate) || Objects.isNull(serviceTemplate.getTopology_template())
- || MapUtils.isEmpty(serviceTemplate.getTopology_template().getNode_templates())) {
+ if (Objects.isNull(serviceTemplate) || Objects.isNull(serviceTemplate.getTopology_template()) || MapUtils
+ .isEmpty(serviceTemplate.getTopology_template().getNode_templates())) {
return new HashMap<>();
}
-
return serviceTemplate.getTopology_template().getNode_templates();
}
@@ -191,11 +176,10 @@ public class DataModelUtil {
* @return the service template groups and empty map if not present
*/
public static Map<String, GroupDefinition> getGroups(ServiceTemplate serviceTemplate) {
- if (Objects.isNull(serviceTemplate) || Objects.isNull(serviceTemplate.getTopology_template())
- || MapUtils.isEmpty(serviceTemplate.getTopology_template().getGroups())) {
+ if (Objects.isNull(serviceTemplate) || Objects.isNull(serviceTemplate.getTopology_template()) || MapUtils
+ .isEmpty(serviceTemplate.getTopology_template().getGroups())) {
return new HashMap<>();
}
-
return serviceTemplate.getTopology_template().getGroups();
}
@@ -206,11 +190,9 @@ public class DataModelUtil {
* @param nodeTemplateId the node template id
* @param nodeTemplate the node template
*/
- public static void addNodeTemplate(ServiceTemplate serviceTemplate, String nodeTemplateId,
- NodeTemplate nodeTemplate) {
+ public static void addNodeTemplate(ServiceTemplate serviceTemplate, String nodeTemplateId, NodeTemplate nodeTemplate) {
if (serviceTemplate == null) {
- throw new CoreException(
- new InvalidAddActionNullEntityErrorBuilder("Node Template", SERVICE_TEMPLATE).build());
+ throw new CoreException(new InvalidAddActionNullEntityErrorBuilder("Node Template", SERVICE_TEMPLATE).build());
}
TopologyTemplate topologyTemplate = serviceTemplate.getTopology_template();
if (Objects.isNull(topologyTemplate)) {
@@ -233,16 +215,12 @@ public class DataModelUtil {
if (MapUtils.isEmpty(capabilities)) {
return;
}
-
if (nodeType == null) {
- throw new CoreException(
- new InvalidAddActionNullEntityErrorBuilder("Capability Definition", NODE_TYPE).build());
+ throw new CoreException(new InvalidAddActionNullEntityErrorBuilder("Capability Definition", NODE_TYPE).build());
}
-
if (MapUtils.isEmpty(nodeType.getCapabilities())) {
nodeType.setCapabilities(new HashMap<>());
}
-
for (Map.Entry<String, CapabilityDefinition> entry : capabilities.entrySet()) {
nodeType.getCapabilities().put(entry.getKey(), entry.getValue());
}
@@ -258,19 +236,14 @@ public class DataModelUtil {
if (MapUtils.isEmpty(capabilities)) {
return;
}
-
if (nodeType == null) {
- throw new CoreException(new InvalidAddActionNullEntityErrorBuilder("Capability Definition", NODE_TYPE)
- .build());
+ throw new CoreException(new InvalidAddActionNullEntityErrorBuilder("Capability Definition", NODE_TYPE).build());
}
-
if (MapUtils.isEmpty(nodeType.getCapabilities())) {
nodeType.setCapabilities(new HashMap<>());
}
-
if (MapUtils.isNotEmpty(capabilities)) {
nodeType.setCapabilities(new HashMap<>());
-
for (Map.Entry<String, CapabilityDefinition> entry : capabilities.entrySet()) {
nodeType.getCapabilities().put(entry.getKey(), entry.getValue());
}
@@ -284,11 +257,9 @@ public class DataModelUtil {
* @param policyId the policy id
* @param policyDefinition the policy definition
*/
- public static void addPolicyDefinition(ServiceTemplate serviceTemplate, String policyId,
- PolicyDefinition policyDefinition) {
+ public static void addPolicyDefinition(ServiceTemplate serviceTemplate, String policyId, PolicyDefinition policyDefinition) {
if (serviceTemplate == null) {
- throw new CoreException(
- new InvalidAddActionNullEntityErrorBuilder("Policy Definition", SERVICE_TEMPLATE).build());
+ throw new CoreException(new InvalidAddActionNullEntityErrorBuilder("Policy Definition", SERVICE_TEMPLATE).build());
}
TopologyTemplate topologyTemplate = serviceTemplate.getTopology_template();
if (Objects.isNull(topologyTemplate)) {
@@ -318,20 +289,16 @@ public class DataModelUtil {
serviceTemplate.getNode_types().put(nodeTypeId, nodeType);
}
- public static void addDataType(final ServiceTemplate serviceTemplate, final String key,
- final DataType nodeTypeValue) {
+ public static void addDataType(final ServiceTemplate serviceTemplate, final String key, final DataType nodeTypeValue) {
if (serviceTemplate == null) {
throw new CoreException(new InvalidAddActionNullEntityErrorBuilder("Data Type", SERVICE_TEMPLATE).build());
}
-
if (serviceTemplate.getData_types() == null) {
serviceTemplate.setData_types(new HashMap<>());
}
-
serviceTemplate.getData_types().put(key, nodeTypeValue);
}
-
/**
* Add relationship template.
*
@@ -342,8 +309,7 @@ public class DataModelUtil {
public static void addRelationshipTemplate(ServiceTemplate serviceTemplate, String relationshipTemplateId,
RelationshipTemplate relationshipTemplate) {
if (serviceTemplate == null) {
- throw new CoreException(
- new InvalidAddActionNullEntityErrorBuilder("Relationship Template", SERVICE_TEMPLATE).build());
+ throw new CoreException(new InvalidAddActionNullEntityErrorBuilder("Relationship Template", SERVICE_TEMPLATE).build());
}
if (serviceTemplate.getTopology_template() == null) {
serviceTemplate.setTopology_template(new TopologyTemplate());
@@ -351,8 +317,7 @@ public class DataModelUtil {
if (serviceTemplate.getTopology_template().getRelationship_templates() == null) {
serviceTemplate.getTopology_template().setRelationship_templates(new HashMap<>());
}
- serviceTemplate.getTopology_template().getRelationship_templates()
- .put(relationshipTemplateId, relationshipTemplate);
+ serviceTemplate.getTopology_template().getRelationship_templates().put(relationshipTemplateId, relationshipTemplate);
}
/**
@@ -362,17 +327,13 @@ public class DataModelUtil {
* @param requirementId the requirement id
* @param requirementAssignment the requirement assignment
*/
- public static void addRequirementAssignment(NodeTemplate nodeTemplate, String requirementId,
- RequirementAssignment requirementAssignment) {
+ public static void addRequirementAssignment(NodeTemplate nodeTemplate, String requirementId, RequirementAssignment requirementAssignment) {
if (nodeTemplate == null) {
- throw new CoreException(
- new InvalidAddActionNullEntityErrorBuilder("Requirement Assignment",
- "Node Template").build());
+ throw new CoreException(new InvalidAddActionNullEntityErrorBuilder("Requirement Assignment", "Node Template").build());
}
if (requirementAssignment.getNode() == null) {
throw new CoreException(new InvalidRequirementAssignmentErrorBuilder(requirementId).build());
}
-
Map<String, RequirementAssignment> requirement = new HashMap<>();
requirement.put(requirementId, requirementAssignment);
nodeTemplate.addRequirements(requirement);
@@ -401,7 +362,7 @@ public class DataModelUtil {
*/
public static NodeTemplate getNodeTemplate(ServiceTemplate serviceTemplate, String nodeTemplateId) {
if (serviceTemplate == null || serviceTemplate.getTopology_template() == null
- || serviceTemplate.getTopology_template().getNode_templates() == null) {
+ || serviceTemplate.getTopology_template().getNode_templates() == null) {
return null;
}
return serviceTemplate.getTopology_template().getNode_templates().get(nodeTemplateId);
@@ -428,8 +389,7 @@ public class DataModelUtil {
* @param requirementDefinitionId the requirement definition id
* @return the requirement definition
*/
- public static Optional<RequirementDefinition> getRequirementDefinition(NodeType nodeType,
- String requirementDefinitionId) {
+ public static Optional<RequirementDefinition> getRequirementDefinition(NodeType nodeType, String requirementDefinitionId) {
if (nodeType == null || nodeType.getRequirements() == null || requirementDefinitionId == null) {
return Optional.empty();
}
@@ -442,18 +402,16 @@ public class DataModelUtil {
* @param requirementsDefinitionList requirement definition list
* @param requirementKey requirement key
*/
- public static Optional<RequirementDefinition> getRequirementDefinition(
- List<Map<String, RequirementDefinition>> requirementsDefinitionList, String requirementKey) {
+ public static Optional<RequirementDefinition> getRequirementDefinition(List<Map<String, RequirementDefinition>> requirementsDefinitionList,
+ String requirementKey) {
if (CollectionUtils.isEmpty(requirementsDefinitionList)) {
return Optional.empty();
}
-
ToscaExtensionYamlUtil toscaExtensionYamlUtil = new ToscaExtensionYamlUtil();
for (Map<String, RequirementDefinition> requirementMap : requirementsDefinitionList) {
if (requirementMap.containsKey(requirementKey)) {
- RequirementDefinition requirementDefinition = toscaExtensionYamlUtil.yamlToObject(
- toscaExtensionYamlUtil.objectToYaml(requirementMap.get(requirementKey)),
- RequirementDefinition.class);
+ RequirementDefinition requirementDefinition = toscaExtensionYamlUtil
+ .yamlToObject(toscaExtensionYamlUtil.objectToYaml(requirementMap.get(requirementKey)), RequirementDefinition.class);
return Optional.of(requirementDefinition);
}
}
@@ -467,8 +425,7 @@ public class DataModelUtil {
* @param capabilityDefinitionId the capability definition id
* @return the capability definition
*/
- public static Optional<CapabilityDefinition> getCapabilityDefinition(NodeType nodeType,
- String capabilityDefinitionId) {
+ public static Optional<CapabilityDefinition> getCapabilityDefinition(NodeType nodeType, String capabilityDefinitionId) {
if (nodeType == null || nodeType.getCapabilities() == null || capabilityDefinitionId == null) {
return Optional.empty();
}
@@ -482,13 +439,10 @@ public class DataModelUtil {
* @param groupName the group name
* @param group the group
*/
- public static void addGroupDefinitionToTopologyTemplate(ServiceTemplate serviceTemplate, String groupName,
- GroupDefinition group) {
+ public static void addGroupDefinitionToTopologyTemplate(ServiceTemplate serviceTemplate, String groupName, GroupDefinition group) {
if (serviceTemplate == null) {
- throw new CoreException(
- new InvalidAddActionNullEntityErrorBuilder("Group Definition", SERVICE_TEMPLATE).build());
+ throw new CoreException(new InvalidAddActionNullEntityErrorBuilder("Group Definition", SERVICE_TEMPLATE).build());
}
-
TopologyTemplate topologyTemplate = serviceTemplate.getTopology_template();
if (Objects.isNull(topologyTemplate)) {
topologyTemplate = new TopologyTemplate();
@@ -501,7 +455,6 @@ public class DataModelUtil {
Map<String, GroupDefinition> groups = new HashMap<>();
serviceTemplate.getTopology_template().setGroups(groups);
}
-
serviceTemplate.getTopology_template().getGroups().put(groupName, group);
}
@@ -514,16 +467,13 @@ public class DataModelUtil {
*/
public static void addGroupMember(ServiceTemplate serviceTemplate, String groupName, String groupMemberId) {
TopologyTemplate topologyTemplate = serviceTemplate.getTopology_template();
- if (Objects.isNull(topologyTemplate) || topologyTemplate.getGroups() == null
- || topologyTemplate.getGroups().get(groupName) == null) {
+ if (Objects.isNull(topologyTemplate) || topologyTemplate.getGroups() == null || topologyTemplate.getGroups().get(groupName) == null) {
return;
}
-
GroupDefinition groupDefinition = topologyTemplate.getGroups().get(groupName);
if (CollectionUtils.isEmpty(groupDefinition.getMembers())) {
groupDefinition.setMembers(new ArrayList<>());
}
-
if (!groupDefinition.getMembers().contains(groupMemberId)) {
groupDefinition.getMembers().add(groupMemberId);
}
@@ -540,9 +490,8 @@ public class DataModelUtil {
* @param defaultVal the default val
* @return the property definition
*/
- public static ParameterDefinition createParameterDefinition(String type, String description, Boolean required,
- List<Constraint> constraints, EntrySchema entrySchema,
- Object defaultVal) {
+ public static ParameterDefinition createParameterDefinition(String type, String description, Boolean required, List<Constraint> constraints,
+ EntrySchema entrySchema, Object defaultVal) {
ParameterDefinition paramDef = new ParameterDefinition();
paramDef.setType(type);
paramDef.setDescription(description);
@@ -562,8 +511,7 @@ public class DataModelUtil {
* @param occurrences the occurrences
* @return the requirement definition
*/
- public static RequirementDefinition createRequirement(String capability, String node, String relationship,
- Object[] occurrences) {
+ public static RequirementDefinition createRequirement(String capability, String node, String relationship, Object[] occurrences) {
RequirementDefinition requirementDefinition = new RequirementDefinition();
requirementDefinition.setCapability(capability);
requirementDefinition.setNode(node);
@@ -586,7 +534,6 @@ public class DataModelUtil {
if (Objects.isNull(type) && Objects.isNull(description) && CollectionUtils.isEmpty(constraints)) {
return null;
}
-
EntrySchema entrySchema = new EntrySchema();
entrySchema.setType(type);
entrySchema.setDescription(description);
@@ -602,8 +549,7 @@ public class DataModelUtil {
* @param nestedPropertyName the nested property name
* @return the map
*/
- public static Map createGetInputPropertyValueFromListParameter(String inputPropertyListName, int indexInTheList,
- String... nestedPropertyName) {
+ public static Map createGetInputPropertyValueFromListParameter(String inputPropertyListName, int indexInTheList, String... nestedPropertyName) {
List<Object> propertyList = new ArrayList<>();
propertyList.add(inputPropertyListName);
propertyList.add(indexInTheList);
@@ -625,7 +571,6 @@ public class DataModelUtil {
if (propertyDefinition == null) {
return null;
}
-
ParameterDefinitionExt parameterDefinition = new ParameterDefinitionExt();
parameterDefinition.setType(propertyDefinition.getType());
parameterDefinition.setDescription(propertyDefinition.getDescription());
@@ -633,8 +578,8 @@ public class DataModelUtil {
parameterDefinition.set_default(propertyDefinition.get_default());
parameterDefinition.setStatus(propertyDefinition.getStatus());
parameterDefinition.setConstraints(propertyDefinition.getConstraints());
- parameterDefinition.setEntry_schema(Objects.isNull(propertyDefinition.getEntry_schema()) ? null :
- propertyDefinition.getEntry_schema().clone());
+ parameterDefinition
+ .setEntry_schema(Objects.isNull(propertyDefinition.getEntry_schema()) ? null : propertyDefinition.getEntry_schema().clone());
parameterDefinition.setHidden(false);
parameterDefinition.setImmutable(false);
return parameterDefinition;
@@ -647,8 +592,7 @@ public class DataModelUtil {
* @param outputValue the output value
* @return the parameter definition ext
*/
- public static ParameterDefinitionExt convertAttributeDefToParameterDef(AttributeDefinition attributeDefinition,
- Map<String, List> outputValue) {
+ public static ParameterDefinitionExt convertAttributeDefToParameterDef(AttributeDefinition attributeDefinition, Map<String, List> outputValue) {
if (attributeDefinition == null) {
return null;
}
@@ -660,7 +604,7 @@ public class DataModelUtil {
public static boolean isNodeTemplate(String entryId, ServiceTemplate serviceTemplate) {
return serviceTemplate.getTopology_template().getNode_templates() != null
- && serviceTemplate.getTopology_template().getNode_templates().get(entryId) != null;
+ && serviceTemplate.getTopology_template().getNode_templates().get(entryId) != null;
}
/**
@@ -670,13 +614,10 @@ public class DataModelUtil {
* @param parameterDefinitionId the parameter definition id
* @param parameterDefinition the parameter definition
*/
- public static void addInputParameterToTopologyTemplate(ServiceTemplate serviceTemplate,
- String parameterDefinitionId,
+ public static void addInputParameterToTopologyTemplate(ServiceTemplate serviceTemplate, String parameterDefinitionId,
ParameterDefinition parameterDefinition) {
if (Objects.isNull(serviceTemplate)) {
- throw new CoreException(
- new InvalidAddActionNullEntityErrorBuilder("Topology Template Input Parameter", SERVICE_TEMPLATE)
- .build());
+ throw new CoreException(new InvalidAddActionNullEntityErrorBuilder("Topology Template Input Parameter", SERVICE_TEMPLATE).build());
}
TopologyTemplate topologyTemplate = serviceTemplate.getTopology_template();
if (Objects.isNull(topologyTemplate)) {
@@ -696,13 +637,10 @@ public class DataModelUtil {
* @param parameterDefinitionId the parameter definition id
* @param parameterDefinition the parameter definition
*/
- public static void addOutputParameterToTopologyTemplate(ServiceTemplate serviceTemplate,
- String parameterDefinitionId,
+ public static void addOutputParameterToTopologyTemplate(ServiceTemplate serviceTemplate, String parameterDefinitionId,
ParameterDefinition parameterDefinition) {
if (Objects.isNull(serviceTemplate)) {
- throw new CoreException(
- new InvalidAddActionNullEntityErrorBuilder("Topology Template Output Parameter", SERVICE_TEMPLATE)
- .build());
+ throw new CoreException(new InvalidAddActionNullEntityErrorBuilder("Topology Template Output Parameter", SERVICE_TEMPLATE).build());
}
TopologyTemplate topologyTemplate = serviceTemplate.getTopology_template();
if (Objects.isNull(topologyTemplate)) {
@@ -729,7 +667,6 @@ public class DataModelUtil {
if (requirementList == null) {
requirementList = new ArrayList<>();
}
-
for (Map.Entry<String, RequirementDefinition> entry : requirementDef.entrySet()) {
CommonMethods.mergeEntryInList(entry.getKey(), entry.getValue(), requirementList);
}
@@ -745,7 +682,6 @@ public class DataModelUtil {
return null;
}
List<Map<String, RequirementAssignment>> templateRequirements = nodeTemplate.getRequirements();
-
Map<String, RequirementAssignment> nodeTemplateRequirementsAssignment = new HashMap<>();
if (CollectionUtils.isEmpty(templateRequirements)) {
return nodeTemplateRequirementsAssignment;
@@ -753,8 +689,8 @@ public class DataModelUtil {
ToscaExtensionYamlUtil toscaExtensionYamlUtil = new ToscaExtensionYamlUtil();
for (Map<String, RequirementAssignment> requirementAssignmentMap : templateRequirements) {
for (Map.Entry<String, RequirementAssignment> requirementEntry : requirementAssignmentMap.entrySet()) {
- RequirementAssignment requirementAssignment = (toscaExtensionYamlUtil.yamlToObject(
- toscaExtensionYamlUtil.objectToYaml(requirementEntry.getValue()), RequirementAssignment.class));
+ RequirementAssignment requirementAssignment = (toscaExtensionYamlUtil
+ .yamlToObject(toscaExtensionYamlUtil.objectToYaml(requirementEntry.getValue()), RequirementAssignment.class));
nodeTemplateRequirementsAssignment.put(requirementEntry.getKey(), requirementAssignment);
}
}
@@ -779,8 +715,8 @@ public class DataModelUtil {
Map<String, RequirementAssignment> requirement = reqListIterator.next();
Map<String, RequirementAssignment> concreteRequirement = new HashMap<>();
for (Map.Entry<String, RequirementAssignment> reqEntry : requirement.entrySet()) {
- RequirementAssignment requirementAssignment = (toscaExtensionYamlUtil.yamlToObject(
- toscaExtensionYamlUtil.objectToYaml(reqEntry.getValue()), RequirementAssignment.class));
+ RequirementAssignment requirementAssignment = (toscaExtensionYamlUtil
+ .yamlToObject(toscaExtensionYamlUtil.objectToYaml(reqEntry.getValue()), RequirementAssignment.class));
concreteRequirement.put(reqEntry.getKey(), requirementAssignment);
concreteRequirementList.add(concreteRequirement);
reqListIterator.remove();
@@ -799,19 +735,17 @@ public class DataModelUtil {
* @param requirementsAssignmentList requirement definition list
* @param requirementKey requirement key
*/
- public static Optional<List<RequirementAssignment>> getRequirementAssignment(
- List<Map<String, RequirementAssignment>> requirementsAssignmentList, String requirementKey) {
+ public static Optional<List<RequirementAssignment>> getRequirementAssignment(List<Map<String, RequirementAssignment>> requirementsAssignmentList,
+ String requirementKey) {
if (CollectionUtils.isEmpty(requirementsAssignmentList)) {
return Optional.empty();
}
-
List<RequirementAssignment> matchRequirementAssignmentList = new ArrayList<>();
for (Map<String, RequirementAssignment> requirementMap : requirementsAssignmentList) {
if (requirementMap.containsKey(requirementKey)) {
ToscaExtensionYamlUtil toscaExtensionYamlUtil = new ToscaExtensionYamlUtil();
- RequirementAssignment requirementAssignment = (toscaExtensionYamlUtil.yamlToObject(
- toscaExtensionYamlUtil.objectToYaml(requirementMap.get(requirementKey)),
- RequirementAssignment.class));
+ RequirementAssignment requirementAssignment = (toscaExtensionYamlUtil
+ .yamlToObject(toscaExtensionYamlUtil.objectToYaml(requirementMap.get(requirementKey)), RequirementAssignment.class));
matchRequirementAssignmentList.add(requirementAssignment);
}
}
@@ -827,12 +761,10 @@ public class DataModelUtil {
* @param requirementsDefinitionList requirement definition list
* @param requirementKey requirement key
*/
- public static void removeRequirementsDefinition(List<Map<String, RequirementDefinition>> requirementsDefinitionList,
- String requirementKey) {
+ public static void removeRequirementsDefinition(List<Map<String, RequirementDefinition>> requirementsDefinitionList, String requirementKey) {
if (requirementsDefinitionList == null) {
return;
}
-
List<Map<String, RequirementDefinition>> mapToBeRemoved = new ArrayList<>();
for (Map<String, RequirementDefinition> reqMap : requirementsDefinitionList) {
reqMap.remove(requirementKey);
@@ -851,12 +783,10 @@ public class DataModelUtil {
* @param requirementsAssignmentList requirement Assignment list
* @param requirementKey requirement key
*/
- public static void removeRequirementsAssignment(List<Map<String, RequirementAssignment>> requirementsAssignmentList,
- String requirementKey) {
+ public static void removeRequirementsAssignment(List<Map<String, RequirementAssignment>> requirementsAssignmentList, String requirementKey) {
if (requirementsAssignmentList == null) {
return;
}
-
List<Map<String, RequirementAssignment>> mapToBeRemoved = new ArrayList<>();
for (Map<String, RequirementAssignment> reqMap : requirementsAssignmentList) {
reqMap.remove(requirementKey);
@@ -869,7 +799,6 @@ public class DataModelUtil {
}
}
-
/**
* Remove requirement assignment.
*
@@ -884,19 +813,14 @@ public class DataModelUtil {
if (nodeTemplateRequirements == null) {
return;
}
-
ListIterator<Map<String, RequirementAssignment>> iter = nodeTemplateRequirements.listIterator();
while (iter.hasNext()) {
Map<String, RequirementAssignment> reqMap = iter.next();
RequirementAssignment requirementAssignment = reqMap.get(requirementKey);
if (requirementAssignment != null) {
boolean isDesiredRequirementAssignment = toscaAnalyzerService
- .isDesiredRequirementAssignment(requirementAssignment,
- requirementAssignmentToBeDeleted
- .getCapability(),
- requirementAssignmentToBeDeleted.getNode(),
- requirementAssignmentToBeDeleted
- .getRelationship());
+ .isDesiredRequirementAssignment(requirementAssignment, requirementAssignmentToBeDeleted.getCapability(),
+ requirementAssignmentToBeDeleted.getNode(), requirementAssignmentToBeDeleted.getRelationship());
if (isDesiredRequirementAssignment) {
iter.remove();
}
@@ -946,7 +870,7 @@ public class DataModelUtil {
*/
public static ParameterDefinition getOuputParameter(ServiceTemplate serviceTemplate, String outputParameterId) {
if (serviceTemplate == null || serviceTemplate.getTopology_template() == null
- || serviceTemplate.getTopology_template().getOutputs() == null) {
+ || serviceTemplate.getTopology_template().getOutputs() == null) {
return null;
}
return serviceTemplate.getTopology_template().getOutputs().get(outputParameterId);
@@ -959,8 +883,7 @@ public class DataModelUtil {
* @return the input parameters
*/
public static Map<String, ParameterDefinition> getInputParameters(ServiceTemplate serviceTemplate) {
- if (serviceTemplate == null || serviceTemplate.getTopology_template() == null
- || serviceTemplate.getTopology_template().getInputs() == null) {
+ if (serviceTemplate == null || serviceTemplate.getTopology_template() == null || serviceTemplate.getTopology_template().getInputs() == null) {
return null;
}
return serviceTemplate.getTopology_template().getInputs();
@@ -974,7 +897,7 @@ public class DataModelUtil {
*/
public static Map<String, RelationshipTemplate> getRelationshipTemplates(ServiceTemplate serviceTemplate) {
if (serviceTemplate == null || serviceTemplate.getTopology_template() == null
- || serviceTemplate.getTopology_template().getRelationship_templates() == null) {
+ || serviceTemplate.getTopology_template().getRelationship_templates() == null) {
return null;
}
return serviceTemplate.getTopology_template().getRelationship_templates();
@@ -1001,11 +924,10 @@ public class DataModelUtil {
* @param nodeTemplateId node template id
* @return node template properties
*/
- public static Map<String, Object> getNodeTemplateProperties(ServiceTemplate serviceTemplate,
- String nodeTemplateId) {
+ public static Map<String, Object> getNodeTemplateProperties(ServiceTemplate serviceTemplate, String nodeTemplateId) {
if (serviceTemplate == null || serviceTemplate.getTopology_template() == null
- || serviceTemplate.getTopology_template().getNode_templates() == null
- || serviceTemplate.getTopology_template().getNode_templates().get(nodeTemplateId) == null) {
+ || serviceTemplate.getTopology_template().getNode_templates() == null
+ || serviceTemplate.getTopology_template().getNode_templates().get(nodeTemplateId) == null) {
return null;
}
return serviceTemplate.getTopology_template().getNode_templates().get(nodeTemplateId).getProperties();
@@ -1022,11 +944,9 @@ public class DataModelUtil {
if (Objects.isNull(nodeTemplate)) {
return;
}
-
if (MapUtils.isEmpty(nodeTemplate.getProperties())) {
nodeTemplate.setProperties(new HashMap<>());
}
-
nodeTemplate.getProperties().put(propertyKey, propertyValue);
}
@@ -1038,13 +958,12 @@ public class DataModelUtil {
*/
public static SubstitutionMapping getSubstitutionMappings(ServiceTemplate serviceTemplate) {
if (serviceTemplate == null || serviceTemplate.getTopology_template() == null
- || serviceTemplate.getTopology_template().getSubstitution_mappings() == null) {
+ || serviceTemplate.getTopology_template().getSubstitution_mappings() == null) {
return null;
}
return serviceTemplate.getTopology_template().getSubstitution_mappings();
}
-
/**
* Compare two requirement assignment objects for equality.
*
@@ -1053,8 +972,8 @@ public class DataModelUtil {
* @return true if objects are equal and false otherwise
*/
public static boolean compareRequirementAssignment(RequirementAssignment first, RequirementAssignment second) {
- return (first.getCapability().equals(second.getCapability()) && first.getNode().equals(second.getNode())
- && first.getRelationship().equals(second.getRelationship()));
+ return (first.getCapability().equals(second.getCapability()) && first.getNode().equals(second.getNode()) && first.getRelationship()
+ .equals(second.getRelationship()));
}
/**
@@ -1138,15 +1057,13 @@ public class DataModelUtil {
* @param mapping the mapping
* @return the substitution mapping
*/
- public static SubstitutionMapping createSubstitutionTemplateSubMapping(String nodeTypeKey,
- NodeType substitutionNodeType,
+ public static SubstitutionMapping createSubstitutionTemplateSubMapping(String nodeTypeKey, NodeType substitutionNodeType,
Map<String, Map<String, List<String>>> mapping) {
SubstitutionMapping substitutionMapping = new SubstitutionMapping();
substitutionMapping.setNode_type(nodeTypeKey);
- substitutionMapping.setCapabilities(manageCapabilityMapping(substitutionNodeType.getCapabilities(),
- mapping.get(ToscaConstants.CAPABILITY)));
- substitutionMapping.setRequirements(
- manageRequirementMapping(substitutionNodeType.getRequirements(), mapping.get(ToscaConstants.REQUIREMENT)));
+ substitutionMapping.setCapabilities(manageCapabilityMapping(substitutionNodeType.getCapabilities(), mapping.get(ToscaConstants.CAPABILITY)));
+ substitutionMapping
+ .setRequirements(manageRequirementMapping(substitutionNodeType.getRequirements(), mapping.get(ToscaConstants.REQUIREMENT)));
return substitutionMapping;
}
@@ -1158,8 +1075,7 @@ public class DataModelUtil {
* @param capabilityProperties the capability properties
* @param capabilityAttributes the capability attributes
*/
- public static void addNodeTemplateCapability(NodeTemplate nodeTemplate, String capabilityId,
- Map<String, Object> capabilityProperties,
+ public static void addNodeTemplateCapability(NodeTemplate nodeTemplate, String capabilityId, Map<String, Object> capabilityProperties,
Map<String, Object> capabilityAttributes) {
Map<String, CapabilityAssignment> capabilities = nodeTemplate.getCapabilities();
if (Objects.isNull(capabilities)) {
@@ -1172,9 +1088,8 @@ public class DataModelUtil {
nodeTemplate.setCapabilities(capabilities);
}
- private static Map<String, List<String>> manageRequirementMapping(
- List<Map<String, RequirementDefinition>> requirementList,
- Map<String, List<String>> requirementSubstitutionMapping) {
+ private static Map<String, List<String>> manageRequirementMapping(List<Map<String, RequirementDefinition>> requirementList,
+ Map<String, List<String>> requirementSubstitutionMapping) {
if (requirementList == null) {
return null;
}
@@ -1196,7 +1111,6 @@ public class DataModelUtil {
if (capabilities == null) {
return null;
}
-
Map<String, List<String>> capabilityMapping = new HashMap<>();
String capabilityKey;
List<String> capabilityMap;
@@ -1208,8 +1122,7 @@ public class DataModelUtil {
return capabilityMapping;
}
- public static void addSubstitutionNodeTypeRequirements(NodeType substitutionNodeType,
- List<Map<String, RequirementDefinition>> requirementsList,
+ public static void addSubstitutionNodeTypeRequirements(NodeType substitutionNodeType, List<Map<String, RequirementDefinition>> requirementsList,
String templateName) {
if (CollectionUtils.isEmpty(requirementsList)) {
return;
@@ -1217,7 +1130,6 @@ public class DataModelUtil {
if (substitutionNodeType.getRequirements() == null) {
substitutionNodeType.setRequirements(new ArrayList<>());
}
-
for (Map<String, RequirementDefinition> requirementDef : requirementsList) {
for (Map.Entry<String, RequirementDefinition> entry : requirementDef.entrySet()) {
Map<String, RequirementDefinition> requirementMap = new HashMap<>();
@@ -1228,8 +1140,7 @@ public class DataModelUtil {
}
public static boolean isNodeTemplateSectionMissingFromServiceTemplate(ServiceTemplate serviceTemplate) {
- return Objects.isNull(serviceTemplate.getTopology_template()) || MapUtils.isEmpty(
- serviceTemplate.getTopology_template().getNode_templates());
+ return Objects.isNull(serviceTemplate.getTopology_template()) || MapUtils.isEmpty(serviceTemplate.getTopology_template().getNode_templates());
}
/**
@@ -1239,15 +1150,12 @@ public class DataModelUtil {
* @param relationshipId the relationship id
* @return the relationship template
*/
- public static Optional<RelationshipTemplate> getRelationshipTemplate(ServiceTemplate serviceTemplate,
- String relationshipId) {
+ public static Optional<RelationshipTemplate> getRelationshipTemplate(ServiceTemplate serviceTemplate, String relationshipId) {
if (serviceTemplate == null || serviceTemplate.getTopology_template() == null
- || serviceTemplate.getTopology_template().getRelationship_templates() == null
- || serviceTemplate.getTopology_template().getRelationship_templates().get(relationshipId) == null) {
+ || serviceTemplate.getTopology_template().getRelationship_templates() == null
+ || serviceTemplate.getTopology_template().getRelationship_templates().get(relationshipId) == null) {
return Optional.empty();
}
return Optional.of(serviceTemplate.getTopology_template().getRelationship_templates().get(relationshipId));
}
-
-
}
diff --git a/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/ToscaAnalyzerService.java b/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/ToscaAnalyzerService.java
index b21d847a07..b15f32644a 100644
--- a/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/ToscaAnalyzerService.java
+++ b/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/ToscaAnalyzerService.java
@@ -13,78 +13,76 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
package org.openecomp.sdc.tosca.services;
-import org.onap.sdc.tosca.datatypes.model.*;
-import org.openecomp.sdc.tosca.datatypes.ToscaElementTypes;
-import org.openecomp.sdc.tosca.datatypes.ToscaFlatData;
-import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
-
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Optional;
+import org.onap.sdc.tosca.datatypes.model.CapabilityDefinition;
+import org.onap.sdc.tosca.datatypes.model.DefinitionOfDataType;
+import org.onap.sdc.tosca.datatypes.model.InterfaceDefinitionType;
+import org.onap.sdc.tosca.datatypes.model.NodeTemplate;
+import org.onap.sdc.tosca.datatypes.model.NodeType;
+import org.onap.sdc.tosca.datatypes.model.PropertyDefinition;
+import org.onap.sdc.tosca.datatypes.model.RequirementAssignment;
+import org.onap.sdc.tosca.datatypes.model.RequirementDefinition;
+import org.onap.sdc.tosca.datatypes.model.ServiceTemplate;
+import org.openecomp.sdc.tosca.datatypes.ToscaElementTypes;
+import org.openecomp.sdc.tosca.datatypes.ToscaFlatData;
+import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
public interface ToscaAnalyzerService {
/*
node template with type equal to node type or derived from node type
*/
- Map<String, NodeTemplate> getNodeTemplatesByType(ServiceTemplate serviceTemplate, String nodeType,
- ToscaServiceModel toscaServiceModel);
+ Map<String, NodeTemplate> getNodeTemplatesByType(ServiceTemplate serviceTemplate, String nodeType, ToscaServiceModel toscaServiceModel);
Optional<NodeType> fetchNodeType(String nodeTypeKey, Collection<ServiceTemplate> serviceTemplates);
- boolean isTypeOf(NodeTemplate nodeTemplate, String nodeType, ServiceTemplate serviceTemplate,
- ToscaServiceModel toscaServiceModel);
+ boolean isTypeOf(NodeTemplate nodeTemplate, String nodeType, ServiceTemplate serviceTemplate, ToscaServiceModel toscaServiceModel);
boolean isTypeOf(InterfaceDefinitionType interfaceDefinition, String interfaceType, ServiceTemplate serviceTemplate,
- ToscaServiceModel toscaServiceModel);
+ ToscaServiceModel toscaServiceModel);
- boolean isTypeOf(DefinitionOfDataType parameterDefinition, String dataType, ServiceTemplate serviceTemplate,
- ToscaServiceModel toscaServiceModel);
+ boolean isTypeOf(DefinitionOfDataType parameterDefinition, String dataType, ServiceTemplate serviceTemplate, ToscaServiceModel toscaServiceModel);
boolean isTypeOf(CapabilityDefinition capabilityDefinition, String capabilityType, ServiceTemplate serviceTemplate,
- ToscaServiceModel toscaServiceModel);
+ ToscaServiceModel toscaServiceModel);
List<RequirementAssignment> getRequirements(NodeTemplate nodeTemplate, String requirementId);
Optional<NodeTemplate> getNodeTemplateById(ServiceTemplate serviceTemplate, String nodeTemplateId);
- Optional<String> getSubstituteServiceTemplateName(String substituteNodeTemplateId,
- NodeTemplate substitutableNodeTemplate);
+ Optional<String> getSubstituteServiceTemplateName(String substituteNodeTemplateId, NodeTemplate substitutableNodeTemplate);
Map<String, NodeTemplate> getSubstitutableNodeTemplates(ServiceTemplate serviceTemplate);
Optional<Map.Entry<String, NodeTemplate>> getSubstitutionMappedNodeTemplateByExposedReq(String substituteServiceTemplateFileName,
- ServiceTemplate substituteServiceTemplate,
- String requirementId);
+ ServiceTemplate substituteServiceTemplate,
+ String requirementId);
/*
match only for the input which is not null
*/
- boolean isDesiredRequirementAssignment(RequirementAssignment requirementAssignment, String capability, String node,
- String relationship);
+ boolean isDesiredRequirementAssignment(RequirementAssignment requirementAssignment, String capability, String node, String relationship);
- ToscaFlatData getFlatEntity(ToscaElementTypes elementType, String type, ServiceTemplate serviceTemplate,
- ToscaServiceModel toscaModel);
+ ToscaFlatData getFlatEntity(ToscaElementTypes elementType, String type, ServiceTemplate serviceTemplate, ToscaServiceModel toscaModel);
boolean isSubstitutableNodeTemplate(NodeTemplate nodeTemplate);
- NodeType createInitSubstitutionNodeType(ServiceTemplate substitutionServiceTemplate,
- String nodeTypeDerivedFromValue);
+ NodeType createInitSubstitutionNodeType(ServiceTemplate substitutionServiceTemplate, String nodeTypeDerivedFromValue);
- boolean isRequirementExistInNodeTemplate(NodeTemplate nodeTemplate, String requirementId,
- RequirementAssignment requirementAssignment);
+ boolean isRequirementExistInNodeTemplate(NodeTemplate nodeTemplate, String requirementId, RequirementAssignment requirementAssignment);
Map<String, PropertyDefinition> manageSubstitutionNodeTypeProperties(ServiceTemplate substitutionServiceTemplate);
Map<String, CapabilityDefinition> calculateExposedCapabilities(Map<String, CapabilityDefinition> nodeTypeCapabilitiesDefinition,
- Map<String, Map<String, RequirementAssignment>> fullFilledRequirementsDefinitionMap);
+ Map<String, Map<String, RequirementAssignment>> fullFilledRequirementsDefinitionMap);
List<Map<String, RequirementDefinition>> calculateExposedRequirements(List<Map<String, RequirementDefinition>> nodeTypeRequirementsDefinitionList,
- Map<String, RequirementAssignment> nodeTemplateRequirementsAssignment);
+ Map<String, RequirementAssignment> nodeTemplateRequirementsAssignment);
ToscaServiceModel loadToscaCsarPackage(byte[] toscaCsarPackage);
}
diff --git a/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/ToscaConstants.java b/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/ToscaConstants.java
index ea9a6cde04..509553db8d 100644
--- a/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/ToscaConstants.java
+++ b/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/ToscaConstants.java
@@ -13,11 +13,8 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
package org.openecomp.sdc.tosca.services;
-
-
public class ToscaConstants {
//TOSCA Requirement Ids
@@ -27,13 +24,10 @@ public class ToscaConstants {
public static final String LOCAL_STORAGE_REQUIREMENT_ID = "local_storage";
public static final String NETWORK_REQUIREMENT_ID = "network";
public static final String PORT_REQUIREMENT_ID = "port";
-
//TOSCA Capability Ids
public static final String PORT_MIRRORING_CAPABILITY_ID = "port_mirroring";
-
//TOSCA Annotation Ids
public static final String SOURCE_ANNOTATION_ID = "source";
-
//General
public static final String TOSCA_DEFINITIONS_VERSION = "tosca_simple_yaml_1_0_0";
public static final String MODELABLE_ENTITY_NAME_SELF = "SELF";
@@ -66,15 +60,14 @@ public class ToscaConstants {
// properties valid values
public static final String HEAT_SOURCE_TYPE = "HEAT";
public static final String CONTRAIL_SERVICE_INSTANCE_IND = "contrail_service_instance_ind";
- static final String ST_METADATA_FILE_NAME = "filename";
public static final String MANDATORY_PROPERTY_NAME = "mandatory";
public static final String HEAT_NODE_TYPE_SUFFIX = "heat.";
public static final String CAPABILITY = "capability";
public static final String REQUIREMENT = "requirement";
public static final String SERVICE_TEMPLATE_FILE_POSTFIX = "ServiceTemplate.yaml";
+ static final String ST_METADATA_FILE_NAME = "filename";
private ToscaConstants() {
//Hiding the implicit public constructor
}
-
}
diff --git a/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/ToscaFileOutputService.java b/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/ToscaFileOutputService.java
index 7ec2fffa2b..334ff6f567 100644
--- a/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/ToscaFileOutputService.java
+++ b/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/ToscaFileOutputService.java
@@ -7,9 +7,9 @@
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -17,18 +17,16 @@
* limitations under the License.
* ============LICENSE_END=========================================================
*/
-
package org.openecomp.sdc.tosca.services;
import org.openecomp.core.utilities.file.FileContentHandler;
import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
public interface ToscaFileOutputService {
- byte[] createOutputFile(ToscaServiceModel toscaServiceModel,
- FileContentHandler externalArtifacts);
- String createMetaFile(String entryDefinitionsFileName);
+ byte[] createOutputFile(ToscaServiceModel toscaServiceModel, FileContentHandler externalArtifacts);
- String getArtifactsFolderName();
+ String createMetaFile(String entryDefinitionsFileName);
+ String getArtifactsFolderName();
}
diff --git a/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/ToscaUtil.java b/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/ToscaUtil.java
index 7c8e48ac88..66230250d5 100644
--- a/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/ToscaUtil.java
+++ b/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/ToscaUtil.java
@@ -17,7 +17,6 @@
* limitations under the License.
* ============LICENSE_END=========================================================
*/
-
package org.openecomp.sdc.tosca.services;
import java.util.Collections;
@@ -26,7 +25,6 @@ import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import java.util.UUID;
-
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import org.apache.commons.collections4.MapUtils;
@@ -66,11 +64,9 @@ public class ToscaUtil {
if (metadata.get(ToscaConstants.ST_METADATA_FILE_NAME) != null) {
return metadata.get(ToscaConstants.ST_METADATA_FILE_NAME);
} else if (metadata.get(ToscaConstants.ST_METADATA_TEMPLATE_NAME) != null) {
- return metadata.get(ToscaConstants.ST_METADATA_TEMPLATE_NAME)
- + ToscaConstants.SERVICE_TEMPLATE_FILE_POSTFIX;
+ return metadata.get(ToscaConstants.ST_METADATA_TEMPLATE_NAME) + ToscaConstants.SERVICE_TEMPLATE_FILE_POSTFIX;
}
- return UUID.randomUUID().toString() + ToscaConstants.SERVICE_TEMPLATE_FILE_POSTFIX;
-
+ return UUID.randomUUID().toString() + ToscaConstants.SERVICE_TEMPLATE_FILE_POSTFIX;
}
public static String getServiceTemplateFileName(String templateName) {
@@ -79,59 +75,41 @@ public class ToscaUtil {
return getServiceTemplateFileName(metadata);
}
- public static Optional<String> getSubstitutableGroupMemberId(String heatFileName,
- ServiceTemplate serviceTemplate) {
-
- Map<String, NodeTemplate> nodeTemplates =
- DataModelUtil.getNodeTemplates(serviceTemplate);
-
+ public static Optional<String> getSubstitutableGroupMemberId(String heatFileName, ServiceTemplate serviceTemplate) {
+ Map<String, NodeTemplate> nodeTemplates = DataModelUtil.getNodeTemplates(serviceTemplate);
if (MapUtils.isEmpty(nodeTemplates)) {
return Optional.empty();
}
-
String heatFileNameWithoutExt = FileUtils.getFileWithoutExtention(heatFileName);
-
for (Map.Entry<String, NodeTemplate> nodeTemplateEntry : nodeTemplates.entrySet()) {
- String subServiceTemplateName =
- getSubstitutionServiceTemplateNameFromProperties(nodeTemplateEntry);
-
- if (Objects.nonNull(subServiceTemplateName)
- && isGroupMemberIdSubstitutable(heatFileNameWithoutExt, subServiceTemplateName)) {
+ String subServiceTemplateName = getSubstitutionServiceTemplateNameFromProperties(nodeTemplateEntry);
+ if (Objects.nonNull(subServiceTemplateName) && isGroupMemberIdSubstitutable(heatFileNameWithoutExt, subServiceTemplateName)) {
return Optional.of(nodeTemplateEntry.getKey());
}
}
-
return Optional.empty();
}
- private static boolean isGroupMemberIdSubstitutable(String heatFileNameWithoutExt,
- String subServiceTemplateName) {
+ private static boolean isGroupMemberIdSubstitutable(String heatFileNameWithoutExt, String subServiceTemplateName) {
return subServiceTemplateName.startsWith(heatFileNameWithoutExt);
}
- private static String getSubstitutionServiceTemplateNameFromProperties(
- Map.Entry<String, NodeTemplate> nodeTemplateEntry) {
+ private static String getSubstitutionServiceTemplateNameFromProperties(Map.Entry<String, NodeTemplate> nodeTemplateEntry) {
Map<String, Object> properties =
- nodeTemplateEntry.getValue().getProperties() == null ? Collections.emptyMap() :
- nodeTemplateEntry.getValue().getProperties();
-
+ nodeTemplateEntry.getValue().getProperties() == null ? Collections.emptyMap() : nodeTemplateEntry.getValue().getProperties();
Map<String, Object> serviceTemplateFilter =
- properties.containsKey(ToscaConstants.SERVICE_TEMPLATE_FILTER_PROPERTY_NAME) ?
- (Map<String, Object>) properties.get(ToscaConstants
- .SERVICE_TEMPLATE_FILTER_PROPERTY_NAME) : Collections.emptyMap();
-
+ properties.containsKey(ToscaConstants.SERVICE_TEMPLATE_FILTER_PROPERTY_NAME) ? (Map<String, Object>) properties
+ .get(ToscaConstants.SERVICE_TEMPLATE_FILTER_PROPERTY_NAME) : Collections.emptyMap();
return (String) serviceTemplateFilter.get(ToscaConstants.SUBSTITUTE_SERVICE_TEMPLATE_PROPERTY_NAME);
}
-
/**
* Add service template to map with key file name.
*
* @param serviceTemplateMap the service template map
* @param serviceTemplate the service template
*/
- public static void addServiceTemplateToMapWithKeyFileName(
- Map<String, ServiceTemplate> serviceTemplateMap, ServiceTemplate serviceTemplate) {
+ public static void addServiceTemplateToMapWithKeyFileName(Map<String, ServiceTemplate> serviceTemplateMap, ServiceTemplate serviceTemplate) {
serviceTemplateMap.put(ToscaUtil.getServiceTemplateFileName(serviceTemplate), serviceTemplate);
}
}
diff --git a/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/impl/ToscaAnalyzerServiceImpl.java b/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/impl/ToscaAnalyzerServiceImpl.java
index 3ce9badea0..c5deee4ebd 100644
--- a/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/impl/ToscaAnalyzerServiceImpl.java
+++ b/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/impl/ToscaAnalyzerServiceImpl.java
@@ -13,7 +13,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
package org.openecomp.sdc.tosca.services.impl;
import java.io.ByteArrayInputStream;
@@ -91,18 +90,58 @@ public class ToscaAnalyzerServiceImpl implements ToscaAnalyzerService {
private static final String TOSCA_META_FILE = "TOSCA-Metadata/TOSCA.meta";
private static final String ENTRY_DEFINITIONS = "Entry-Definitions";
+ private static boolean isFile(String currentEntryName) {
+ return !(currentEntryName.endsWith("\\") || currentEntryName.endsWith("/"));
+ }
+
+ private static boolean evaluateRequirementFulfillment(RequirementDefinition requirementDefinition) {
+ Object[] occurrences = requirementDefinition.getOccurrences();
+ if (occurrences == null) {
+ requirementDefinition.setOccurrences(new Object[]{1, 1});
+ return false;
+ }
+ if (occurrences[1].equals(ToscaConstants.UNBOUNDED)) {
+ return false;
+ }
+ if (occurrences[1].equals(1)) {
+ return true;
+ }
+ occurrences[1] = (Integer) occurrences[1] - 1;
+ return false;
+ }
+
+ private static boolean evaluateCapabilityFulfillment(CapabilityDefinition capabilityDefinition) {
+ Object[] occurrences = capabilityDefinition.getOccurrences();
+ if (occurrences == null) {
+ capabilityDefinition.setOccurrences(new Object[]{1, ToscaConstants.UNBOUNDED});
+ return false;
+ }
+ if (occurrences[1].equals(ToscaConstants.UNBOUNDED)) {
+ return false;
+ }
+ if (occurrences[1].equals(1)) {
+ return true;
+ }
+ occurrences[1] = (Integer) occurrences[1] - 1;
+ return false;
+ }
+
+ private static boolean isPrimitiveType(String toscaType) {
+ return (toscaType.equals(PropertyType.STRING.getDisplayName()) || toscaType.equals(PropertyType.INTEGER.getDisplayName()) || toscaType
+ .equals(PropertyType.FLOAT.getDisplayName()));
+ }
+
@Override
public List<Map<String, RequirementDefinition>> calculateExposedRequirements(
- List<Map<String, RequirementDefinition>> nodeTypeRequirementsDefinitionList,
- Map<String, RequirementAssignment> nodeTemplateRequirementsAssignment) {
-
+ List<Map<String, RequirementDefinition>> nodeTypeRequirementsDefinitionList,
+ Map<String, RequirementAssignment> nodeTemplateRequirementsAssignment) {
if (nodeTypeRequirementsDefinitionList == null) {
return Collections.emptyList();
}
for (Map.Entry<String, RequirementAssignment> entry : nodeTemplateRequirementsAssignment.entrySet()) {
if (entry.getValue().getNode() != null) {
- Optional<RequirementDefinition> requirementDefinition =
- DataModelUtil.getRequirementDefinition(nodeTypeRequirementsDefinitionList, entry.getKey());
+ Optional<RequirementDefinition> requirementDefinition = DataModelUtil
+ .getRequirementDefinition(nodeTypeRequirementsDefinitionList, entry.getKey());
RequirementDefinition cloneRequirementDefinition;
if (requirementDefinition.isPresent()) {
cloneRequirementDefinition = requirementDefinition.get().clone();
@@ -122,7 +161,6 @@ public class ToscaAnalyzerServiceImpl implements ToscaAnalyzerService {
ToscaServiceModel toscaServiceModel = new ToscaServiceModel();
ToscaExtensionYamlUtil toscaExtensionYamlUtil = new ToscaExtensionYamlUtil();
FileContentHandler artifactFiles = new FileContentHandler();
-
try (ZipInputStream inputZipStream = new ZipInputStream(new ByteArrayInputStream(toscaCsarPackage))) {
ZipEntry zipEntry;
while ((zipEntry = inputZipStream.getNextEntry()) != null) {
@@ -144,7 +182,6 @@ public class ToscaAnalyzerServiceImpl implements ToscaAnalyzerService {
if (StringUtils.isEmpty(toscaServiceModel.getEntryDefinitionServiceTemplate())) {
handleToscaCsarWithoutToscaMetadata(toscaServiceModel);
}
-
} catch (IOException | ZipSlipException exc) {
throw new SdcRuntimeException(exc.getMessage(), exc);
}
@@ -172,22 +209,16 @@ public class ToscaAnalyzerServiceImpl implements ToscaAnalyzerService {
toscaServiceModel.setEntryDefinitionServiceTemplate(entryDefinition);
}
- void loadToscaYamlFile(ToscaServiceModel toscaServiceModel, ToscaExtensionYamlUtil toscaExtensionYamlUtil,
- byte[] fileContent, String fileFullName) {
+ void loadToscaYamlFile(ToscaServiceModel toscaServiceModel, ToscaExtensionYamlUtil toscaExtensionYamlUtil, byte[] fileContent,
+ String fileFullName) {
try {
- ServiceTemplate serviceTemplate =
- toscaExtensionYamlUtil.yamlToObject(new String(fileContent), ServiceTemplate.class);
+ ServiceTemplate serviceTemplate = toscaExtensionYamlUtil.yamlToObject(new String(fileContent), ServiceTemplate.class);
toscaServiceModel.addServiceTemplate(fileFullName, serviceTemplate);
-
} catch (Exception exc) {
throw new CoreException(new InvalidToscaFile(fileFullName, exc.getMessage()).build());
}
}
- private static boolean isFile(String currentEntryName) {
- return !(currentEntryName.endsWith("\\") || currentEntryName.endsWith("/"));
- }
-
private boolean isYamlFile(String fileName) {
return fileName.endsWith("yaml") || fileName.endsWith("yml");
}
@@ -198,57 +229,33 @@ public class ToscaAnalyzerServiceImpl implements ToscaAnalyzerService {
}
private void updateMinMaxOccurencesForNodeTypeRequirement(Map.Entry<String, RequirementAssignment> entry,
- Map<String, RequirementDefinition> nodeTypeRequirementsMap) {
+ Map<String, RequirementDefinition> nodeTypeRequirementsMap) {
Object max = nodeTypeRequirementsMap.get(entry.getKey()).getOccurrences() != null
- && nodeTypeRequirementsMap.get(entry.getKey()).getOccurrences().length > 0
- ? nodeTypeRequirementsMap.get(entry.getKey()).getOccurrences()[1] : 1;
+ && nodeTypeRequirementsMap.get(entry.getKey()).getOccurrences().length > 0 ? nodeTypeRequirementsMap.get(entry.getKey())
+ .getOccurrences()[1] : 1;
Object min = nodeTypeRequirementsMap.get(entry.getKey()).getOccurrences() != null
- && nodeTypeRequirementsMap.get(entry.getKey()).getOccurrences().length > 0
- ? nodeTypeRequirementsMap.get(entry.getKey()).getOccurrences()[0] : 1;
- nodeTypeRequirementsMap.get(entry.getKey()).setOccurrences(new Object[] {min, max});
+ && nodeTypeRequirementsMap.get(entry.getKey()).getOccurrences().length > 0 ? nodeTypeRequirementsMap.get(entry.getKey())
+ .getOccurrences()[0] : 1;
+ nodeTypeRequirementsMap.get(entry.getKey()).setOccurrences(new Object[]{min, max});
}
- private void updateRequirementDefinition(
- List<Map<String, RequirementDefinition>> nodeTypeRequirementsDefinitionList,
- Map.Entry<String, RequirementAssignment> entry, RequirementDefinition cloneRequirementDefinition) {
+ private void updateRequirementDefinition(List<Map<String, RequirementDefinition>> nodeTypeRequirementsDefinitionList,
+ Map.Entry<String, RequirementAssignment> entry, RequirementDefinition cloneRequirementDefinition) {
if (!evaluateRequirementFulfillment(cloneRequirementDefinition)) {
- CommonMethods
- .mergeEntryInList(entry.getKey(), cloneRequirementDefinition, nodeTypeRequirementsDefinitionList);
+ CommonMethods.mergeEntryInList(entry.getKey(), cloneRequirementDefinition, nodeTypeRequirementsDefinitionList);
} else {
DataModelUtil.removeRequirementsDefinition(nodeTypeRequirementsDefinitionList, entry.getKey());
}
}
- private static boolean evaluateRequirementFulfillment(RequirementDefinition requirementDefinition) {
- Object[] occurrences = requirementDefinition.getOccurrences();
- if (occurrences == null) {
- requirementDefinition.setOccurrences(new Object[] {1, 1});
- return false;
- }
- if (occurrences[1].equals(ToscaConstants.UNBOUNDED)) {
- return false;
- }
-
- if (occurrences[1].equals(1)) {
- return true;
- }
- occurrences[1] = (Integer) occurrences[1] - 1;
- return false;
- }
-
@Override
- public Map<String, CapabilityDefinition> calculateExposedCapabilities(
- Map<String, CapabilityDefinition> nodeTypeCapabilitiesDefinition,
- Map<String, Map<String, RequirementAssignment>> fullFilledRequirementsDefinitionMap) {
-
+ public Map<String, CapabilityDefinition> calculateExposedCapabilities(Map<String, CapabilityDefinition> nodeTypeCapabilitiesDefinition,
+ Map<String, Map<String, RequirementAssignment>> fullFilledRequirementsDefinitionMap) {
String capabilityKey;
String capability;
String node;
- for (Map.Entry<String, Map<String, RequirementAssignment>> entry : fullFilledRequirementsDefinitionMap
- .entrySet()) {
+ for (Map.Entry<String, Map<String, RequirementAssignment>> entry : fullFilledRequirementsDefinitionMap.entrySet()) {
for (Map.Entry<String, RequirementAssignment> fullFilledEntry : entry.getValue().entrySet()) {
-
-
capability = fullFilledEntry.getValue().getCapability();
node = fullFilledEntry.getValue().getNode();
capabilityKey = capability + "_" + node;
@@ -256,12 +263,10 @@ public class ToscaAnalyzerServiceImpl implements ToscaAnalyzerService {
if (capabilityDefinition != null) {
CapabilityDefinition clonedCapabilityDefinition = capabilityDefinition.clone();
nodeTypeCapabilitiesDefinition.put(capabilityKey, capabilityDefinition.clone());
- updateNodeTypeCapabilitiesDefinition(nodeTypeCapabilitiesDefinition, capabilityKey,
- clonedCapabilityDefinition);
+ updateNodeTypeCapabilitiesDefinition(nodeTypeCapabilitiesDefinition, capabilityKey, clonedCapabilityDefinition);
}
}
}
-
Map<String, CapabilityDefinition> exposedCapabilitiesDefinition = new HashMap<>();
for (Map.Entry<String, CapabilityDefinition> entry : nodeTypeCapabilitiesDefinition.entrySet()) {
exposedCapabilitiesDefinition.put(entry.getKey(), entry.getValue());
@@ -269,8 +274,8 @@ public class ToscaAnalyzerServiceImpl implements ToscaAnalyzerService {
return exposedCapabilitiesDefinition;
}
- private void updateNodeTypeCapabilitiesDefinition(Map<String, CapabilityDefinition> nodeTypeCapabilitiesDefinition,
- String capabilityKey, CapabilityDefinition clonedCapabilityDefinition) {
+ private void updateNodeTypeCapabilitiesDefinition(Map<String, CapabilityDefinition> nodeTypeCapabilitiesDefinition, String capabilityKey,
+ CapabilityDefinition clonedCapabilityDefinition) {
if (evaluateCapabilityFulfillment(clonedCapabilityDefinition)) {
nodeTypeCapabilitiesDefinition.remove(capabilityKey);
} else {
@@ -278,40 +283,18 @@ public class ToscaAnalyzerServiceImpl implements ToscaAnalyzerService {
}
}
- private static boolean evaluateCapabilityFulfillment(CapabilityDefinition capabilityDefinition) {
-
- Object[] occurrences = capabilityDefinition.getOccurrences();
- if (occurrences == null) {
- capabilityDefinition.setOccurrences(new Object[] {1, ToscaConstants.UNBOUNDED});
- return false;
- }
- if (occurrences[1].equals(ToscaConstants.UNBOUNDED)) {
- return false;
- }
-
- if (occurrences[1].equals(1)) {
- return true;
- }
- occurrences[1] = (Integer) occurrences[1] - 1;
- return false;
- }
-
/*
node template with type equal to node type or derived from node type
*/
@Override
- public Map<String, NodeTemplate> getNodeTemplatesByType(ServiceTemplate serviceTemplate, String nodeType,
- ToscaServiceModel toscaServiceModel) {
+ public Map<String, NodeTemplate> getNodeTemplatesByType(ServiceTemplate serviceTemplate, String nodeType, ToscaServiceModel toscaServiceModel) {
Map<String, NodeTemplate> nodeTemplates = new HashMap<>();
-
- if (Objects.nonNull(serviceTemplate.getTopology_template()) && MapUtils.isNotEmpty(
- serviceTemplate.getTopology_template().getNode_templates())) {
- for (Map.Entry<String, NodeTemplate> nodeTemplateEntry : serviceTemplate.getTopology_template()
- .getNode_templates().entrySet()) {
+ if (Objects.nonNull(serviceTemplate.getTopology_template()) && MapUtils
+ .isNotEmpty(serviceTemplate.getTopology_template().getNode_templates())) {
+ for (Map.Entry<String, NodeTemplate> nodeTemplateEntry : serviceTemplate.getTopology_template().getNode_templates().entrySet()) {
if (isTypeOf(nodeTemplateEntry.getValue(), nodeType, serviceTemplate, toscaServiceModel)) {
nodeTemplates.put(nodeTemplateEntry.getKey(), nodeTemplateEntry.getValue());
}
-
}
}
return nodeTemplates;
@@ -320,38 +303,31 @@ public class ToscaAnalyzerServiceImpl implements ToscaAnalyzerService {
@Override
public Optional<NodeType> fetchNodeType(String nodeTypeKey, Collection<ServiceTemplate> serviceTemplates) {
Optional<Map<String, NodeType>> nodeTypeMap = serviceTemplates.stream().map(ServiceTemplate::getNode_types)
- .filter(nodeTypes -> Objects.nonNull(nodeTypes)
- && nodeTypes
- .containsKey(
- nodeTypeKey))
- .findFirst();
+ .filter(nodeTypes -> Objects.nonNull(nodeTypes) && nodeTypes.containsKey(nodeTypeKey)).findFirst();
return nodeTypeMap.map(stringNodeTypeMap -> stringNodeTypeMap.get(nodeTypeKey));
}
@Override
- public boolean isTypeOf(NodeTemplate nodeTemplate, String nodeType, ServiceTemplate serviceTemplate,
- ToscaServiceModel toscaServiceModel) {
+ public boolean isTypeOf(NodeTemplate nodeTemplate, String nodeType, ServiceTemplate serviceTemplate, ToscaServiceModel toscaServiceModel) {
return isTypeOf(nodeTemplate, nodeType, GET_NODE_TYPE_METHOD_NAME, serviceTemplate, toscaServiceModel);
}
@Override
- public boolean isTypeOf(InterfaceDefinitionType interfaceDefinition, String interfaceType,
- ServiceTemplate serviceTemplate, ToscaServiceModel toscaServiceModel) {
- return isTypeOf(interfaceDefinition, interfaceType, GET_INTERFACE_TYPE_METHOD_NAME, serviceTemplate,
- toscaServiceModel);
+ public boolean isTypeOf(InterfaceDefinitionType interfaceDefinition, String interfaceType, ServiceTemplate serviceTemplate,
+ ToscaServiceModel toscaServiceModel) {
+ return isTypeOf(interfaceDefinition, interfaceType, GET_INTERFACE_TYPE_METHOD_NAME, serviceTemplate, toscaServiceModel);
}
@Override
public boolean isTypeOf(DefinitionOfDataType parameterDefinition, String dataType, ServiceTemplate serviceTemplate,
- ToscaServiceModel toscaServiceModel) {
+ ToscaServiceModel toscaServiceModel) {
return isTypeOf(parameterDefinition, dataType, GET_DATA_TYPE_METHOD_NAME, serviceTemplate, toscaServiceModel);
}
@Override
- public boolean isTypeOf(CapabilityDefinition capabilityDefinition, String capabilityType,
- ServiceTemplate serviceTemplate, ToscaServiceModel toscaServiceModel) {
- return isTypeOf(capabilityDefinition, capabilityType, GET_CAPABILITY_TYPE_METHOD_NAME, serviceTemplate,
- toscaServiceModel);
+ public boolean isTypeOf(CapabilityDefinition capabilityDefinition, String capabilityType, ServiceTemplate serviceTemplate,
+ ToscaServiceModel toscaServiceModel) {
+ return isTypeOf(capabilityDefinition, capabilityType, GET_CAPABILITY_TYPE_METHOD_NAME, serviceTemplate, toscaServiceModel);
}
@Override
@@ -361,8 +337,8 @@ public class ToscaAnalyzerServiceImpl implements ToscaAnalyzerService {
if (requirementList != null) {
requirementList.stream().filter(reqMap -> reqMap.get(requirementId) != null).forEach(reqMap -> {
ToscaExtensionYamlUtil toscaExtensionYamlUtil = new ToscaExtensionYamlUtil();
- RequirementAssignment reqAssignment = toscaExtensionYamlUtil.yamlToObject(
- toscaExtensionYamlUtil.objectToYaml(reqMap.get(requirementId)), RequirementAssignment.class);
+ RequirementAssignment reqAssignment = toscaExtensionYamlUtil
+ .yamlToObject(toscaExtensionYamlUtil.objectToYaml(reqMap.get(requirementId)), RequirementAssignment.class);
requirements.add(reqAssignment);
});
}
@@ -371,53 +347,43 @@ public class ToscaAnalyzerServiceImpl implements ToscaAnalyzerService {
@Override
public Optional<NodeTemplate> getNodeTemplateById(ServiceTemplate serviceTemplate, String nodeTemplateId) {
- if ((serviceTemplate.getTopology_template() != null) && (
- serviceTemplate.getTopology_template().getNode_templates() != null) && (
- serviceTemplate.getTopology_template().getNode_templates().get(nodeTemplateId) != null)) {
+ if ((serviceTemplate.getTopology_template() != null) && (serviceTemplate.getTopology_template().getNode_templates() != null) && (
+ serviceTemplate.getTopology_template().getNode_templates().get(nodeTemplateId) != null)) {
return Optional.of(serviceTemplate.getTopology_template().getNode_templates().get(nodeTemplateId));
}
return Optional.empty();
}
@Override
- public Optional<String> getSubstituteServiceTemplateName(String substituteNodeTemplateId,
- NodeTemplate substitutableNodeTemplate) {
+ public Optional<String> getSubstituteServiceTemplateName(String substituteNodeTemplateId, NodeTemplate substitutableNodeTemplate) {
if (!isSubstitutableNodeTemplate(substitutableNodeTemplate)) {
return Optional.empty();
}
-
- if (substitutableNodeTemplate.getProperties() != null &&
- substitutableNodeTemplate.getProperties().get(ToscaConstants.SERVICE_TEMPLATE_FILTER_PROPERTY_NAME)
- != null) {
- Object serviceTemplateFilter =
- substitutableNodeTemplate.getProperties().get(ToscaConstants.SERVICE_TEMPLATE_FILTER_PROPERTY_NAME);
+ if (substitutableNodeTemplate.getProperties() != null
+ && substitutableNodeTemplate.getProperties().get(ToscaConstants.SERVICE_TEMPLATE_FILTER_PROPERTY_NAME) != null) {
+ Object serviceTemplateFilter = substitutableNodeTemplate.getProperties().get(ToscaConstants.SERVICE_TEMPLATE_FILTER_PROPERTY_NAME);
if (serviceTemplateFilter instanceof Map) {
- Object substituteServiceTemplate =
- ((Map) serviceTemplateFilter).get(ToscaConstants.SUBSTITUTE_SERVICE_TEMPLATE_PROPERTY_NAME);
+ Object substituteServiceTemplate = ((Map) serviceTemplateFilter).get(ToscaConstants.SUBSTITUTE_SERVICE_TEMPLATE_PROPERTY_NAME);
handleNoSubstituteServiceTemplate(substituteNodeTemplateId, substituteServiceTemplate);
return Optional.of(substituteServiceTemplate.toString());
}
}
- throw new CoreException(
- new ToscaInvalidSubstituteNodeTemplatePropertiesErrorBuilder(substituteNodeTemplateId).build());
+ throw new CoreException(new ToscaInvalidSubstituteNodeTemplatePropertiesErrorBuilder(substituteNodeTemplateId).build());
}
private void handleNoSubstituteServiceTemplate(String substituteNodeTemplateId, Object substituteServiceTemplate) {
if (substituteServiceTemplate == null) {
- throw new CoreException(
- new ToscaInvalidSubstituteNodeTemplatePropertiesErrorBuilder(substituteNodeTemplateId).build());
+ throw new CoreException(new ToscaInvalidSubstituteNodeTemplatePropertiesErrorBuilder(substituteNodeTemplateId).build());
}
}
@Override
public Map<String, NodeTemplate> getSubstitutableNodeTemplates(ServiceTemplate serviceTemplate) {
Map<String, NodeTemplate> substitutableNodeTemplates = new HashMap<>();
-
if (serviceTemplate == null || serviceTemplate.getTopology_template() == null
- || serviceTemplate.getTopology_template().getNode_templates() == null) {
+ || serviceTemplate.getTopology_template().getNode_templates() == null) {
return substitutableNodeTemplates;
}
-
Map<String, NodeTemplate> nodeTemplates = serviceTemplate.getTopology_template().getNode_templates();
for (Map.Entry<String, NodeTemplate> entry : nodeTemplates.entrySet()) {
String nodeTemplateId = entry.getKey();
@@ -426,24 +392,23 @@ public class ToscaAnalyzerServiceImpl implements ToscaAnalyzerService {
substitutableNodeTemplates.put(nodeTemplateId, nodeTemplate);
}
}
-
return substitutableNodeTemplates;
}
@Override
- public Optional<Map.Entry<String, NodeTemplate>> getSubstitutionMappedNodeTemplateByExposedReq(
- String substituteServiceTemplateFileName, ServiceTemplate substituteServiceTemplate, String requirementId) {
+ public Optional<Map.Entry<String, NodeTemplate>> getSubstitutionMappedNodeTemplateByExposedReq(String substituteServiceTemplateFileName,
+ ServiceTemplate substituteServiceTemplate,
+ String requirementId) {
if (isSubstitutionServiceTemplate(substituteServiceTemplateFileName, substituteServiceTemplate)) {
- Map<String, List<String>> substitutionMappingRequirements =
- substituteServiceTemplate.getTopology_template().getSubstitution_mappings().getRequirements();
+ Map<String, List<String>> substitutionMappingRequirements = substituteServiceTemplate.getTopology_template().getSubstitution_mappings()
+ .getRequirements();
if (substitutionMappingRequirements != null) {
List<String> requirementMapping = substitutionMappingRequirements.get(requirementId);
if (requirementMapping != null && !requirementMapping.isEmpty()) {
String mappedNodeTemplateId = requirementMapping.get(0);
- Optional<NodeTemplate> mappedNodeTemplate =
- getNodeTemplateById(substituteServiceTemplate, mappedNodeTemplateId);
- mappedNodeTemplate.orElseThrow(() -> new CoreException(
- new ToscaInvalidEntryNotFoundErrorBuilder("Node Template", mappedNodeTemplateId).build()));
+ Optional<NodeTemplate> mappedNodeTemplate = getNodeTemplateById(substituteServiceTemplate, mappedNodeTemplateId);
+ mappedNodeTemplate.orElseThrow(
+ () -> new CoreException(new ToscaInvalidEntryNotFoundErrorBuilder("Node Template", mappedNodeTemplateId).build()));
Map.Entry<String, NodeTemplate> mappedNodeTemplateEntry = new Map.Entry<String, NodeTemplate>() {
@Override
public String getKey() {
@@ -471,47 +436,36 @@ public class ToscaAnalyzerServiceImpl implements ToscaAnalyzerService {
match only for the input which is not null
*/
@Override
- public boolean isDesiredRequirementAssignment(RequirementAssignment requirementAssignment, String capability,
- String node, String relationship) {
+ public boolean isDesiredRequirementAssignment(RequirementAssignment requirementAssignment, String capability, String node, String relationship) {
if (isSameCapability(requirementAssignment, capability)) {
return false;
}
-
if (isSameRequirement(requirementAssignment, node)) {
return false;
}
-
if (isSameRelationship(requirementAssignment, relationship)) {
return false;
}
-
return !(capability == null && node == null && relationship == null);
-
}
private boolean isSameRelationship(RequirementAssignment requirementAssignment, String relationship) {
- return relationship != null && (requirementAssignment.getRelationship() == null || !requirementAssignment
- .getRelationship()
- .equals(relationship));
+ return relationship != null && (requirementAssignment.getRelationship() == null || !requirementAssignment.getRelationship()
+ .equals(relationship));
}
private boolean isSameRequirement(RequirementAssignment requirementAssignment, String node) {
- return node != null && (requirementAssignment.getNode() == null || !requirementAssignment.getNode()
- .equals(node));
+ return node != null && (requirementAssignment.getNode() == null || !requirementAssignment.getNode().equals(node));
}
private boolean isSameCapability(RequirementAssignment requirementAssignment, String capability) {
- return capability != null && (requirementAssignment.getCapability() == null || !requirementAssignment
- .getCapability()
- .equals(capability));
+ return capability != null && (requirementAssignment.getCapability() == null || !requirementAssignment.getCapability().equals(capability));
}
@Override
- public ToscaFlatData getFlatEntity(ToscaElementTypes elementType, String typeId, ServiceTemplate serviceTemplate,
- ToscaServiceModel toscaModel) {
+ public ToscaFlatData getFlatEntity(ToscaElementTypes elementType, String typeId, ServiceTemplate serviceTemplate, ToscaServiceModel toscaModel) {
ToscaFlatData flatData = new ToscaFlatData();
flatData.setElementType(elementType);
-
switch (elementType) {
case CAPABILITY_TYPE:
flatData.setFlatEntity(new CapabilityType());
@@ -525,87 +479,69 @@ public class ToscaAnalyzerServiceImpl implements ToscaAnalyzerService {
default:
throw new SdcRuntimeException("Entity[" + elementType + "] id[" + typeId + "] flat not supported");
}
-
- boolean isEntityFound =
- scanAnFlatEntity(elementType, typeId, flatData, serviceTemplate, toscaModel, new ArrayList<>(), 0);
+ boolean isEntityFound = scanAnFlatEntity(elementType, typeId, flatData, serviceTemplate, toscaModel, new ArrayList<>(), 0);
if (!isEntityFound) {
throw new CoreException(new ToscaElementTypeNotFoundErrorBuilder(typeId).build());
}
-
return flatData;
}
@Override
public boolean isSubstitutableNodeTemplate(NodeTemplate nodeTemplate) {
- return nodeTemplate.getDirectives() != null && nodeTemplate.getDirectives().contains(
- ToscaConstants.NODE_TEMPLATE_DIRECTIVE_SUBSTITUTABLE);
+ return nodeTemplate.getDirectives() != null && nodeTemplate.getDirectives().contains(ToscaConstants.NODE_TEMPLATE_DIRECTIVE_SUBSTITUTABLE);
}
- private <T> Optional<Boolean> isTypeExistInServiceTemplateHierarchy(String typeToMatch, String typeToSearch,
- String getTypesMethodName, ServiceTemplate serviceTemplate, ToscaServiceModel toscaServiceModel,
- Set<String> analyzedImportFiles)
- throws NoSuchMethodException, InvocationTargetException, IllegalAccessException {
- Map<String, T> searchableTypes =
- (Map<String, T>) serviceTemplate.getClass().getMethod(getTypesMethodName).invoke(serviceTemplate);
-
+ private <T> Optional<Boolean> isTypeExistInServiceTemplateHierarchy(String typeToMatch, String typeToSearch, String getTypesMethodName,
+ ServiceTemplate serviceTemplate, ToscaServiceModel toscaServiceModel,
+ Set<String> analyzedImportFiles)
+ throws NoSuchMethodException, InvocationTargetException, IllegalAccessException {
+ Map<String, T> searchableTypes = (Map<String, T>) serviceTemplate.getClass().getMethod(getTypesMethodName).invoke(serviceTemplate);
if (!MapUtils.isEmpty(searchableTypes)) {
T typeObject = searchableTypes.get(typeToSearch);
if (Objects.nonNull(typeObject)) {
- String derivedFromTypeVal =
- (String) typeObject.getClass().getMethod(GET_DERIVED_FROM_METHOD_NAME).invoke(typeObject);
+ String derivedFromTypeVal = (String) typeObject.getClass().getMethod(GET_DERIVED_FROM_METHOD_NAME).invoke(typeObject);
if (Objects.equals(derivedFromTypeVal, typeToMatch)) {
return Optional.of(true);
} else if (Objects.isNull(derivedFromTypeVal) || isTypeIsToscaRoot(derivedFromTypeVal)) {
return Optional.of(false);
} else {
- return isTypeExistInServiceTemplateHierarchy(typeToMatch, derivedFromTypeVal, getTypesMethodName,
- serviceTemplate, toscaServiceModel, null);
+ return isTypeExistInServiceTemplateHierarchy(typeToMatch, derivedFromTypeVal, getTypesMethodName, serviceTemplate,
+ toscaServiceModel, null);
}
} else {
- return isTypeExistInImports(typeToMatch, typeToSearch, getTypesMethodName, serviceTemplate,
- toscaServiceModel, analyzedImportFiles);
+ return isTypeExistInImports(typeToMatch, typeToSearch, getTypesMethodName, serviceTemplate, toscaServiceModel, analyzedImportFiles);
}
}
- return isTypeExistInImports(typeToMatch, typeToSearch, getTypesMethodName, serviceTemplate, toscaServiceModel,
- analyzedImportFiles);
+ return isTypeExistInImports(typeToMatch, typeToSearch, getTypesMethodName, serviceTemplate, toscaServiceModel, analyzedImportFiles);
}
private Optional<Boolean> isTypeExistInImports(String typeToMatch, String typeToSearch, String getTypesMethodName,
- ServiceTemplate serviceTemplate, ToscaServiceModel toscaServiceModel, Set<String> filesScanned)
- throws NoSuchMethodException, IllegalAccessException, InvocationTargetException {
+ ServiceTemplate serviceTemplate, ToscaServiceModel toscaServiceModel, Set<String> filesScanned)
+ throws NoSuchMethodException, IllegalAccessException, InvocationTargetException {
List<Map<String, Import>> imports = serviceTemplate.getImports();
if (CollectionUtils.isEmpty(imports)) {
return Optional.empty();
}
-
Set<String> createdFilesScanned = createFilesScannedSet(filesScanned);
-
for (Map<String, Import> map : imports) {
ToscaExtensionYamlUtil toscaExtensionYamlUtil = new ToscaExtensionYamlUtil();
- Import anImport = toscaExtensionYamlUtil
- .yamlToObject(toscaExtensionYamlUtil.objectToYaml(map.values().iterator().next()),
- Import.class);
+ Import anImport = toscaExtensionYamlUtil.yamlToObject(toscaExtensionYamlUtil.objectToYaml(map.values().iterator().next()), Import.class);
handleImportWithNoFileEntry(anImport);
String importFile = anImport.getFile();
- ServiceTemplate template = toscaServiceModel.getServiceTemplates()
- .get(fetchFullFileNameForImport(importFile,
- serviceTemplate.getMetadata() == null ? null :
- serviceTemplate.getMetadata().get("filename"),
- serviceTemplate, toscaServiceModel));
- if (Objects.isNull(template) || createdFilesScanned
- .contains(ToscaUtil.getServiceTemplateFileName(template))) {
+ ServiceTemplate template = toscaServiceModel.getServiceTemplates().get(
+ fetchFullFileNameForImport(importFile, serviceTemplate.getMetadata() == null ? null : serviceTemplate.getMetadata().get("filename"),
+ serviceTemplate, toscaServiceModel));
+ if (Objects.isNull(template) || createdFilesScanned.contains(ToscaUtil.getServiceTemplateFileName(template))) {
continue;
} else {
createdFilesScanned.add(ToscaUtil.getServiceTemplateFileName(template));
}
- Optional<Boolean> typeExistInServiceTemplateHierarchy =
- isTypeExistInServiceTemplateHierarchy(typeToMatch, typeToSearch, getTypesMethodName, template,
- toscaServiceModel, createdFilesScanned);
+ Optional<Boolean> typeExistInServiceTemplateHierarchy = isTypeExistInServiceTemplateHierarchy(typeToMatch, typeToSearch,
+ getTypesMethodName, template, toscaServiceModel, createdFilesScanned);
if (typeExistInServiceTemplateHierarchy.isPresent() && (typeExistInServiceTemplateHierarchy.get())) {
createdFilesScanned.clear();
return Optional.of(true);
}
-
}
return Optional.of(false);
}
@@ -628,29 +564,21 @@ public class ToscaAnalyzerServiceImpl implements ToscaAnalyzerService {
return (type.contains(TOSCA_DOT) && type.contains(DOT_ROOT));
}
- private boolean isSubstitutionServiceTemplate(String substituteServiceTemplateFileName,
- ServiceTemplate substituteServiceTemplate) {
+ private boolean isSubstitutionServiceTemplate(String substituteServiceTemplateFileName, ServiceTemplate substituteServiceTemplate) {
if (substituteServiceTemplate != null && substituteServiceTemplate.getTopology_template() != null
- && substituteServiceTemplate.getTopology_template().getSubstitution_mappings() != null) {
+ && substituteServiceTemplate.getTopology_template().getSubstitution_mappings() != null) {
if (substituteServiceTemplate.getTopology_template().getSubstitution_mappings().getNode_type() == null) {
- throw new CoreException(
- new ToscaInvalidSubstitutionServiceTemplateErrorBuilder(substituteServiceTemplateFileName)
- .build());
+ throw new CoreException(new ToscaInvalidSubstitutionServiceTemplateErrorBuilder(substituteServiceTemplateFileName).build());
}
return true;
}
return false;
-
}
- private boolean scanAnFlatEntity(ToscaElementTypes elementType, String typeId, ToscaFlatData flatData,
- ServiceTemplate serviceTemplate, ToscaServiceModel toscaModel, List<String> filesScanned,
- int rootScanStartInx) {
-
-
- boolean entityFound =
- enrichEntityFromCurrentServiceTemplate(elementType, typeId, flatData, serviceTemplate, toscaModel,
- filesScanned, rootScanStartInx);
+ private boolean scanAnFlatEntity(ToscaElementTypes elementType, String typeId, ToscaFlatData flatData, ServiceTemplate serviceTemplate,
+ ToscaServiceModel toscaModel, List<String> filesScanned, int rootScanStartInx) {
+ boolean entityFound = enrichEntityFromCurrentServiceTemplate(elementType, typeId, flatData, serviceTemplate, toscaModel, filesScanned,
+ rootScanStartInx);
if (!entityFound) {
List<Map<String, Import>> imports = serviceTemplate.getImports();
if (CollectionUtils.isEmpty(imports)) {
@@ -661,25 +589,21 @@ public class ToscaAnalyzerServiceImpl implements ToscaAnalyzerService {
if (found) {
return true;
}
- found = isFlatEntity(importMap, flatData, serviceTemplate, filesScanned, toscaModel, elementType,
- typeId);
+ found = isFlatEntity(importMap, flatData, serviceTemplate, filesScanned, toscaModel, elementType, typeId);
}
return found;
}
return true;
}
- private boolean isFlatEntity(Map<String, Import> importMap, ToscaFlatData flatData, ServiceTemplate serviceTemplate,
- List<String> filesScanned, ToscaServiceModel toscaModel, ToscaElementTypes elementType, String typeId) {
+ private boolean isFlatEntity(Map<String, Import> importMap, ToscaFlatData flatData, ServiceTemplate serviceTemplate, List<String> filesScanned,
+ ToscaServiceModel toscaModel, ToscaElementTypes elementType, String typeId) {
boolean found = false;
ToscaExtensionYamlUtil toscaExtensionYamlUtil = new ToscaExtensionYamlUtil();
for (Object importObject : importMap.values()) {
- Import importServiceTemplate = toscaExtensionYamlUtil
- .yamlToObject(toscaExtensionYamlUtil.objectToYaml(importObject),
- Import.class);
+ Import importServiceTemplate = toscaExtensionYamlUtil.yamlToObject(toscaExtensionYamlUtil.objectToYaml(importObject), Import.class);
String fileName = fetchFullFileNameForImport(importServiceTemplate.getFile(),
- serviceTemplate.getMetadata() == null ? null : serviceTemplate.getMetadata().get("filename"),
- serviceTemplate, toscaModel);
+ serviceTemplate.getMetadata() == null ? null : serviceTemplate.getMetadata().get("filename"), serviceTemplate, toscaModel);
if (filesScanned.contains(fileName)) {
return false;
} else {
@@ -689,28 +613,24 @@ public class ToscaAnalyzerServiceImpl implements ToscaAnalyzerService {
if (Objects.isNull(template)) {
throw new CoreException(new ToscaFileNotFoundErrorBuilder(fileName).build());
}
- found = scanAnFlatEntity(elementType, typeId, flatData, template, toscaModel, filesScanned,
- filesScanned.size());
+ found = scanAnFlatEntity(elementType, typeId, flatData, template, toscaModel, filesScanned, filesScanned.size());
}
return found;
}
- String fetchFullFileNameForImport(String importServiceTemplateFile, String currentMetadatafileName,
- ServiceTemplate serviceTemplate, ToscaServiceModel toscaServiceModel) {
- Optional<Map.Entry<String, ServiceTemplate>> serviceTemplateEntry =
- toscaServiceModel.getServiceTemplates().entrySet().stream()
- .filter(entry -> entry.getValue() == serviceTemplate).findFirst();
+ String fetchFullFileNameForImport(String importServiceTemplateFile, String currentMetadatafileName, ServiceTemplate serviceTemplate,
+ ToscaServiceModel toscaServiceModel) {
+ Optional<Map.Entry<String, ServiceTemplate>> serviceTemplateEntry = toscaServiceModel.getServiceTemplates().entrySet().stream()
+ .filter(entry -> entry.getValue() == serviceTemplate).findFirst();
if (!serviceTemplateEntry.isPresent()) {
if (importServiceTemplateFile.contains("../")) {
return importServiceTemplateFile.replace("../", "");
} else if (currentMetadatafileName != null && currentMetadatafileName.indexOf('/') != -1) {
- return currentMetadatafileName.substring(0, currentMetadatafileName.indexOf('/')) + "/"
- + importServiceTemplateFile;
+ return currentMetadatafileName.substring(0, currentMetadatafileName.indexOf('/')) + "/" + importServiceTemplateFile;
} else {
return importServiceTemplateFile;
}
}
-
Path currentPath = Paths.get(serviceTemplateEntry.get().getKey()).getParent();
if (currentPath == null) {
currentPath = Paths.get("");
@@ -718,52 +638,43 @@ public class ToscaAnalyzerServiceImpl implements ToscaAnalyzerService {
return currentPath.resolve(importServiceTemplateFile).normalize().toString().replaceAll("\\\\", "/");
}
- private boolean enrichEntityFromCurrentServiceTemplate(ToscaElementTypes elementType, String typeId,
- ToscaFlatData flatData, ServiceTemplate serviceTemplate, ToscaServiceModel toscaModel,
- List<String> filesScanned, int rootScanStartInx) {
+ private boolean enrichEntityFromCurrentServiceTemplate(ToscaElementTypes elementType, String typeId, ToscaFlatData flatData,
+ ServiceTemplate serviceTemplate, ToscaServiceModel toscaModel, List<String> filesScanned,
+ int rootScanStartInx) {
switch (elementType) {
case CAPABILITY_TYPE:
- if (enrichCapabilityType(elementType, typeId, flatData, serviceTemplate, toscaModel, filesScanned,
- rootScanStartInx)) {
+ if (enrichCapabilityType(elementType, typeId, flatData, serviceTemplate, toscaModel, filesScanned, rootScanStartInx)) {
return false;
}
break;
case NODE_TYPE:
- if (enrichNodeTypeInfo(elementType, typeId, flatData, serviceTemplate, toscaModel, filesScanned,
- rootScanStartInx)) {
+ if (enrichNodeTypeInfo(elementType, typeId, flatData, serviceTemplate, toscaModel, filesScanned, rootScanStartInx)) {
return false;
}
break;
case DATA_TYPE:
- if (enrichDataTypeInfo(elementType, typeId, flatData, serviceTemplate, toscaModel, filesScanned,
- rootScanStartInx)) {
+ if (enrichDataTypeInfo(elementType, typeId, flatData, serviceTemplate, toscaModel, filesScanned, rootScanStartInx)) {
return false;
}
break;
default:
throw new SdcRuntimeException("Entity[" + elementType + "] id[" + typeId + "] flat not supported");
}
-
return true;
-
-
}
- private boolean enrichNodeTypeInfo(ToscaElementTypes elementType, String typeId, ToscaFlatData flatData,
- ServiceTemplate serviceTemplate, ToscaServiceModel toscaModel, List<String> filesScanned,
- int rootScanStartInx) {
+ private boolean enrichNodeTypeInfo(ToscaElementTypes elementType, String typeId, ToscaFlatData flatData, ServiceTemplate serviceTemplate,
+ ToscaServiceModel toscaModel, List<String> filesScanned, int rootScanStartInx) {
String derivedFrom;
if (serviceTemplate.getNode_types() != null && serviceTemplate.getNode_types().containsKey(typeId)) {
-
filesScanned.clear();
flatData.addInheritanceHierarchyType(typeId);
NodeType targetNodeType = (NodeType) flatData.getFlatEntity();
NodeType sourceNodeType = serviceTemplate.getNode_types().get(typeId);
derivedFrom = sourceNodeType.getDerived_from();
if (derivedFrom != null) {
- boolean isEntityFound =
- scanAnFlatEntity(elementType, derivedFrom, flatData, serviceTemplate, toscaModel, filesScanned,
- rootScanStartInx);
+ boolean isEntityFound = scanAnFlatEntity(elementType, derivedFrom, flatData, serviceTemplate, toscaModel, filesScanned,
+ rootScanStartInx);
if (!isEntityFound) {
throw new CoreException(new ToscaElementTypeNotFoundErrorBuilder(typeId).build());
}
@@ -775,21 +686,18 @@ public class ToscaAnalyzerServiceImpl implements ToscaAnalyzerService {
return false;
}
- private boolean enrichDataTypeInfo(ToscaElementTypes elementType, String typeId, ToscaFlatData flatData,
- ServiceTemplate serviceTemplate, ToscaServiceModel toscaModel, List<String> filesScanned,
- int rootScanStartInx) {
+ private boolean enrichDataTypeInfo(ToscaElementTypes elementType, String typeId, ToscaFlatData flatData, ServiceTemplate serviceTemplate,
+ ToscaServiceModel toscaModel, List<String> filesScanned, int rootScanStartInx) {
String derivedFrom;
if (serviceTemplate.getData_types() != null && serviceTemplate.getData_types().containsKey(typeId)) {
-
filesScanned.clear();
flatData.addInheritanceHierarchyType(typeId);
DataType targetDataType = (DataType) flatData.getFlatEntity();
DataType sourceDataType = serviceTemplate.getData_types().get(typeId);
derivedFrom = sourceDataType.getDerived_from();
if (derivedFrom != null && !isPrimitiveType(derivedFrom)) {
- boolean isEntityFound =
- scanAnFlatEntity(elementType, derivedFrom, flatData, serviceTemplate, toscaModel, filesScanned,
- rootScanStartInx);
+ boolean isEntityFound = scanAnFlatEntity(elementType, derivedFrom, flatData, serviceTemplate, toscaModel, filesScanned,
+ rootScanStartInx);
if (!isEntityFound) {
throw new CoreException(new ToscaElementTypeNotFoundErrorBuilder(typeId).build());
}
@@ -801,28 +709,18 @@ public class ToscaAnalyzerServiceImpl implements ToscaAnalyzerService {
return false;
}
- private static boolean isPrimitiveType(String toscaType) {
- return (toscaType.equals(PropertyType.STRING.getDisplayName()) || toscaType.equals(PropertyType.INTEGER
- .getDisplayName())
- || toscaType.equals(PropertyType.FLOAT.getDisplayName()));
- }
-
- private boolean enrichCapabilityType(ToscaElementTypes elementType, String typeId, ToscaFlatData flatData,
- ServiceTemplate serviceTemplate, ToscaServiceModel toscaModel, List<String> filesScanned,
- int rootScanStartInx) {
+ private boolean enrichCapabilityType(ToscaElementTypes elementType, String typeId, ToscaFlatData flatData, ServiceTemplate serviceTemplate,
+ ToscaServiceModel toscaModel, List<String> filesScanned, int rootScanStartInx) {
String derivedFrom;
- if (serviceTemplate.getCapability_types() != null && serviceTemplate.getCapability_types()
- .containsKey(typeId)) {
-
+ if (serviceTemplate.getCapability_types() != null && serviceTemplate.getCapability_types().containsKey(typeId)) {
filesScanned.clear();
flatData.addInheritanceHierarchyType(typeId);
CapabilityType targetCapabilityType = (CapabilityType) flatData.getFlatEntity();
CapabilityType sourceCapabilityType = serviceTemplate.getCapability_types().get(typeId);
derivedFrom = sourceCapabilityType.getDerived_from();
if (derivedFrom != null) {
- boolean isEntityFound =
- scanAnFlatEntity(elementType, derivedFrom, flatData, serviceTemplate, toscaModel, filesScanned,
- rootScanStartInx);
+ boolean isEntityFound = scanAnFlatEntity(elementType, derivedFrom, flatData, serviceTemplate, toscaModel, filesScanned,
+ rootScanStartInx);
if (!isEntityFound) {
throw new CoreException(new ToscaElementTypeNotFoundErrorBuilder(typeId).build());
}
@@ -838,18 +736,12 @@ public class ToscaAnalyzerServiceImpl implements ToscaAnalyzerService {
targetNodeType.setDerived_from(sourceNodeType.getDerived_from());
targetNodeType.setDescription(sourceNodeType.getDescription());
targetNodeType.setVersion(sourceNodeType.getVersion());
- targetNodeType
- .setProperties(CommonMethods.mergeMaps(targetNodeType.getProperties(), sourceNodeType.getProperties()));
+ targetNodeType.setProperties(CommonMethods.mergeMaps(targetNodeType.getProperties(), sourceNodeType.getProperties()));
combineNodeTypeInterfaceInfo(sourceNodeType, targetNodeType);
- targetNodeType
- .setArtifacts(CommonMethods.mergeMaps(targetNodeType.getArtifacts(), sourceNodeType.getArtifacts()));
- targetNodeType
- .setAttributes(CommonMethods.mergeMaps(targetNodeType.getAttributes(), sourceNodeType.getAttributes()));
- targetNodeType.setCapabilities(
- CommonMethods.mergeMaps(targetNodeType.getCapabilities(), sourceNodeType.getCapabilities()));
- targetNodeType.setRequirements(
- CommonMethods.mergeListsOfMap(targetNodeType.getRequirements(), sourceNodeType.getRequirements()));
-
+ targetNodeType.setArtifacts(CommonMethods.mergeMaps(targetNodeType.getArtifacts(), sourceNodeType.getArtifacts()));
+ targetNodeType.setAttributes(CommonMethods.mergeMaps(targetNodeType.getAttributes(), sourceNodeType.getAttributes()));
+ targetNodeType.setCapabilities(CommonMethods.mergeMaps(targetNodeType.getCapabilities(), sourceNodeType.getCapabilities()));
+ targetNodeType.setRequirements(CommonMethods.mergeListsOfMap(targetNodeType.getRequirements(), sourceNodeType.getRequirements()));
}
private void combineNodeTypeInterfaceInfo(NodeType sourceNodeType, NodeType targetNodeType) {
@@ -868,22 +760,19 @@ public class ToscaAnalyzerServiceImpl implements ToscaAnalyzerService {
Map<String, Object> combineInterfaces = new HashMap<>();
for (Map.Entry<String, Object> sourceInterfaceDefEntry : sourceNodeType.getInterfaces().entrySet()) {
String interfaceName = sourceInterfaceDefEntry.getKey();
- if (!MapUtils.isEmpty(targetNodeType.getInterfaces()) && targetNodeType.getInterfaces()
- .containsKey(interfaceName)) {
- combineInterfaces.put(interfaceName, combineInterfaceDefinition(sourceInterfaceDefEntry.getValue(),
- targetNodeType.getInterfaces().get(interfaceName)));
+ if (!MapUtils.isEmpty(targetNodeType.getInterfaces()) && targetNodeType.getInterfaces().containsKey(interfaceName)) {
+ combineInterfaces.put(interfaceName,
+ combineInterfaceDefinition(sourceInterfaceDefEntry.getValue(), targetNodeType.getInterfaces().get(interfaceName)));
} else {
combineInterfaces.put(sourceInterfaceDefEntry.getKey(), sourceInterfaceDefEntry.getValue());
}
}
-
for (Map.Entry<String, Object> targetInterfaceDefEntry : targetNodeType.getInterfaces().entrySet()) {
String interfaceName = targetInterfaceDefEntry.getKey();
if (!sourceNodeType.getInterfaces().containsKey(interfaceName)) {
combineInterfaces.put(targetInterfaceDefEntry.getKey(), targetInterfaceDefEntry.getValue());
}
}
-
return Optional.of(combineInterfaces);
}
@@ -891,16 +780,13 @@ public class ToscaAnalyzerServiceImpl implements ToscaAnalyzerService {
if ((MapUtils.isEmpty(sourceNodeType.getInterfaces()) && MapUtils.isEmpty(targetNodeType.getInterfaces()))) {
return Optional.empty();
}
-
if (MapUtils.isEmpty(sourceNodeType.getInterfaces()) && !MapUtils.isEmpty(targetNodeType.getInterfaces())) {
return Optional.of(targetNodeType.getInterfaces());
}
-
if (!MapUtils.isEmpty(sourceNodeType.getInterfaces()) && MapUtils.isEmpty(targetNodeType.getInterfaces())) {
return Optional.of(sourceNodeType.getInterfaces());
}
return Optional.empty();
-
}
private Object combineInterfaceDefinition(Object sourceInterfaceDefType, Object targetInterfaceDefType) {
@@ -909,9 +795,7 @@ public class ToscaAnalyzerServiceImpl implements ToscaAnalyzerService {
InterfaceDefinitionType combineInterface = new InterfaceDefinitionType();
combineInterface.setType(sourceInterface.getType());
combineInterface.setInputs(CommonMethods.mergeMaps(targetInterface.getInputs(), sourceInterface.getInputs()));
- combineInterface.setOperations(
- CommonMethods.mergeMaps(targetInterface.getOperations(), sourceInterface.getOperations()));
-
+ combineInterface.setOperations(CommonMethods.mergeMaps(targetInterface.getOperations(), sourceInterface.getOperations()));
Optional<Object> interfaceDefObject = combineInterface.convertInterfaceDefinitionTypeToToscaObj();
if (!interfaceDefObject.isPresent()) {
throw new SdcRuntimeException("Illegal Statement");
@@ -923,22 +807,15 @@ public class ToscaAnalyzerServiceImpl implements ToscaAnalyzerService {
targetDataType.setDerived_from(sourceDataType.getDerived_from());
targetDataType.setDescription(sourceDataType.getDescription());
targetDataType.setVersion(sourceDataType.getVersion());
- targetDataType
- .setProperties(CommonMethods.mergeMaps(targetDataType.getProperties(), sourceDataType.getProperties()));
- targetDataType.setConstraints(
- CommonMethods.mergeLists(targetDataType.getConstraints(), sourceDataType.getConstraints()));
+ targetDataType.setProperties(CommonMethods.mergeMaps(targetDataType.getProperties(), sourceDataType.getProperties()));
+ targetDataType.setConstraints(CommonMethods.mergeLists(targetDataType.getConstraints(), sourceDataType.getConstraints()));
}
private void combineCapabilityTypeInfo(CapabilityType sourceCapabilityType, CapabilityType targetCapabilityType) {
-
- targetCapabilityType.setAttributes(
- CommonMethods.mergeMaps(targetCapabilityType.getAttributes(), sourceCapabilityType.getAttributes()));
- targetCapabilityType.setProperties(
- CommonMethods.mergeMaps(targetCapabilityType.getProperties(), sourceCapabilityType.getProperties()));
- targetCapabilityType.setValid_source_types(CommonMethods
- .mergeLists(targetCapabilityType.getValid_source_types(),
- sourceCapabilityType.getValid_source_types()));
-
+ targetCapabilityType.setAttributes(CommonMethods.mergeMaps(targetCapabilityType.getAttributes(), sourceCapabilityType.getAttributes()));
+ targetCapabilityType.setProperties(CommonMethods.mergeMaps(targetCapabilityType.getProperties(), sourceCapabilityType.getProperties()));
+ targetCapabilityType.setValid_source_types(
+ CommonMethods.mergeLists(targetCapabilityType.getValid_source_types(), sourceCapabilityType.getValid_source_types()));
if (StringUtils.isNotEmpty(sourceCapabilityType.getDerived_from())) {
targetCapabilityType.setDerived_from(sourceCapabilityType.getDerived_from());
}
@@ -948,11 +825,8 @@ public class ToscaAnalyzerServiceImpl implements ToscaAnalyzerService {
if (StringUtils.isNotEmpty(sourceCapabilityType.getVersion())) {
targetCapabilityType.setVersion(sourceCapabilityType.getVersion());
}
-
-
}
-
/*
* Create node type according to the input substitution service template, while the substitution
* service template can be mappted to this node type, for substitution mapping.
@@ -962,8 +836,7 @@ public class ToscaAnalyzerServiceImpl implements ToscaAnalyzerService {
* @return the node type
*/
@Override
- public NodeType createInitSubstitutionNodeType(ServiceTemplate substitutionServiceTemplate,
- String nodeTypeDerivedFromValue) {
+ public NodeType createInitSubstitutionNodeType(ServiceTemplate substitutionServiceTemplate, String nodeTypeDerivedFromValue) {
NodeType substitutionNodeType = new NodeType();
substitutionNodeType.setDerived_from(nodeTypeDerivedFromValue);
substitutionNodeType.setDescription(substitutionServiceTemplate.getDescription());
@@ -973,21 +846,18 @@ public class ToscaAnalyzerServiceImpl implements ToscaAnalyzerService {
}
@Override
- public Map<String, PropertyDefinition> manageSubstitutionNodeTypeProperties(
- ServiceTemplate substitutionServiceTemplate) {
+ public Map<String, PropertyDefinition> manageSubstitutionNodeTypeProperties(ServiceTemplate substitutionServiceTemplate) {
Map<String, PropertyDefinition> substitutionNodeTypeProperties = new HashMap<>();
Map<String, ParameterDefinition> properties = substitutionServiceTemplate.getTopology_template().getInputs();
if (properties == null) {
return null;
}
-
PropertyDefinition propertyDefinition;
String toscaPropertyName;
for (Map.Entry<String, ParameterDefinition> entry : properties.entrySet()) {
toscaPropertyName = entry.getKey();
propertyDefinition = new PropertyDefinition();
- ParameterDefinition parameterDefinition =
- substitutionServiceTemplate.getTopology_template().getInputs().get(toscaPropertyName);
+ ParameterDefinition parameterDefinition = substitutionServiceTemplate.getTopology_template().getInputs().get(toscaPropertyName);
propertyDefinition.setType(parameterDefinition.getType());
propertyDefinition.setDescription(parameterDefinition.getDescription());
propertyDefinition.set_default(parameterDefinition.get_default());
@@ -1009,9 +879,7 @@ public class ToscaAnalyzerServiceImpl implements ToscaAnalyzerService {
return substitutionNodeTypeProperties;
}
-
- private Map<String, AttributeDefinition> manageSubstitutionNodeTypeAttributes(
- ServiceTemplate substitutionServiceTemplate) {
+ private Map<String, AttributeDefinition> manageSubstitutionNodeTypeAttributes(ServiceTemplate substitutionServiceTemplate) {
Map<String, AttributeDefinition> substitutionNodeTypeAttributes = new HashMap<>();
Map<String, ParameterDefinition> attributes = substitutionServiceTemplate.getTopology_template().getOutputs();
if (attributes == null) {
@@ -1019,12 +887,10 @@ public class ToscaAnalyzerServiceImpl implements ToscaAnalyzerService {
}
AttributeDefinition attributeDefinition;
String toscaAttributeName;
-
for (Map.Entry<String, ParameterDefinition> entry : attributes.entrySet()) {
attributeDefinition = new AttributeDefinition();
toscaAttributeName = entry.getKey();
- ParameterDefinition parameterDefinition =
- substitutionServiceTemplate.getTopology_template().getOutputs().get(toscaAttributeName);
+ ParameterDefinition parameterDefinition = substitutionServiceTemplate.getTopology_template().getOutputs().get(toscaAttributeName);
if (parameterDefinition.getType() != null && !parameterDefinition.getType().isEmpty()) {
attributeDefinition.setType(parameterDefinition.getType());
} else {
@@ -1050,36 +916,29 @@ public class ToscaAnalyzerServiceImpl implements ToscaAnalyzerService {
* @return true if the requirement already exists and false otherwise
*/
@Override
- public boolean isRequirementExistInNodeTemplate(NodeTemplate nodeTemplate, String requirementId,
- RequirementAssignment requirementAssignment) {
+ public boolean isRequirementExistInNodeTemplate(NodeTemplate nodeTemplate, String requirementId, RequirementAssignment requirementAssignment) {
List<Map<String, RequirementAssignment>> nodeTemplateRequirements = nodeTemplate.getRequirements();
return nodeTemplateRequirements != null && nodeTemplateRequirements.stream().anyMatch(
- requirement -> requirement.containsKey(requirementId) && DataModelUtil.compareRequirementAssignment(
- requirementAssignment, requirement.get(requirementId)));
+ requirement -> requirement.containsKey(requirementId) && DataModelUtil
+ .compareRequirementAssignment(requirementAssignment, requirement.get(requirementId)));
}
private <T> boolean isTypeOf(T object, String type, String getTypesMethodName, ServiceTemplate serviceTemplate,
- ToscaServiceModel toscaServiceModel) {
+ ToscaServiceModel toscaServiceModel) {
if (object == null) {
return false;
}
-
try {
String objectType = (String) object.getClass().getMethod(GET_TYPE_METHOD_NAME).invoke(object);
if (Objects.equals(objectType, type)) {
return true;
}
-
- Optional<Boolean> typeExistInServiceTemplateHierarchy =
- isTypeExistInServiceTemplateHierarchy(type, objectType, getTypesMethodName, serviceTemplate,
- toscaServiceModel, null);
- return typeExistInServiceTemplateHierarchy.orElseThrow(
- () -> new CoreException(new ToscaElementTypeNotFoundErrorBuilder(objectType).build()));
-
+ Optional<Boolean> typeExistInServiceTemplateHierarchy = isTypeExistInServiceTemplateHierarchy(type, objectType, getTypesMethodName,
+ serviceTemplate, toscaServiceModel, null);
+ return typeExistInServiceTemplateHierarchy
+ .orElseThrow(() -> new CoreException(new ToscaElementTypeNotFoundErrorBuilder(objectType).build()));
} catch (IllegalAccessException | InvocationTargetException | NoSuchMethodException e) {
throw new SdcRuntimeException(e);
}
}
}
-
-
diff --git a/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/impl/ToscaFileOutputServiceCsarImpl.java b/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/impl/ToscaFileOutputServiceCsarImpl.java
index 7c0d1271fb..90047aa6df 100644
--- a/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/impl/ToscaFileOutputServiceCsarImpl.java
+++ b/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/impl/ToscaFileOutputServiceCsarImpl.java
@@ -13,7 +13,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
package org.openecomp.sdc.tosca.services.impl;
import static org.openecomp.sdc.tosca.csar.ToscaMetaEntry.CREATED_BY_ENTRY;
@@ -21,6 +20,15 @@ import static org.openecomp.sdc.tosca.csar.ToscaMetaEntry.CSAR_VERSION_ENTRY;
import static org.openecomp.sdc.tosca.csar.ToscaMetaEntry.ENTRY_DEFINITIONS;
import static org.openecomp.sdc.tosca.csar.ToscaMetaEntry.TOSCA_META_FILE_VERSION_ENTRY;
+import java.io.BufferedOutputStream;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Map;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipOutputStream;
import org.apache.commons.io.IOUtils;
import org.onap.sdc.tosca.datatypes.model.ServiceTemplate;
import org.openecomp.core.utilities.file.FileContentHandler;
@@ -33,135 +41,108 @@ import org.openecomp.sdc.tosca.exceptions.CsarCreationErrorBuilder;
import org.openecomp.sdc.tosca.exceptions.CsarMissingEntryPointErrorBuilder;
import org.openecomp.sdc.tosca.services.ToscaFileOutputService;
-import java.io.BufferedOutputStream;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-
-import java.util.Map;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipOutputStream;
-
-
public class ToscaFileOutputServiceCsarImpl implements ToscaFileOutputService {
- static final String EXTERNAL_ARTIFACTS_FOLDER_NAME = "Artifacts";
- private static final String DEFINITIONS_FOLDER_NAME = "Definitions";
- private static final String ARTIFACTS_FOLDER_NAME = "Artifacts";
- //todo currently duplicated, to be changed when external artifacts are separated from internal
- private static final String TOSCA_META_FOLDER_NAME = "TOSCA-Metadata";
- private static final String TOSCA_META_FILE_VERSION_VALUE = "1.0";
- private static final String TOSCA_META_FILE_NAME = "TOSCA.meta";
- private static final String CSAR_VERSION_VALUE = "1.1";
- private static final String CREATED_BY_VALUE = "ASDC Onboarding portal";
- private static final String META_FILE_DELIMITER = ":";
- private static final String SPACE = " ";
- private static final String FILE_SEPARATOR = File.separator;
- private static final Logger logger = LoggerFactory.getLogger(ToscaFileOutputServiceCsarImpl.class);
-
- @Override
- public byte[] createOutputFile(ToscaServiceModel toscaServiceModel,
- FileContentHandler externalArtifacts) {
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- try (ZipOutputStream zos = new ZipOutputStream(new BufferedOutputStream(baos))) {
- packDefinitions(zos, toscaServiceModel.getServiceTemplates());
- FileContentHandler artifactFiles = toscaServiceModel.getArtifactFiles();
- if (artifactFiles != null && !artifactFiles.isEmpty()) {
- packArtifacts(zos, artifactFiles);
- }
- if (toscaServiceModel.getEntryDefinitionServiceTemplate() == null) {
- throw new CoreException(new CsarMissingEntryPointErrorBuilder().build());
- }
- createAndPackToscaMetaFile(zos, toscaServiceModel.getEntryDefinitionServiceTemplate());
- if (externalArtifacts != null) {
- packExternalArtifacts(zos, externalArtifacts);
- }
- } catch (IOException ex) {
- throw new CoreException(new CsarCreationErrorBuilder().build(), ex);
+ static final String EXTERNAL_ARTIFACTS_FOLDER_NAME = "Artifacts";
+ private static final String DEFINITIONS_FOLDER_NAME = "Definitions";
+ private static final String ARTIFACTS_FOLDER_NAME = "Artifacts";
+ //todo currently duplicated, to be changed when external artifacts are separated from internal
+ private static final String TOSCA_META_FOLDER_NAME = "TOSCA-Metadata";
+ private static final String TOSCA_META_FILE_VERSION_VALUE = "1.0";
+ private static final String TOSCA_META_FILE_NAME = "TOSCA.meta";
+ private static final String CSAR_VERSION_VALUE = "1.1";
+ private static final String CREATED_BY_VALUE = "ASDC Onboarding portal";
+ private static final String META_FILE_DELIMITER = ":";
+ private static final String SPACE = " ";
+ private static final String FILE_SEPARATOR = File.separator;
+ private static final Logger logger = LoggerFactory.getLogger(ToscaFileOutputServiceCsarImpl.class);
+
+ @Override
+ public byte[] createOutputFile(ToscaServiceModel toscaServiceModel, FileContentHandler externalArtifacts) {
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ try (ZipOutputStream zos = new ZipOutputStream(new BufferedOutputStream(baos))) {
+ packDefinitions(zos, toscaServiceModel.getServiceTemplates());
+ FileContentHandler artifactFiles = toscaServiceModel.getArtifactFiles();
+ if (artifactFiles != null && !artifactFiles.isEmpty()) {
+ packArtifacts(zos, artifactFiles);
+ }
+ if (toscaServiceModel.getEntryDefinitionServiceTemplate() == null) {
+ throw new CoreException(new CsarMissingEntryPointErrorBuilder().build());
+ }
+ createAndPackToscaMetaFile(zos, toscaServiceModel.getEntryDefinitionServiceTemplate());
+ if (externalArtifacts != null) {
+ packExternalArtifacts(zos, externalArtifacts);
+ }
+ } catch (IOException ex) {
+ throw new CoreException(new CsarCreationErrorBuilder().build(), ex);
+ }
+ return baos.toByteArray();
}
- return baos.toByteArray();
- }
-
-
- @Override
- public String createMetaFile(String entryDefinitionsFileName) {
- return TOSCA_META_FILE_VERSION_ENTRY.getName() + META_FILE_DELIMITER + SPACE + TOSCA_META_FILE_VERSION_VALUE
- + System.lineSeparator()
- + CSAR_VERSION_ENTRY.getName() + META_FILE_DELIMITER + SPACE + CSAR_VERSION_VALUE + System.lineSeparator()
- + CREATED_BY_ENTRY.getName() + META_FILE_DELIMITER + SPACE + CREATED_BY_VALUE + System.lineSeparator()
- + ENTRY_DEFINITIONS.getName() + META_FILE_DELIMITER + SPACE + DEFINITIONS_FOLDER_NAME
- + FILE_SEPARATOR
- + entryDefinitionsFileName;
- }
-
- @Override
- public String getArtifactsFolderName() {
- return ARTIFACTS_FOLDER_NAME;
- }
- private void createAndPackToscaMetaFile(ZipOutputStream zos, String entryDefinitionsFileName)
- throws IOException {
- String metaFile = createMetaFile(entryDefinitionsFileName);
- zos.putNextEntry(
- new ZipEntry(TOSCA_META_FOLDER_NAME + FILE_SEPARATOR + TOSCA_META_FILE_NAME));
- writeBytesToZip(zos, new ByteArrayInputStream(metaFile.getBytes()));
- }
-
- private void packDefinitions(ZipOutputStream zos, Map<String, ServiceTemplate> serviceTemplates)
- throws IOException {
- for (Map.Entry<String, ServiceTemplate> serviceTemplate : serviceTemplates.entrySet()) {
- String fileName = serviceTemplate.getKey();
- zos.putNextEntry(new ZipEntry(DEFINITIONS_FOLDER_NAME + FILE_SEPARATOR + fileName));
- writeBytesToZip(zos,
- FileUtils.convertToInputStream(serviceTemplate.getValue(), FileUtils.FileExtension.YAML));
+ @Override
+ public String createMetaFile(String entryDefinitionsFileName) {
+ return TOSCA_META_FILE_VERSION_ENTRY.getName() + META_FILE_DELIMITER + SPACE + TOSCA_META_FILE_VERSION_VALUE + System.lineSeparator()
+ + CSAR_VERSION_ENTRY.getName() + META_FILE_DELIMITER + SPACE + CSAR_VERSION_VALUE + System.lineSeparator() + CREATED_BY_ENTRY.getName()
+ + META_FILE_DELIMITER + SPACE + CREATED_BY_VALUE + System.lineSeparator() + ENTRY_DEFINITIONS.getName() + META_FILE_DELIMITER + SPACE
+ + DEFINITIONS_FOLDER_NAME + FILE_SEPARATOR + entryDefinitionsFileName;
}
- }
- private void packExternalArtifacts(ZipOutputStream zos, FileContentHandler externalArtifacts) {
+ @Override
+ public String getArtifactsFolderName() {
+ return ARTIFACTS_FOLDER_NAME;
+ }
- for (String filenameIncludingPath : externalArtifacts.getFileList()) {
- try {
- zos.putNextEntry(new ZipEntry(filenameIncludingPath));
- writeBytesToZip(zos, externalArtifacts.getFileContentAsStream(filenameIncludingPath));
+ private void createAndPackToscaMetaFile(ZipOutputStream zos, String entryDefinitionsFileName) throws IOException {
+ String metaFile = createMetaFile(entryDefinitionsFileName);
+ zos.putNextEntry(new ZipEntry(TOSCA_META_FOLDER_NAME + FILE_SEPARATOR + TOSCA_META_FILE_NAME));
+ writeBytesToZip(zos, new ByteArrayInputStream(metaFile.getBytes()));
+ }
- } catch (IOException ex) {
- throw new RuntimeException(ex);
- } finally {
- try {
- zos.closeEntry();
- } catch (IOException ignore) {
- logger.debug(ignore.getMessage(), ignore);
+ private void packDefinitions(ZipOutputStream zos, Map<String, ServiceTemplate> serviceTemplates) throws IOException {
+ for (Map.Entry<String, ServiceTemplate> serviceTemplate : serviceTemplates.entrySet()) {
+ String fileName = serviceTemplate.getKey();
+ zos.putNextEntry(new ZipEntry(DEFINITIONS_FOLDER_NAME + FILE_SEPARATOR + fileName));
+ writeBytesToZip(zos, FileUtils.convertToInputStream(serviceTemplate.getValue(), FileUtils.FileExtension.YAML));
}
- }
}
- }
-
- private void packArtifacts(ZipOutputStream zos, FileContentHandler artifacts) {
-
- for (String fileName : artifacts.getFileList()) {
- try {
- zos.putNextEntry(new ZipEntry(ARTIFACTS_FOLDER_NAME + FILE_SEPARATOR + fileName));
- writeBytesToZip(zos, artifacts.getFileContentAsStream(fileName));
-
- } catch (IOException ex) {
- throw new RuntimeException(ex);
- } finally {
- try {
- zos.closeEntry();
- } catch (IOException ignore) {
- logger.debug(ignore.getMessage(), ignore);
+ private void packExternalArtifacts(ZipOutputStream zos, FileContentHandler externalArtifacts) {
+ for (String filenameIncludingPath : externalArtifacts.getFileList()) {
+ try {
+ zos.putNextEntry(new ZipEntry(filenameIncludingPath));
+ writeBytesToZip(zos, externalArtifacts.getFileContentAsStream(filenameIncludingPath));
+ } catch (IOException ex) {
+ throw new RuntimeException(ex);
+ } finally {
+ try {
+ zos.closeEntry();
+ } catch (IOException ignore) {
+ logger.debug(ignore.getMessage(), ignore);
+ }
+ }
}
- }
}
- }
+ private void packArtifacts(ZipOutputStream zos, FileContentHandler artifacts) {
+ for (String fileName : artifacts.getFileList()) {
+ try {
+ zos.putNextEntry(new ZipEntry(ARTIFACTS_FOLDER_NAME + FILE_SEPARATOR + fileName));
+ writeBytesToZip(zos, artifacts.getFileContentAsStream(fileName));
+ } catch (IOException ex) {
+ throw new RuntimeException(ex);
+ } finally {
+ try {
+ zos.closeEntry();
+ } catch (IOException ignore) {
+ logger.debug(ignore.getMessage(), ignore);
+ }
+ }
+ }
+ }
- private void writeBytesToZip(ZipOutputStream zos, InputStream is) throws IOException {
- if(is != null){
- IOUtils.copy(is, zos);
+ private void writeBytesToZip(ZipOutputStream zos, InputStream is) throws IOException {
+ if (is != null) {
+ IOUtils.copy(is, zos);
+ }
}
- }
}