diff options
Diffstat (limited to 'ui-ci/src/main/java/org/openecomp/sdc/ci/tests/businesslogic/ArtifactBusinessLogic.java')
-rw-r--r-- | ui-ci/src/main/java/org/openecomp/sdc/ci/tests/businesslogic/ArtifactBusinessLogic.java | 352 |
1 files changed, 179 insertions, 173 deletions
diff --git a/ui-ci/src/main/java/org/openecomp/sdc/ci/tests/businesslogic/ArtifactBusinessLogic.java b/ui-ci/src/main/java/org/openecomp/sdc/ci/tests/businesslogic/ArtifactBusinessLogic.java index 7514b67864..9b3611ced5 100644 --- a/ui-ci/src/main/java/org/openecomp/sdc/ci/tests/businesslogic/ArtifactBusinessLogic.java +++ b/ui-ci/src/main/java/org/openecomp/sdc/ci/tests/businesslogic/ArtifactBusinessLogic.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. @@ -34,181 +34,187 @@ import org.openecomp.sdc.ci.tests.utilities.FileHandling; import java.io.File; import java.io.IOException; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; import java.util.Map.Entry; import static org.junit.Assert.assertTrue; public class ArtifactBusinessLogic { - private final static String[] okFileExtensions = new String[] {"yaml", "yml", "env"}; - private static final String PARAMETERS = "parameters"; - private static final String DEPLOYMENT = "Deployment"; - - public static synchronized Map<String, File> createEnvFilesListFromCsar(String vspName, String filePath) throws Exception{ - Map<String, File> generatedEnvFiles = new HashMap<>(); - File csarFile= HomePage.downloadVspCsarToDefaultDirectory(vspName); - FileHandling.unzip(csarFile.toString(), filePath); - List<File> yamlList = getHeatFilesCreatedFromCsar(csarFile, filePath); - Map<String, HeatAndHeatEnvNamesPair> filesPairMap = getFilesPairMap(yamlList); - generatedEnvFiles = generateDefaultEnvFiles(filesPairMap, filePath); - return generatedEnvFiles; - } - - public static synchronized List<File> getHeatFilesCreatedFromCsar(File pathToDirectory, String filePath) throws Exception { - List<File> fileList = new ArrayList<>(); - String artifactsFilePath = filePath + "Artifacts" + File.separator; - List<File> fileListFromArtifactsDirectory = FileHandling.getHeatAndHeatEnvArtifactsFromZip(new File(artifactsFilePath), okFileExtensions); - Map<String, Object> combinedMap = ArtifactFromCsar.combineHeatArtifacstWithFolderArtifacsToMap(pathToDirectory.toString()); - LinkedList<HeatMetaFirstLevelDefinition> deploymentArtifacts = (LinkedList<HeatMetaFirstLevelDefinition>) combinedMap.get(DEPLOYMENT); - for(HeatMetaFirstLevelDefinition deploymentArtifact : deploymentArtifacts){ - String type = deploymentArtifact.getType(); - if(type.equals(ArtifactTypeEnum.HEAT.getType()) || - type.equals(ArtifactTypeEnum.HEAT_ENV.getType()) || - type.equals(ArtifactTypeEnum.HEAT_VOL.getType()) || - type.equals(ArtifactTypeEnum.HEAT_NET.getType())){ - File file = new File(artifactsFilePath + deploymentArtifact.getFileName()); - if(fileListFromArtifactsDirectory.contains(file)){ - fileList.add(file); - }else{ - assertTrue("File " + file + " does not exist", false); - } - } - } - return fileList; - } - public static synchronized Map<String, HeatAndHeatEnvNamesPair> getFilesPairMap(List<File> generatedEnvFiles) { - - Map<String, HeatAndHeatEnvNamesPair> heatAndHeatEnvPairs= new HashMap<>(); - for(File file : generatedEnvFiles){ - String[] fileName = file.getName().split("\\."); - String currentKey = fileName[0]; - String currentExtension = fileName[1]; - HeatAndHeatEnvNamesPair pair; - if(!heatAndHeatEnvPairs.containsKey(currentKey)){ - pair = new HeatAndHeatEnvNamesPair(); - heatAndHeatEnvPairs.put(currentKey, pair); - }else{ - pair = heatAndHeatEnvPairs.get(currentKey); - } - setFileToPair(file, currentExtension, pair); - } - return heatAndHeatEnvPairs; - } - - /** - * The method fill list of HeatWithParametersDefinition parameters - * @param deploymentArtifacts - * @return - */ - public static synchronized List<HeatWithParametersDefinition> extractHeatWithParametersDefinition(Map<String, ArtifactDefinition> deploymentArtifacts) { - - List<HeatWithParametersDefinition> heatAndEnvLabelList = new ArrayList<>(); - - for (Entry<String, ArtifactDefinition> artifactDefinitionChild : deploymentArtifacts.entrySet()){ - if(artifactDefinitionChild.getValue().getArtifactType().equals(ArtifactTypeEnum.HEAT_ENV.getType())){ - for(Entry<String, ArtifactDefinition> artifactDefinitionParent : deploymentArtifacts.entrySet()){ - if(artifactDefinitionChild.getValue().getGeneratedFromId().equals(artifactDefinitionParent.getValue().getUniqueId())){ - String heatLabel = artifactDefinitionParent.getValue().getArtifactLabel(); - String heatArtifactType = artifactDefinitionParent.getValue().getArtifactType(); - String heatArtifactDisplayName = artifactDefinitionParent.getValue().getArtifactDisplayName(); - List<HeatParameterDataDefinition> heatParameterDefinition = artifactDefinitionParent.getValue().getHeatParameters(); - String heatEnvLabel = artifactDefinitionChild.getValue().getArtifactLabel(); - String heatEnvArtifactType = artifactDefinitionChild.getValue().getArtifactType(); - heatAndEnvLabelList.add(new HeatWithParametersDefinition(heatLabel, heatEnvLabel, heatArtifactType, heatEnvArtifactType, heatArtifactDisplayName, heatParameterDefinition)); - break; - } - } - } - } - return heatAndEnvLabelList; - } - - - public static synchronized void setFileToPair(File file, String currentExtension, HeatAndHeatEnvNamesPair pair) { - if(!currentExtension.equals("env")){ - pair.setHeatFileName(file); - }else{ - pair.setHeatEnvFileName(file); - } - } - - public static synchronized Map<String, File> generateDefaultEnvFiles(Map<String, HeatAndHeatEnvNamesPair> filesPairMap, String filePath) throws Exception { - - Map<String, File> generatedEnvFilesMap = new HashMap<>(); - for(Entry<String, HeatAndHeatEnvNamesPair> pair : filesPairMap.entrySet()){ - Map<String, Pair<String, Object>> envParametersMap = getEnvParametersMap(pair); - File generatedEnvFile = createEnvFile(envParametersMap, new File(filePath + pair.getKey() + ".env")); - generatedEnvFilesMap.put(pair.getKey(), generatedEnvFile); - } - return generatedEnvFilesMap; - } - - public static synchronized File createEnvFile(Map<String, Pair<String, Object>> envParametersMap, File fileToWrite) throws IOException { - - FileHandling.writeToFile(fileToWrite, PARAMETERS+":", 0); - FileHandling.writeToFile(fileToWrite, envParametersMap, 2); - return fileToWrite; - } - - public static synchronized Map<String, Pair<String, Object>> getEnvParametersMap(Entry<String, HeatAndHeatEnvNamesPair> pair) throws Exception { - File heatFileName = pair.getValue().getHeatFileName(); - File heatEnvFileName = pair.getValue().getHeatEnvFileName(); - Map<String, Pair<String, Object>> envParametersMap = new HashMap<>(); - fillParametersMapFromHeatFile(heatFileName, envParametersMap); - fillParametersMapFromHeatEnvFile(heatEnvFileName, envParametersMap); - return envParametersMap; - } - - public static synchronized void fillParametersMapFromHeatEnvFile(File heatEnvFileName, Map<String, Pair<String, Object>> envParametersMap) throws Exception { - if(heatEnvFileName != null){ - Map<String, Object> mapHeatEnvFileParameters = FileHandling.parseYamlFileToMapByPattern(heatEnvFileName, PARAMETERS); - for (Map.Entry<String, Object> parameter : mapHeatEnvFileParameters.entrySet()){ - String key = parameter.getKey(); - Pair<String, Object> pair; - if(envParametersMap.containsKey(key)){ - if(envParametersMap.get(key).left.equals("string") && parameter.getValue() != null){ - pair = Pair.create(envParametersMap.get(key).left, "\"" + parameter.getValue() + "\""); - }else if(envParametersMap.get(key).left.equals("string") && parameter.getValue() == null){ - pair = Pair.create(envParametersMap.get(key).left, ""); - }else if(parameter.getValue() == null) { - pair = Pair.create(envParametersMap.get(key).left, ""); - } else if(envParametersMap.get(key).left.equals("json") && parameter.getValue() != null){ - String pairValue = ""; - Gson gson = new Gson(); - if(parameter.getValue() instanceof java.util.LinkedHashMap){ - pairValue = gson.toJson(parameter.getValue()); - } - pair = Pair.create(envParametersMap.get(key).left, pairValue ); - - }else if(envParametersMap.get(key).left.equals("json") && parameter.getValue() == null){ - pair = Pair.create(envParametersMap.get(key).left, ""); - }else{ - pair = Pair.create(envParametersMap.get(key).left, parameter.getValue()); - } - envParametersMap.put(key, pair); - } - } - } - } - - @SuppressWarnings("unchecked") - public static synchronized void fillParametersMapFromHeatFile(File heatFileName, Map<String, Pair<String, Object>> envParametersMap) throws Exception { - Map<String, Object> mapHeatFileParameters = FileHandling.parseYamlFileToMapByPattern(heatFileName, PARAMETERS); - for (Map.Entry<String, Object> parameter : mapHeatFileParameters.entrySet()){ - Map<String, Object> value = (Map<String, Object>) parameter.getValue(); - Pair<String, Object> pair; - if(value.get("type").toString().equals("string") && value.get("default") != null ){ - pair = Pair.create(value.get("type").toString(), "\"" + value.get("default") + "\""); - }else if(value.get("type").toString().equals("string") && value.get("default") == null){ - pair = Pair.create(value.get("type").toString(), ""); - }else if(value.get("default") == null){ - pair = Pair.create(value.get("type").toString(), ""); - }else{ - pair = Pair.create(value.get("type").toString(), value.get("default")); - } - envParametersMap.put(parameter.getKey(), pair); - } - } - + private static final String[] OK_FILE_EXTENSIONS = new String[]{"yaml", "yml", "env"}; + private static final String PARAMETERS = "parameters"; + private static final String DEPLOYMENT = "Deployment"; + + public static synchronized Map<String, File> createEnvFilesListFromCsar(String vspName, String filePath) throws Exception { + Map<String, File> generatedEnvFiles; + File csarFile = HomePage.downloadVspCsarToDefaultDirectory(vspName); + FileHandling.unzip(csarFile.toString(), filePath); + List<File> yamlList = getHeatFilesCreatedFromCsar(csarFile, filePath); + Map<String, HeatAndHeatEnvNamesPair> filesPairMap = getFilesPairMap(yamlList); + generatedEnvFiles = generateDefaultEnvFiles(filesPairMap, filePath); + return generatedEnvFiles; + } + + public static synchronized List<File> getHeatFilesCreatedFromCsar(File pathToDirectory, String filePath) throws Exception { + List<File> fileList = new ArrayList<>(); + String artifactsFilePath = filePath + "Artifacts" + File.separator; + List<File> fileListFromArtifactsDirectory = FileHandling.getHeatAndHeatEnvArtifactsFromZip(new File(artifactsFilePath), OK_FILE_EXTENSIONS); + Map<String, Object> combinedMap = ArtifactFromCsar.combineHeatArtifacstWithFolderArtifacsToMap(pathToDirectory.toString()); + LinkedList<HeatMetaFirstLevelDefinition> deploymentArtifacts = (LinkedList<HeatMetaFirstLevelDefinition>) combinedMap.get(DEPLOYMENT); + for (HeatMetaFirstLevelDefinition deploymentArtifact : deploymentArtifacts) { + String type = deploymentArtifact.getType(); + if (type.equals(ArtifactTypeEnum.HEAT.getType()) + || type.equals(ArtifactTypeEnum.HEAT_ENV.getType()) + || type.equals(ArtifactTypeEnum.HEAT_VOL.getType()) + || type.equals(ArtifactTypeEnum.HEAT_NET.getType())) { + File file = new File(artifactsFilePath + deploymentArtifact.getFileName()); + if (fileListFromArtifactsDirectory.contains(file)) { + fileList.add(file); + } else { + assertTrue("File " + file + " does not exist", false); + } + } + } + return fileList; + } + + private static synchronized Map<String, HeatAndHeatEnvNamesPair> getFilesPairMap(List<File> generatedEnvFiles) { + + Map<String, HeatAndHeatEnvNamesPair> heatAndHeatEnvPairs = new HashMap<>(); + for (File file : generatedEnvFiles) { + String[] fileName = file.getName().split("\\."); + String currentKey = fileName[0]; + String currentExtension = fileName[1]; + HeatAndHeatEnvNamesPair pair; + if (!heatAndHeatEnvPairs.containsKey(currentKey)) { + pair = new HeatAndHeatEnvNamesPair(); + heatAndHeatEnvPairs.put(currentKey, pair); + } else { + pair = heatAndHeatEnvPairs.get(currentKey); + } + setFileToPair(file, currentExtension, pair); + } + return heatAndHeatEnvPairs; + } + + /** + * The method fill list of HeatWithParametersDefinition parameters + * + * @param deploymentArtifacts + * @return + */ + public static synchronized List<HeatWithParametersDefinition> extractHeatWithParametersDefinition(Map<String, ArtifactDefinition> deploymentArtifacts) { + + List<HeatWithParametersDefinition> heatAndEnvLabelList = new ArrayList<>(); + + for (Entry<String, ArtifactDefinition> artifactDefinitionChild : deploymentArtifacts.entrySet()) { + if (artifactDefinitionChild.getValue().getArtifactType().equals(ArtifactTypeEnum.HEAT_ENV.getType())) { + for (Entry<String, ArtifactDefinition> artifactDefinitionParent : deploymentArtifacts.entrySet()) { + if (artifactDefinitionChild.getValue().getGeneratedFromId().equals(artifactDefinitionParent.getValue().getUniqueId())) { + String heatLabel = artifactDefinitionParent.getValue().getArtifactLabel(); + String heatArtifactType = artifactDefinitionParent.getValue().getArtifactType(); + String heatArtifactDisplayName = artifactDefinitionParent.getValue().getArtifactDisplayName(); + List<HeatParameterDataDefinition> heatParameterDefinition = artifactDefinitionParent.getValue().getHeatParameters(); + String heatEnvLabel = artifactDefinitionChild.getValue().getArtifactLabel(); + String heatEnvArtifactType = artifactDefinitionChild.getValue().getArtifactType(); + heatAndEnvLabelList.add(new HeatWithParametersDefinition(heatLabel, heatEnvLabel, heatArtifactType, heatEnvArtifactType, heatArtifactDisplayName, heatParameterDefinition)); + break; + } + } + } + } + return heatAndEnvLabelList; + } + + + private static synchronized void setFileToPair(File file, String currentExtension, HeatAndHeatEnvNamesPair pair) { + if (!currentExtension.equals("env")) { + pair.setHeatFileName(file); + } else { + pair.setHeatEnvFileName(file); + } + } + + private static synchronized Map<String, File> generateDefaultEnvFiles(Map<String, HeatAndHeatEnvNamesPair> filesPairMap, String filePath) throws Exception { + + Map<String, File> generatedEnvFilesMap = new HashMap<>(); + for (Entry<String, HeatAndHeatEnvNamesPair> pair : filesPairMap.entrySet()) { + Map<String, Pair<String, Object>> envParametersMap = getEnvParametersMap(pair); + File generatedEnvFile = createEnvFile(envParametersMap, new File(filePath + pair.getKey() + ".env")); + generatedEnvFilesMap.put(pair.getKey(), generatedEnvFile); + } + return generatedEnvFilesMap; + } + + private static synchronized File createEnvFile(Map<String, Pair<String, Object>> envParametersMap, File fileToWrite) throws IOException { + + FileHandling.writeToFile(fileToWrite, PARAMETERS + ":", 0); + FileHandling.writeToFile(fileToWrite, envParametersMap, 2); + return fileToWrite; + } + + private static synchronized Map<String, Pair<String, Object>> getEnvParametersMap(Entry<String, HeatAndHeatEnvNamesPair> pair) throws Exception { + File heatFileName = pair.getValue().getHeatFileName(); + File heatEnvFileName = pair.getValue().getHeatEnvFileName(); + Map<String, Pair<String, Object>> envParametersMap = new HashMap<>(); + fillParametersMapFromHeatFile(heatFileName, envParametersMap); + fillParametersMapFromHeatEnvFile(heatEnvFileName, envParametersMap); + return envParametersMap; + } + + private static synchronized void fillParametersMapFromHeatEnvFile(File heatEnvFileName, Map<String, Pair<String, Object>> envParametersMap) throws Exception { + if (heatEnvFileName != null) { + Map<String, Object> mapHeatEnvFileParameters = FileHandling.parseYamlFileToMapByPattern(heatEnvFileName, PARAMETERS); + for (Map.Entry<String, Object> parameter : mapHeatEnvFileParameters.entrySet()) { + String key = parameter.getKey(); + Pair<String, Object> pair; + if (envParametersMap.containsKey(key)) { + if (envParametersMap.get(key).left.equals("string") && parameter.getValue() != null) { + pair = Pair.create(envParametersMap.get(key).left, "\"" + parameter.getValue() + "\""); + } else if (envParametersMap.get(key).left.equals("string") && parameter.getValue() == null) { + pair = Pair.create(envParametersMap.get(key).left, ""); + } else if (parameter.getValue() == null) { + pair = Pair.create(envParametersMap.get(key).left, ""); + } else if (envParametersMap.get(key).left.equals("json") && parameter.getValue() != null) { + String pairValue = ""; + Gson gson = new Gson(); + if (parameter.getValue() instanceof java.util.LinkedHashMap) { + pairValue = gson.toJson(parameter.getValue()); + } + pair = Pair.create(envParametersMap.get(key).left, pairValue); + + } else if (envParametersMap.get(key).left.equals("json") && parameter.getValue() == null) { + pair = Pair.create(envParametersMap.get(key).left, ""); + } else { + pair = Pair.create(envParametersMap.get(key).left, parameter.getValue()); + } + envParametersMap.put(key, pair); + } + } + } + } + + @SuppressWarnings("unchecked") + private static synchronized void fillParametersMapFromHeatFile(File heatFileName, Map<String, Pair<String, Object>> envParametersMap) throws Exception { + Map<String, Object> mapHeatFileParameters = FileHandling.parseYamlFileToMapByPattern(heatFileName, PARAMETERS); + for (Map.Entry<String, Object> parameter : mapHeatFileParameters.entrySet()) { + Map<String, Object> value = (Map<String, Object>) parameter.getValue(); + Pair<String, Object> pair; + if (value.get("type").toString().equals("string") && value.get("default") != null) { + pair = Pair.create(value.get("type").toString(), "\"" + value.get("default") + "\""); + } else if (value.get("type").toString().equals("string") && value.get("default") == null) { + pair = Pair.create(value.get("type").toString(), ""); + } else if (value.get("default") == null) { + pair = Pair.create(value.get("type").toString(), ""); + } else { + pair = Pair.create(value.get("type").toString(), value.get("default")); + } + envParametersMap.put(parameter.getKey(), pair); + } + } + } |