aboutsummaryrefslogtreecommitdiffstats
path: root/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/services/impl/HeatFileAnalyzerRowDataImpl.java
diff options
context:
space:
mode:
Diffstat (limited to 'openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/services/impl/HeatFileAnalyzerRowDataImpl.java')
-rw-r--r--openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/services/impl/HeatFileAnalyzerRowDataImpl.java218
1 files changed, 105 insertions, 113 deletions
diff --git a/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/services/impl/HeatFileAnalyzerRowDataImpl.java b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/services/impl/HeatFileAnalyzerRowDataImpl.java
index 04d240a8e6..fffdaef75a 100644
--- a/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/services/impl/HeatFileAnalyzerRowDataImpl.java
+++ b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/services/impl/HeatFileAnalyzerRowDataImpl.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,134 +17,126 @@
* limitations under the License.
* ============LICENSE_END=========================================================
*/
-
package org.openecomp.sdc.vendorsoftwareproduct.services.impl;
+import java.io.BufferedReader;
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Optional;
+import java.util.Set;
+import java.util.regex.Pattern;
import org.openecomp.sdc.vendorsoftwareproduct.services.HeatFileAnalyzer;
import org.openecomp.sdc.vendorsoftwareproduct.types.candidateheat.AnalyzedZipHeatFiles;
-import java.io.*;
-import java.util.*;
-import java.util.regex.Pattern;
-
public class HeatFileAnalyzerRowDataImpl implements HeatFileAnalyzer {
- private static final String HEAT_IDENTIFIER_REGEX = "^heat_template_version:.*";
- private static final String HEAT_RESOURCES_REGEX = "^resources:\\s*$";
- private static final String HEAT_PARAMETERS_REGEX = "^parameters:\\s*$";
- private static final String HEAT_CONDITIONS_REGEX = "^conditions:\\s*$";
- private static final String HEAT_OUTPUTS_REGEX = "^outputs:\\s*$";
- private static final String HEAT_PARAMETER_GROUP_REGEX = "^parameter_groups:\\s*$";
- private static final String HEAT_DESCRIPTION_REGEX = "^description:\\s*$";
- //allowing spaces at start followed by 'type:' + spaces + any characters + ('.yml' or '.yaml')+
- // spaces
- private static final String HEAT_NESTED_RESOURCE_REGEX = "\\s*type:\\s*\\S*.(yml|yaml)\\s*$";
-
-
- private static final String IDENTIFIER = "IDENTIFIER";
- private static final String RESOURCES = "RESOURCES";
- private static final String PARAMETERS = "PARAMETERS";
- private static final String CONDITIONS = "CONDITIONS";
- private static final String OUTPUTS = "OUTPUTS";
- private static final String PARAMETER_GROUP = "PARAMETER_GROUP";
- private static final String DESCRIPTION = "DESCRIPTION";
- private static final String NESTED_PATTERN = "NESTED_PATTERN";
-
- private final Map<String, Pattern> patterns;
-
- public HeatFileAnalyzerRowDataImpl() {
- patterns = new HashMap<>();
- patterns.put(IDENTIFIER, Pattern.compile(HEAT_IDENTIFIER_REGEX));
- patterns.put(RESOURCES, Pattern.compile(HEAT_RESOURCES_REGEX));
- patterns.put(PARAMETERS, Pattern.compile(HEAT_PARAMETERS_REGEX));
- patterns.put(CONDITIONS, Pattern.compile(HEAT_CONDITIONS_REGEX));
- patterns.put(OUTPUTS, Pattern.compile(HEAT_OUTPUTS_REGEX));
- patterns.put(PARAMETER_GROUP, Pattern.compile(HEAT_PARAMETER_GROUP_REGEX));
- patterns.put(DESCRIPTION, Pattern.compile(HEAT_DESCRIPTION_REGEX));
- patterns.put(NESTED_PATTERN, Pattern.compile(HEAT_NESTED_RESOURCE_REGEX));
- }
-
- @Override
- public AnalyzedZipHeatFiles analyzeFilesNotEligibleForModulesFromFileAnalyzer(Map<String, byte[]> files)
- throws IOException {
- AnalyzedZipHeatFiles analyzedZipHeatFiles = new AnalyzedZipHeatFiles();
- for (Map.Entry<String, byte[]> fileData : files.entrySet()) {
- String fileName = fileData.getKey();
- if (!HeatFileAnalyzer.isYamlFile(fileName)) {
- analyzedZipHeatFiles.addOtherNonModuleFile(fileName);
- continue;
- }
-
- boolean foundHeatIdentifier = false;
- try (InputStream is = new ByteArrayInputStream(fileData.getValue());
- BufferedReader bfReader = new BufferedReader(new InputStreamReader(is))) {
+ private static final String HEAT_IDENTIFIER_REGEX = "^heat_template_version:.*";
+ private static final String HEAT_RESOURCES_REGEX = "^resources:\\s*$";
+ private static final String HEAT_PARAMETERS_REGEX = "^parameters:\\s*$";
+ private static final String HEAT_CONDITIONS_REGEX = "^conditions:\\s*$";
+ private static final String HEAT_OUTPUTS_REGEX = "^outputs:\\s*$";
+ private static final String HEAT_PARAMETER_GROUP_REGEX = "^parameter_groups:\\s*$";
+ private static final String HEAT_DESCRIPTION_REGEX = "^description:\\s*$";
+ //allowing spaces at start followed by 'type:' + spaces + any characters + ('.yml' or '.yaml')+
+
+ // spaces
+ private static final String HEAT_NESTED_RESOURCE_REGEX = "\\s*type:\\s*\\S*.(yml|yaml)\\s*$";
+ private static final String IDENTIFIER = "IDENTIFIER";
+ private static final String RESOURCES = "RESOURCES";
+ private static final String PARAMETERS = "PARAMETERS";
+ private static final String CONDITIONS = "CONDITIONS";
+ private static final String OUTPUTS = "OUTPUTS";
+ private static final String PARAMETER_GROUP = "PARAMETER_GROUP";
+ private static final String DESCRIPTION = "DESCRIPTION";
+ private static final String NESTED_PATTERN = "NESTED_PATTERN";
+ private final Map<String, Pattern> patterns;
+
+ public HeatFileAnalyzerRowDataImpl() {
+ patterns = new HashMap<>();
+ patterns.put(IDENTIFIER, Pattern.compile(HEAT_IDENTIFIER_REGEX));
+ patterns.put(RESOURCES, Pattern.compile(HEAT_RESOURCES_REGEX));
+ patterns.put(PARAMETERS, Pattern.compile(HEAT_PARAMETERS_REGEX));
+ patterns.put(CONDITIONS, Pattern.compile(HEAT_CONDITIONS_REGEX));
+ patterns.put(OUTPUTS, Pattern.compile(HEAT_OUTPUTS_REGEX));
+ patterns.put(PARAMETER_GROUP, Pattern.compile(HEAT_PARAMETER_GROUP_REGEX));
+ patterns.put(DESCRIPTION, Pattern.compile(HEAT_DESCRIPTION_REGEX));
+ patterns.put(NESTED_PATTERN, Pattern.compile(HEAT_NESTED_RESOURCE_REGEX));
+ }
- String line;
- boolean isResourcesSection = false;
- Set<String> nestedFilesNames = new HashSet<>();
- while ((line = bfReader.readLine()) != null) {
- if (!foundHeatIdentifier && isMatch(patterns.get(IDENTIFIER), line)) {
- foundHeatIdentifier = true;
- analyzedZipHeatFiles.addModuleFile(fileName);
- if (isResourcesSection) // it means the identifier is located after the resources
- // section
- {
- break;
+ @Override
+ public AnalyzedZipHeatFiles analyzeFilesNotEligibleForModulesFromFileAnalyzer(Map<String, byte[]> files) throws IOException {
+ AnalyzedZipHeatFiles analyzedZipHeatFiles = new AnalyzedZipHeatFiles();
+ for (Map.Entry<String, byte[]> fileData : files.entrySet()) {
+ String fileName = fileData.getKey();
+ if (!HeatFileAnalyzer.isYamlFile(fileName)) {
+ analyzedZipHeatFiles.addOtherNonModuleFile(fileName);
+ continue;
}
- } else if (isMatch(patterns.get(RESOURCES), line)) {
- isResourcesSection = true;
- } else if (isResourceSectionEnd(line, isResourcesSection)) {
- if (foundHeatIdentifier) {
- break;
+ boolean foundHeatIdentifier = false;
+ try (InputStream is = new ByteArrayInputStream(fileData.getValue()); BufferedReader bfReader = new BufferedReader(
+ new InputStreamReader(is))) {
+ String line;
+ boolean isResourcesSection = false;
+ Set<String> nestedFilesNames = new HashSet<>();
+ while ((line = bfReader.readLine()) != null) {
+ if (!foundHeatIdentifier && isMatch(patterns.get(IDENTIFIER), line)) {
+ foundHeatIdentifier = true;
+ analyzedZipHeatFiles.addModuleFile(fileName);
+ if (isResourcesSection) // it means the identifier is located after the resources
+
+ // section
+ {
+ break;
+ }
+ } else if (isMatch(patterns.get(RESOURCES), line)) {
+ isResourcesSection = true;
+ } else if (isResourceSectionEnd(line, isResourcesSection)) {
+ if (foundHeatIdentifier) {
+ break;
+ }
+ } else if (isResourcesSection) {
+ Optional<String> optionalNestedFileName = fetchNestedFileName(line);
+ optionalNestedFileName.ifPresent(nestedFilesNames::add);
+ }
+ }
+ analyzedZipHeatFiles.addNestedFiles(fetchFileNamesToReturn(nestedFilesNames, foundHeatIdentifier));
}
- } else if (isResourcesSection) {
- Optional<String> optionalNestedFileName = fetchNestedFileName(line);
- optionalNestedFileName
- .ifPresent(nestedFilesNames::add);
- }
}
- analyzedZipHeatFiles.addNestedFiles(fetchFileNamesToReturn(nestedFilesNames,
- foundHeatIdentifier));
- }
+ return analyzedZipHeatFiles;
}
- return analyzedZipHeatFiles;
- }
-
- private Optional<String> fetchNestedFileName(String line) {
- if (isMatch(patterns.get(NESTED_PATTERN), line)) {
- String trimmedLine = line.trim();
- String nestedFileName = trimmedLine
- .substring(trimmedLine.indexOf("type:") + "type:".length(), trimmedLine.length())
- .trim();
- return Optional.of(nestedFileName);
+ private Optional<String> fetchNestedFileName(String line) {
+ if (isMatch(patterns.get(NESTED_PATTERN), line)) {
+ String trimmedLine = line.trim();
+ String nestedFileName = trimmedLine.substring(trimmedLine.indexOf("type:") + "type:".length(), trimmedLine.length()).trim();
+ return Optional.of(nestedFileName);
+ }
+ return Optional.empty();
}
- return Optional.empty();
- }
- private Set<String> fetchFileNamesToReturn(Set<String> filesNamesToReturn,
- boolean foundHeatIdentifier) {
- if (!foundHeatIdentifier) {
- return new HashSet<>();
- } else {
- return filesNamesToReturn;
+ private Set<String> fetchFileNamesToReturn(Set<String> filesNamesToReturn, boolean foundHeatIdentifier) {
+ if (!foundHeatIdentifier) {
+ return new HashSet<>();
+ } else {
+ return filesNamesToReturn;
+ }
}
- }
- private boolean isResourceSectionEnd(String line, boolean isResourcesSection) {
- return isResourcesSection && isStartOfNonResourcesHeatSection(line);
- }
-
- private boolean isStartOfNonResourcesHeatSection(String line) {
- return isMatch(patterns.get(PARAMETERS), line) ||
- isMatch(patterns.get(CONDITIONS), line) ||
- isMatch(patterns.get(OUTPUTS), line) ||
- isMatch(patterns.get(PARAMETER_GROUP), line) ||
- isMatch(patterns.get(DESCRIPTION), line);
- }
+ private boolean isResourceSectionEnd(String line, boolean isResourcesSection) {
+ return isResourcesSection && isStartOfNonResourcesHeatSection(line);
+ }
- private boolean isMatch(Pattern pattern, String line) {
- return pattern.matcher(line).matches();
- }
+ private boolean isStartOfNonResourcesHeatSection(String line) {
+ return isMatch(patterns.get(PARAMETERS), line) || isMatch(patterns.get(CONDITIONS), line) || isMatch(patterns.get(OUTPUTS), line) || isMatch(
+ patterns.get(PARAMETER_GROUP), line) || isMatch(patterns.get(DESCRIPTION), line);
+ }
+ private boolean isMatch(Pattern pattern, String line) {
+ return pattern.matcher(line).matches();
+ }
}