From 0dcd1eef24541d074edcf3c8640b38cf7528ef6b Mon Sep 17 00:00:00 2001 From: PriyanshuAgarwal Date: Mon, 22 Jan 2018 20:15:01 +0200 Subject: [PATCH] configuration overriding capabilities. Updated files in SDC Parser Library. Change-Id: I885f0a155e52e337f776f74ef5675c080eecfaa8 Issue-ID: SDC-955 Signed-off-by: priyanshu --- .../tosca/parser/config/ConfigurationManager.java | 3 ++ .../sdc/tosca/parser/config/ErrorInfo.java | 10 ++++ .../sdc/tosca/parser/impl/SdcCsarHelperImpl.java | 59 ++++++++++++++------- .../tosca/parser/impl/SdcToscaParserFactory.java | 2 +- src/main/resources/config/error-configuration.yaml | 6 ++- .../sdc/impl/ToscaParserConfigurationTest.java | 20 +++++++ .../sdc/impl/ToscaParserMetadataTest.java | 30 ++++++++++- .../resources/config/error-configuration-test.yaml | 22 ++++++++ src/test/resources/config/error-configuration.yaml | 4 ++ .../csars/service-missing-csar-meta-file.csar | Bin 0 -> 45132 bytes 10 files changed, 135 insertions(+), 21 deletions(-) create mode 100644 src/test/resources/config/error-configuration-test.yaml create mode 100644 src/test/resources/csars/service-missing-csar-meta-file.csar diff --git a/src/main/java/org/openecomp/sdc/tosca/parser/config/ConfigurationManager.java b/src/main/java/org/openecomp/sdc/tosca/parser/config/ConfigurationManager.java index 72c06ed..f2fc903 100644 --- a/src/main/java/org/openecomp/sdc/tosca/parser/config/ConfigurationManager.java +++ b/src/main/java/org/openecomp/sdc/tosca/parser/config/ConfigurationManager.java @@ -118,4 +118,7 @@ public class ConfigurationManager { public Configuration getConfiguration() { return (Configuration) configurations.get((Configuration.class.getSimpleName())); } + public void setErrorConfiguration(String fileName) { + loadConfigurationClass(ErrorConfiguration.class, fileName); + } } diff --git a/src/main/java/org/openecomp/sdc/tosca/parser/config/ErrorInfo.java b/src/main/java/org/openecomp/sdc/tosca/parser/config/ErrorInfo.java index 01df115..34983ef 100644 --- a/src/main/java/org/openecomp/sdc/tosca/parser/config/ErrorInfo.java +++ b/src/main/java/org/openecomp/sdc/tosca/parser/config/ErrorInfo.java @@ -24,6 +24,7 @@ public class ErrorInfo { private String code; private String message; + private boolean failOnError; public String getCode() { return code; @@ -40,10 +41,19 @@ public class ErrorInfo { public void setMessage(String message) { this.message = message; } + + public boolean getFailOnError() { + return failOnError; + } + + public void setFailOnError(boolean failOnError) { + this.failOnError = failOnError; + } public void cloneData(ErrorInfo other) { this.code = other.getCode(); this.message = other.getMessage(); + this.failOnError = other.getFailOnError(); } } diff --git a/src/main/java/org/openecomp/sdc/tosca/parser/impl/SdcCsarHelperImpl.java b/src/main/java/org/openecomp/sdc/tosca/parser/impl/SdcCsarHelperImpl.java index 7b94000..901b315 100644 --- a/src/main/java/org/openecomp/sdc/tosca/parser/impl/SdcCsarHelperImpl.java +++ b/src/main/java/org/openecomp/sdc/tosca/parser/impl/SdcCsarHelperImpl.java @@ -27,6 +27,7 @@ import java.util.stream.Collectors; import org.apache.commons.lang3.tuple.ImmutablePair; import org.apache.commons.lang3.tuple.Pair; import org.openecomp.sdc.tosca.parser.api.ISdcCsarHelper; +import org.openecomp.sdc.tosca.parser.config.ConfigurationManager; import org.openecomp.sdc.toscaparser.api.CapabilityAssignments; import org.openecomp.sdc.tosca.parser.utils.GeneralUtility; import org.openecomp.sdc.toscaparser.api.RequirementAssignments; @@ -46,12 +47,18 @@ public class SdcCsarHelperImpl implements ISdcCsarHelper { private static final String PATH_DELIMITER = "#"; private static final String CUSTOMIZATION_UUID = "customizationUUID"; private ToscaTemplate toscaTemplate; + private ConfigurationManager configurationManager; private static Logger log = LoggerFactory.getLogger(SdcCsarHelperImpl.class.getName()); public SdcCsarHelperImpl(ToscaTemplate toscaTemplate) { this.toscaTemplate = toscaTemplate; } + public SdcCsarHelperImpl(ToscaTemplate toscaTemplate, ConfigurationManager configurationManager) { + this.toscaTemplate = toscaTemplate; + this.configurationManager = configurationManager; + } + @Override //Sunny flow - covered with UT, flat and nested public String getNodeTemplatePropertyLeafValue(NodeTemplate nodeTemplate, String leafValuePath) { @@ -579,24 +586,40 @@ public class SdcCsarHelperImpl implements ISdcCsarHelper { return nodeTemplate.getTypeDefinition().getType(); } - @Override - public String getConformanceLevel() { - LinkedHashMap csarMeta = toscaTemplate.getMetaProperties("csar.meta"); - if (csarMeta == null){ - log.warn("No csar.meta file is found in CSAR - this file should hold the conformance level of the CSAR. This might be OK for older CSARs."); - return null; - } - - Object conformanceLevel = csarMeta.get("SDC-TOSCA-Definitions-Version"); - if (conformanceLevel != null){ - String confLevelStr = conformanceLevel.toString(); - log.debug("CSAR conformance level is {}", confLevelStr); - return confLevelStr; - } else { - log.error("Invalid csar.meta file - no entry found for SDC-TOSCA-Definitions-Version key. This entry should hold the conformance level."); - return null; - } - } + /** + * This methdd is returning the csarConformanceLevel for input CSAR + * When csarConformanceLevel is configured with failOnError as False in Error Configuration; it + * assigns the default value to csarConformanceLevel which is the max level provided in + * Configuration file + * @return csarConformanceLevel + */ + @Override + public String getConformanceLevel() { + LinkedHashMap csarMeta = toscaTemplate.getMetaProperties("csar.meta"); + if (csarMeta == null){ + log.warn("No csar.meta file is found in CSAR - this file should hold the conformance level of the CSAR. This might be OK for older CSARs."); + if (configurationManager != null && !configurationManager.getErrorConfiguration() + .getErrorInfo("CONFORMANCE_LEVEL_ERROR").getFailOnError()){ + String csarConLevel = configurationManager.getConfiguration().getConformanceLevel().getMaxVersion(); + log.warn("csarConformanceLevel is not found in input csar; defaulting to max version {}" , csarConLevel); + return csarConLevel; + } + else { + log.warn("csarConformanceLevel is not found in input csar; returning null as no defaults defined in error configuration"); + return null; + } + } + + Object conformanceLevel = csarMeta.get("SDC-TOSCA-Definitions-Version"); + if (conformanceLevel != null){ + String confLevelStr = conformanceLevel.toString(); + log.debug("CSAR conformance level is {}", confLevelStr); + return confLevelStr; + } else { + log.error("Invalid csar.meta file - no entry found for SDC-TOSCA-Definitions-Version key. This entry should hold the conformance level."); + return null; + } + } @Override diff --git a/src/main/java/org/openecomp/sdc/tosca/parser/impl/SdcToscaParserFactory.java b/src/main/java/org/openecomp/sdc/tosca/parser/impl/SdcToscaParserFactory.java index f1a03b7..9fc59f2 100644 --- a/src/main/java/org/openecomp/sdc/tosca/parser/impl/SdcToscaParserFactory.java +++ b/src/main/java/org/openecomp/sdc/tosca/parser/impl/SdcToscaParserFactory.java @@ -77,7 +77,7 @@ public class SdcToscaParserFactory { } catch (JToscaException e) { throwSdcToscaParserException(e); } - SdcCsarHelperImpl sdcCsarHelperImpl = new SdcCsarHelperImpl(tosca); + SdcCsarHelperImpl sdcCsarHelperImpl = new SdcCsarHelperImpl(tosca, configurationManager); String cSarConformanceLevel = sdcCsarHelperImpl.getConformanceLevel(); validateCsarVersion(cSarConformanceLevel); try { diff --git a/src/main/resources/config/error-configuration.yaml b/src/main/resources/config/error-configuration.yaml index 3febd33..58d1de3 100644 --- a/src/main/resources/config/error-configuration.yaml +++ b/src/main/resources/config/error-configuration.yaml @@ -2,17 +2,21 @@ errors: FILE_NOT_FOUND: { code: TP0001, + failOnError: true, message: "Error: CSAR file not found." } BAD_FORMAT: { code: TP0002, + failOnError: true, message: "Error: CSAR file bad format. Check the log for details." } CONFORMANCE_LEVEL_ERROR: { code: TP0003, + failOnError: true, message: "Error: CSAR version is unsupported. Parser supports versions %s to %s." } GENERAL_ERROR: { code: TP0004, + failOnError: true, message: "Error: an unexpected internal error occured." - } \ No newline at end of file + } diff --git a/src/test/java/org/openecomp/sdc/impl/ToscaParserConfigurationTest.java b/src/test/java/org/openecomp/sdc/impl/ToscaParserConfigurationTest.java index 8c96303..b815064 100644 --- a/src/test/java/org/openecomp/sdc/impl/ToscaParserConfigurationTest.java +++ b/src/test/java/org/openecomp/sdc/impl/ToscaParserConfigurationTest.java @@ -1,12 +1,14 @@ package org.openecomp.sdc.impl; import org.openecomp.sdc.tosca.parser.config.ErrorConfiguration; +import org.openecomp.sdc.tosca.parser.config.JtoscaValidationIssueConfiguration; import org.testng.annotations.Test; import org.openecomp.sdc.tosca.parser.config.Configuration; import org.openecomp.sdc.tosca.parser.config.ConfigurationManager; import java.io.IOException; +import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertNotNull; public class ToscaParserConfigurationTest extends SdcToscaParserBasicTest { @@ -28,4 +30,22 @@ public class ToscaParserConfigurationTest extends SdcToscaParserBasicTest { assertNotNull(errorConfig.getErrors()); } + @Test + public void testSetErrorConfiguration() throws IOException { + ConfigurationManager configurationManager = ConfigurationManager.getInstance(); + configurationManager.setErrorConfiguration("error-configuration-test.yaml"); + ErrorConfiguration errorConfig = configurationManager.getErrorConfiguration(); + assertEquals(false, errorConfig.getErrorInfo("CONFORMANCE_LEVEL_ERROR").getFailOnError()); + assertEquals(true, errorConfig.getErrorInfo("FILE_NOT_FOUND").getFailOnError()); + } + + @Test + public void testSetJtoscaValidationIssueConfiguration() throws IOException { + ConfigurationManager configurationManager = ConfigurationManager.getInstance(); + configurationManager.setJtoscaValidationIssueConfiguration( + "jtosca-validation-issue-configuration-test.yaml"); + JtoscaValidationIssueConfiguration issueConfig = configurationManager + .getJtoscaValidationIssueConfiguration(); + assertNotNull(issueConfig); + } } diff --git a/src/test/java/org/openecomp/sdc/impl/ToscaParserMetadataTest.java b/src/test/java/org/openecomp/sdc/impl/ToscaParserMetadataTest.java index 4e5c9bc..65c013a 100644 --- a/src/test/java/org/openecomp/sdc/impl/ToscaParserMetadataTest.java +++ b/src/test/java/org/openecomp/sdc/impl/ToscaParserMetadataTest.java @@ -1,8 +1,11 @@ package org.openecomp.sdc.impl; +import org.openecomp.sdc.tosca.parser.api.ISdcCsarHelper; +import org.openecomp.sdc.tosca.parser.config.ConfigurationManager; +import org.openecomp.sdc.tosca.parser.exceptions.SdcToscaParserException; import org.openecomp.sdc.toscaparser.api.NodeTemplate; -import org.testng.annotations.Test; import org.openecomp.sdc.toscaparser.api.elements.Metadata; +import org.testng.annotations.Test; import java.util.List; import java.util.Map; @@ -187,5 +190,30 @@ public class ToscaParserMetadataTest extends SdcToscaParserBasicTest { assertEquals(serviceEcompNaming, "true"); } //endregion + + @Test + public void testCSARMissingConformanceLevelWithCustomErrorConfig() throws + SdcToscaParserException { + ConfigurationManager configurationManager = ConfigurationManager.getInstance(); + configurationManager.setErrorConfiguration("error-configuration-test.yaml"); + factory.setConfigurationManager(configurationManager); + + ISdcCsarHelper missingCSARMetaCsarCustomConfig = getCsarHelper + ("csars/service-missing-csar-meta-file.csar"); + String conformanceLevel = missingCSARMetaCsarCustomConfig.getConformanceLevel(); + assertNotNull(conformanceLevel); + assertEquals(conformanceLevel, configurationManager.getConfiguration().getConformanceLevel() + .getMaxVersion()); + + configurationManager.setErrorConfiguration("error-configuration.yaml"); + factory.setConfigurationManager(configurationManager); + } + + @Test(expectedExceptions = SdcToscaParserException.class) + public void testCSARMissingConformanceLevelWithDefaultErrorConfig() throws + SdcToscaParserException { + ISdcCsarHelper missingCSARMetaCsarDefaultConfig = getCsarHelper("csars/service-missing-csar-meta-file.csar"); + missingCSARMetaCsarDefaultConfig.getConformanceLevel(); + } } diff --git a/src/test/resources/config/error-configuration-test.yaml b/src/test/resources/config/error-configuration-test.yaml new file mode 100644 index 0000000..f5c20aa --- /dev/null +++ b/src/test/resources/config/error-configuration-test.yaml @@ -0,0 +1,22 @@ +# Errors +errors: + FILE_NOT_FOUND: { + code: TP0001, + failOnError: true, + message: "Error: CSAR file not found." + } + BAD_FORMAT: { + code: TP0002, + failOnError: true, + message: "Error: CSAR file bad format. Check the log for details." + } + CONFORMANCE_LEVEL_ERROR: { + code: TP0003, + failOnError: false, + message: "Error: CSAR version is unsupported. Parser supports versions %s to %s." + } + GENERAL_ERROR: { + code: TP0004, + failOnError: true, + message: "Error: an unexpected internal error occured." + } \ No newline at end of file diff --git a/src/test/resources/config/error-configuration.yaml b/src/test/resources/config/error-configuration.yaml index 3febd33..44173cd 100644 --- a/src/test/resources/config/error-configuration.yaml +++ b/src/test/resources/config/error-configuration.yaml @@ -2,17 +2,21 @@ errors: FILE_NOT_FOUND: { code: TP0001, + failOnError: true, message: "Error: CSAR file not found." } BAD_FORMAT: { code: TP0002, + failOnError: true, message: "Error: CSAR file bad format. Check the log for details." } CONFORMANCE_LEVEL_ERROR: { code: TP0003, + failOnError: true, message: "Error: CSAR version is unsupported. Parser supports versions %s to %s." } GENERAL_ERROR: { code: TP0004, + failOnError: true, message: "Error: an unexpected internal error occured." } \ No newline at end of file diff --git a/src/test/resources/csars/service-missing-csar-meta-file.csar b/src/test/resources/csars/service-missing-csar-meta-file.csar new file mode 100644 index 0000000000000000000000000000000000000000..7c753146d739f098f494b1d387d7e0a3b06a4978 GIT binary patch literal 45132 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 literal 0 HcmV?d00001 -- 2.16.6