diff options
Diffstat (limited to 'test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/ToscaParserUtils.java')
-rw-r--r-- | test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/ToscaParserUtils.java | 289 |
1 files changed, 34 insertions, 255 deletions
diff --git a/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/ToscaParserUtils.java b/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/ToscaParserUtils.java index be235d03ae..b7eaf99724 100644 --- a/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/ToscaParserUtils.java +++ b/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/ToscaParserUtils.java @@ -20,29 +20,40 @@ package org.openecomp.sdc.ci.tests.utils; +import static org.testng.AssertJUnit.assertNotNull; +import static org.testng.AssertJUnit.assertTrue; +import static org.testng.AssertJUnit.fail; + +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.Map; +import org.apache.commons.collections4.MapUtils; import org.openecomp.sdc.ci.tests.datatypes.enums.UserRoleEnum; -import org.openecomp.sdc.ci.tests.tosca.datatypes.*; +import org.openecomp.sdc.ci.tests.tosca.datatypes.ToscaDefinition; +import org.openecomp.sdc.ci.tests.tosca.datatypes.ToscaGroupsTopologyTemplateDefinition; +import org.openecomp.sdc.ci.tests.tosca.datatypes.ToscaImportsDefinition; +import org.openecomp.sdc.ci.tests.tosca.datatypes.ToscaInputsTopologyTemplateDefinition; +import org.openecomp.sdc.ci.tests.tosca.datatypes.ToscaMetadataDefinition; +import org.openecomp.sdc.ci.tests.tosca.datatypes.ToscaNodeTemplatesTopologyTemplateDefinition; +import org.openecomp.sdc.ci.tests.tosca.datatypes.ToscaParameterConstants; +import org.openecomp.sdc.ci.tests.tosca.datatypes.ToscaSubstitutionMappingsDefinition; +import org.openecomp.sdc.ci.tests.tosca.datatypes.ToscaTopologyTemplateDefinition; import org.openecomp.sdc.ci.tests.utils.general.ElementFactory; import org.openecomp.sdc.ci.tests.utils.rest.BaseRestUtils; import org.openecomp.sdc.ci.tests.utils.rest.ImportRestUtils; import org.openecomp.sdc.common.http.client.api.HttpResponse; -import org.openecomp.sdc.common.util.ZipUtil; +import org.openecomp.sdc.common.zip.ZipUtils; +import org.openecomp.sdc.common.zip.exception.ZipException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.yaml.snakeyaml.Yaml; import org.yaml.snakeyaml.constructor.Constructor; import org.yaml.snakeyaml.introspector.PropertyUtils; -import java.io.File; -import java.io.FileInputStream; -import java.nio.charset.StandardCharsets; -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.Map; - -import static org.testng.AssertJUnit.assertNotNull; -import static org.testng.AssertJUnit.assertTrue; - public class ToscaParserUtils { private static Logger log = LoggerFactory.getLogger(ToscaParserUtils.class.getName()); @@ -135,10 +146,8 @@ public class ToscaParserUtils { try { toscaDefinition = (ToscaDefinition) yaml.load(payload); } catch (Exception e) { - log.debug("Failed to parse tosca yaml file"); - log.debug("Exception: " + e); - System.out.println("Exception: " + e); - assertTrue("Exception: " + e, false); + log.debug("Failed to parse tosca yaml file", e); + fail("Exception: " + e); } return toscaDefinition; @@ -155,7 +164,6 @@ public class ToscaParserUtils { toscaStructure.addTypeDescription(ToscaImportsDefinition.getTypeDescription()); toscaStructure.addTypeDescription(ToscaMetadataDefinition.getTypeDescription()); toscaStructure.addTypeDescription(ToscaInputsTopologyTemplateDefinition.getTypeDescription()); -// toscaStructure.addTypeDescription(ToscaInputsDefinition.getTypeDescription()); // Skip properties which are found in YAML, but not found in POJO PropertyUtils propertyUtils = new PropertyUtils(); propertyUtils.setSkipMissingProperties(true); @@ -193,12 +201,10 @@ public class ToscaParserUtils { } - public static String getYamlPayloadFromCsar(File csarName, String fileLocation) throws Exception { - + public static String getYamlPayloadFromCsar(File csarName, String fileLocation) throws IOException, ZipException { Path path = csarName.toPath(); byte[] data = Files.readAllBytes(path); return getDataFromZipFileByBytes(fileLocation, data); - } /** method get file data from zip data by file location in the zip structure @@ -206,243 +212,16 @@ public class ToscaParserUtils { * @param data * @return */ - public static String getDataFromZipFileByBytes(String fileLocation, byte[] data) { - Map<String, byte[]> readZip = null; - if (data != null && data.length > 0) { - readZip = ZipUtil.readZip(data); - + public static String getDataFromZipFileByBytes(String fileLocation, byte[] data) throws ZipException { + if (data == null || data.length == 0) { + return null; } - byte[] artifactsBs = readZip.get(fileLocation); - String str = new String(artifactsBs, StandardCharsets.UTF_8); - return str; - } -/* public static Map<?, ?> getToscaYamlMap(String csarUUID, String fileLocation) throws Exception { - String csarPayload = CsarValidationUtils.getCsarPayload(csarUUID, fileLocation); - if (csarPayload != null) { - Yaml yaml = new Yaml(); - Map<?, ?> map = (Map<?, ?>) yaml.load(csarPayload); - return map; + final Map<String, byte[]> readZip = ZipUtils.readZip(data, false); + if (MapUtils.isEmpty(readZip)) { + return null; } - return null; + byte[] artifactsBytes = readZip.get(fileLocation); + return new String(artifactsBytes, StandardCharsets.UTF_8); } - - public static ToscaDefinition getToscaDefinitionObjectByCsarUuid(String csarUUID) throws Exception { - - String TOSCAMetaLocation = "TOSCA-Metadata/TOSCA.meta"; - Map<?, ?> map = getToscaYamlMap(csarUUID, TOSCAMetaLocation); - assertNotNull("Tosca Entry-Definitions is null", map); - if (map != null) { - String definitionYamlLocation = (String) map.get("Entry-Definitions"); - Map<?, ?> toscaMap = getToscaYamlMap(csarUUID, definitionYamlLocation); - assertNotNull("Tosca definition is null", toscaMap); - if (toscaMap != null) { - ToscaDefinition toscaDefinition = new ToscaDefinition(); - Set<?> keySet = toscaMap.keySet(); - for (Object key : keySet) { - ToscaKeysEnum toscaKey = ToscaKeysEnum.findToscaKey((String) key); - switch (toscaKey) { - case TOSCA_DEFINITION_VERSION: - getToscaDefinitionVersion(toscaMap, toscaDefinition); - break; - case NODE_TYPES: - getToscaNodeTypes(toscaMap, toscaDefinition); - break; - case TOPOLOGY_TEMPLATE: - getToscaTopologyTemplate(toscaMap, toscaDefinition); - break; - case IMPORTS: - // toscaMap.get("imports"); - break; - default: - break; - } - } - return toscaDefinition; - } - } - return null; - - } - - public static void getToscaDefinitionVersion(Map<?, ?> toscaMap, ToscaDefinition toscaDefinition) { - if (toscaMap.get("tosca_definitions_version") != null) { - toscaDefinition.setTosca_definitions_version((String) toscaMap.get("tosca_definitions_version")); - } - } - - // spec 90 page - public static void getToscaNodeTypes(Map<?, ?> toscaMap, ToscaDefinition toscaDefinition) { - @SuppressWarnings("unchecked") - Map<String, Map<String, String>> nodeTypes = (Map<String, Map<String, String>>) toscaMap.get("node_types"); - Map<String, ToscaNodeTypesDefinition> listToscaNodeTypes = new HashMap<String, ToscaNodeTypesDefinition>(); - if (nodeTypes != null) { - for (Map.Entry<String, Map<String, String>> entry : nodeTypes.entrySet()) { - ToscaNodeTypesDefinition toscaNodeTypes = new ToscaNodeTypesDefinition(); - String toscaNodeName = entry.getKey(); - toscaNodeTypes.setName(toscaNodeName); - - Map<String, String> toscaNodeType = entry.getValue(); - if (toscaNodeType != null) { - Set<Entry<String, String>> entrySet = toscaNodeType.entrySet(); - if (entrySet != null) { - // boolean found = false; - for (Entry<String, String> toscaNodeTypeMap : entrySet) { - String key = toscaNodeTypeMap.getKey(); - if (key.equals("derived_from")) { - String derivedFrom = toscaNodeTypeMap.getValue(); - toscaNodeTypes.setDerived_from(derivedFrom); - // found = true; - break; - } else { - continue; - } - - } - // if (found == false) { - // System.out.println("Tosca file not valid, - // derived_from not found"); - // } - } - - } -// listToscaNodeTypes.add(toscaNodeTypes); - listToscaNodeTypes.put(toscaNodeName, toscaNodeTypes); - } - toscaDefinition.setNode_types(listToscaNodeTypes); - } - } - - public static void getToscaTopologyTemplate(Map<?, ?> toscaMap, ToscaDefinition toscaDefinition) { - ToscaTopologyTemplateDefinition toscaTopologyTemplate = new ToscaTopologyTemplateDefinition(); - @SuppressWarnings("unchecked") - Map<String, Map<String, Object>> topologyTemplateMap = (Map<String, Map<String, Object>>) toscaMap.get("topology_template"); -// List<ToscaNodeTemplatesTopologyTemplateDefinition> listToscaNodeTemplates = new ArrayList<>(); - Map<String,ToscaNodeTemplatesTopologyTemplateDefinition> mapToscaNodeTemplates = new HashMap<String, ToscaNodeTemplatesTopologyTemplateDefinition>(); - - if (topologyTemplateMap != null) { - getToscaNodeTemplates(topologyTemplateMap, mapToscaNodeTemplates); - } -// toscaTopologyTemplate.setToscaNodeTemplatesTopologyTemplateDefinition(listToscaNodeTemplates); - toscaTopologyTemplate.setNode_templates(mapToscaNodeTemplates); - toscaDefinition.setTopology_template(toscaTopologyTemplate); - } - - public static void getToscaNodeTemplates(Map<String, Map<String, Object>> topologyTemplateMap, Map<String,ToscaNodeTemplatesTopologyTemplateDefinition> mapToscaNodeTemplates) { - Map<String, Object> nodeTemplatesMap = topologyTemplateMap.get("node_templates"); - if (nodeTemplatesMap != null) { - - for (Entry<String, Object> nodeTemplates : nodeTemplatesMap.entrySet()) { - ToscaNodeTemplatesTopologyTemplateDefinition toscaNodeTemplates = new ToscaNodeTemplatesTopologyTemplateDefinition(); - getToscaNodeTemplatesName(nodeTemplates, toscaNodeTemplates); - - @SuppressWarnings("unchecked") - Map<String, Object> node = (Map<String, Object>) nodeTemplates.getValue(); - getNodeTemplatesType(toscaNodeTemplates, node); - getToscaNodeTemplateProperties(toscaNodeTemplates, node); - getToscaNodeTemplateRequirements(toscaNodeTemplates, node); - mapToscaNodeTemplates.putAll(mapToscaNodeTemplates); - } - } - } - - public static void getToscaNodeTemplateRequirements(ToscaNodeTemplatesTopologyTemplateDefinition toscaNodeTemplates, Map<String, Object> node) { -//// List<ToscaRequirementsNodeTemplatesDefinition> toscaRequirements = new ArrayList<>(); -// List<Map<String, ToscaRequirementsNodeTemplatesDefinition>> toscaRequirements = new ArrayList<>(); -// if (node.get("requirements") != null) { -// @SuppressWarnings("unchecked") -// List<Map<String, Object>> requirementList = (List<Map<String, Object>>) node.get("requirements"); -// for (int i = 0; i < requirementList.size(); i++) { -// for (Map.Entry<String, Object> requirement : requirementList.get(i).entrySet()) { -// ToscaRequirementsNodeTemplatesDefinition toscaRequirement = new ToscaRequirementsNodeTemplatesDefinition(); -// if (requirement.getKey() != null) { -// String requirementName = requirement.getKey(); -// toscaRequirement.setName(requirementName); -// } else { -// log.debug("Tosca file not valid, requirements should contain name"); -// } -// -// @SuppressWarnings("unchecked") -// Map<String, String> requirementMap = (Map<String, String>) requirement.getValue(); -// Set<Entry<String, String>> entrySet = requirementMap.entrySet(); -// if (entrySet != null) { -// for (Entry<String, String> requirementField : entrySet) { -// String key = requirementField.getKey(); -// switch (key) { -// case "capability": -// if (requirementMap.get(key) != null) { -// String capability = (String) requirementMap.get(key); -// toscaRequirement.setCapability(capability); -// break; -// } else { -// continue; -// } -// case "node": -// if (requirementMap.get(key) != null) { -// String requirementNode = (String) requirementMap.get(key); -// toscaRequirement.setNode(requirementNode); -// break; -// } else { -// continue; -// } -// case "relationship": -// if (requirementMap.get(key) != null) { -// String relationship = (String) requirementMap.get(key); -// toscaRequirement.setRelationship(relationship); -// break; -// } else { -// continue; -// } -// default: -// break; -// } -// } -// } -//// toscaRequirements.add(toscaRequirement); -// toscaRequirements.add(requirementMap); -// } -// } -// } -//// toscaNodeTemplates.setRequirements(toscaRequirements); -// toscaNodeTemplates.setRequirements(requirements); - - } - - public static void getToscaNodeTemplateProperties(ToscaNodeTemplatesTopologyTemplateDefinition toscaNodeTemplates, - Map<String, Object> node) { -// List<ToscaPropertiesNodeTemplatesDefinition> listToscaProperties = new ArrayList<>(); - Map<String, Object> mapToscaProperties = new HashMap<>(); - if (node.get("properties") != null) { - @SuppressWarnings("unchecked") - Map<String, Object> properties = (Map<String, Object>) node.get("properties"); - for (Map.Entry<String, Object> property : properties.entrySet()) { - ToscaPropertiesNodeTemplatesDefinition toscaProperty = new ToscaPropertiesNodeTemplatesDefinition(); - String propertyName = property.getKey(); - Object propertyValue = property.getValue(); - toscaProperty.setName(propertyName); - toscaProperty.setValue(propertyValue); -// mapToscaProperties.add(toscaProperty); - mapToscaProperties.put(propertyName, propertyValue); - } - } - toscaNodeTemplates.setProperties(mapToscaProperties); - } - - protected static void getNodeTemplatesType(ToscaNodeTemplatesTopologyTemplateDefinition toscaNodeTemplates, - Map<String, Object> node) { - if (node.get("type") != null) { - String type = (String) node.get("type"); - toscaNodeTemplates.setType(type); - } else { - log.debug("Tosca file not valid, nodeTemplate should contain type"); - } - } - - protected static void getToscaNodeTemplatesName(Entry<String, Object> nodeTemplates, - ToscaNodeTemplatesTopologyTemplateDefinition toscaNodeTemplates) { - String name = nodeTemplates.getKey(); - toscaNodeTemplates.setName(name); - }*/ - - } |