From 273cc6b1a3be92fbb712f7655d9e6cb9ed66b59a Mon Sep 17 00:00:00 2001 From: "Tufman, Shay (st198j)" Date: Wed, 4 Jul 2018 16:44:47 +0300 Subject: [PATCH] remove mac validation remove max conformance level validation Change-Id: I09672789d6819b52010bc6f1383e0eca25e664e1 Issue-ID: SDC-1465 Signed-off-by: Tufman, Shay (st198j) --- .../tosca/parser/impl/SdcToscaParserFactory.java | 12 ++--- src/main/resources/config/configuration.yaml | 2 +- src/main/resources/config/error-configuration.yaml | 2 +- .../sdc/impl/ToscaParserErrorHandlingTest.java | 54 +++++---------------- .../resources/config/error-configuration-test.yaml | 2 +- src/test/resources/config/error-configuration.yaml | 2 +- .../csars/service-max-conformence-level.csar | Bin 0 -> 45194 bytes 7 files changed, 20 insertions(+), 54 deletions(-) create mode 100644 src/test/resources/csars/service-max-conformence-level.csar diff --git a/src/main/java/org/onap/sdc/tosca/parser/impl/SdcToscaParserFactory.java b/src/main/java/org/onap/sdc/tosca/parser/impl/SdcToscaParserFactory.java index bc8d1b1..3293a58 100644 --- a/src/main/java/org/onap/sdc/tosca/parser/impl/SdcToscaParserFactory.java +++ b/src/main/java/org/onap/sdc/tosca/parser/impl/SdcToscaParserFactory.java @@ -10,7 +10,6 @@ import org.onap.sdc.tosca.parser.config.JToscaValidationIssueInfo; import org.onap.sdc.tosca.parser.config.SdcToscaParserErrors; import org.onap.sdc.tosca.parser.utils.GeneralUtility; import org.onap.sdc.tosca.parser.api.ISdcCsarHelper; -import org.onap.sdc.tosca.parser.config.*; import org.onap.sdc.tosca.parser.exceptions.SdcToscaParserException; import org.onap.sdc.toscaparser.api.ToscaTemplate; import org.onap.sdc.toscaparser.api.common.JToscaValidationIssue; @@ -170,13 +169,12 @@ public class SdcToscaParserFactory { private void validateCsarVersion(String cSarVersion) throws SdcToscaParserException { ConformanceLevel level = configurationManager.getConfiguration().getConformanceLevel(); String minVersion = level.getMinVersion(); - String maxVersion = level.getMaxVersion(); if (cSarVersion != null) { - if ((GeneralUtility.conformanceLevelCompare(cSarVersion, minVersion) < 0) || (GeneralUtility.conformanceLevelCompare(cSarVersion, maxVersion) > 0)) { - throwConformanceLevelException(minVersion, maxVersion); + if (GeneralUtility.conformanceLevelCompare(cSarVersion, minVersion) < 0) { + throwConformanceLevelException(minVersion); } } else { - throwConformanceLevelException(minVersion, maxVersion); + throwConformanceLevelException(minVersion); } } @@ -188,9 +186,9 @@ public class SdcToscaParserFactory { } return false; } - private void throwConformanceLevelException(String minVersion, String maxVersion) throws SdcToscaParserException { + private void throwConformanceLevelException(String minVersion) throws SdcToscaParserException { ErrorInfo errorInfo = configurationManager.getErrorConfiguration().getErrorInfo(SdcToscaParserErrors.CONFORMANCE_LEVEL_ERROR.toString()); - throw new SdcToscaParserException(String.format(errorInfo.getMessage(), minVersion, maxVersion), errorInfo.getCode()); + throw new SdcToscaParserException(String.format(errorInfo.getMessage(), minVersion), errorInfo.getCode()); } private void throwSdcToscaParserException(JToscaException e) throws SdcToscaParserException { diff --git a/src/main/resources/config/configuration.yaml b/src/main/resources/config/configuration.yaml index e5e28f2..9872ff0 100644 --- a/src/main/resources/config/configuration.yaml +++ b/src/main/resources/config/configuration.yaml @@ -1,3 +1,3 @@ conformanceLevel: minVersion: '3.0' - maxVersion: '8.0' \ No newline at end of file + maxVersion: '9.0' \ No newline at end of file diff --git a/src/main/resources/config/error-configuration.yaml b/src/main/resources/config/error-configuration.yaml index 58d1de3..ff9c6ed 100644 --- a/src/main/resources/config/error-configuration.yaml +++ b/src/main/resources/config/error-configuration.yaml @@ -13,7 +13,7 @@ errors: CONFORMANCE_LEVEL_ERROR: { code: TP0003, failOnError: true, - message: "Error: CSAR version is unsupported. Parser supports versions %s to %s." + message: "Error: CSAR version is unsupported. Parser supports versions from %s." } GENERAL_ERROR: { code: TP0004, diff --git a/src/test/java/org/onap/sdc/impl/ToscaParserErrorHandlingTest.java b/src/test/java/org/onap/sdc/impl/ToscaParserErrorHandlingTest.java index d022a1a..1e0dd0a 100644 --- a/src/test/java/org/onap/sdc/impl/ToscaParserErrorHandlingTest.java +++ b/src/test/java/org/onap/sdc/impl/ToscaParserErrorHandlingTest.java @@ -9,48 +9,6 @@ import org.onap.sdc.tosca.parser.exceptions.SdcToscaParserException; import org.onap.sdc.toscaparser.api.utils.JToscaErrorCodes; -/*put(JToscaErrorCodes.GENERAL_ERROR, GENERAL_ERROR); - -put(JToscaErrorCodes.PATH_NOT_VALID, FILE_NOT_FOUND); -//CSAR contents problems -put(JToscaErrorCodes.MISSING_META_FILE, BAD_FORMAT); -put(JToscaErrorCodes.INVALID_META_YAML_CONTENT, BAD_FORMAT); -put(JToscaErrorCodes.ENTRY_DEFINITION_NOT_DEFINED, BAD_FORMAT); -put(JToscaErrorCodes.MISSING_ENTRY_DEFINITION_FILE, BAD_FORMAT); -put(JToscaErrorCodes.CSAR_TOSCA_VALIDATION_ERROR, BAD_FORMAT); - - MISSING_META_FILE("JT1001"), -/* INVALID_META_YAML_CONTENT("JT1002"), -/* ENTRY_DEFINITION_NOT_DEFINED("JT1003"), -/* MISSING_ENTRY_DEFINITION_FILE("JT1004"), -/* GENERAL_ERROR("JT1005"), -/* PATH_NOT_VALID("JT1006"), -/* CSAR_TOSCA_VALIDATION_ERROR("JT1007"); - -*/ - -/* - * - * # Errors -errors: - FILE_NOT_FOUND: { - code: TP0001, - message: "Error: CSAR file not found." - } - BAD_FORMAT: { - code: TP0002, - message: "Error: CSAR file bad format. Check the log for details." - } - CONFORMANCE_LEVEL_ERROR: { - code: TP0003, - message: "Error: CSAR version is unsupported. Parser supports versions %s to %s." - } - GENERAL_ERROR: { - code: TP0004, - message: "Error: an unexpected internal error occured." - } - * - */ public class ToscaParserErrorHandlingTest extends SdcToscaParserBasicTest { @@ -102,13 +60,23 @@ public class ToscaParserErrorHandlingTest extends SdcToscaParserBasicTest { } @Test - public void testInValidConformanceLevelError(){ + public void testInValidMinConformanceLevelError(){ String csarPath = "csars/service-invalid-conformence-level.csar"; String fileLocationString = ToscaParserErrorHandlingTest.class.getClassLoader().getResource(csarPath).getFile(); File file = new File(fileLocationString); Throwable captureThrowable = captureThrowable(file.getAbsolutePath()); testThrowable(captureThrowable, "TP0003"); } + + @Test + public void testIgnoreMaxConformanceLevelNoError(){ + String csarPath = "csars/service-max-conformence-level.csar"; + //TODO: Currently, the conformentce level of the csar for this test is 99 (hard coded). Consider to add ability to replace the configuration in run time. + String fileLocationString = ToscaParserErrorHandlingTest.class.getClassLoader().getResource(csarPath).getFile(); + File file = new File(fileLocationString); + Throwable captureThrowable = captureThrowable(file.getAbsolutePath()); + assertNull(captureThrowable); + } @Test public void testFileNotFound(){ diff --git a/src/test/resources/config/error-configuration-test.yaml b/src/test/resources/config/error-configuration-test.yaml index f5c20aa..de603c6 100644 --- a/src/test/resources/config/error-configuration-test.yaml +++ b/src/test/resources/config/error-configuration-test.yaml @@ -13,7 +13,7 @@ errors: CONFORMANCE_LEVEL_ERROR: { code: TP0003, failOnError: false, - message: "Error: CSAR version is unsupported. Parser supports versions %s to %s." + message: "Error: CSAR version is unsupported. Parser supports versions from %s." } GENERAL_ERROR: { code: TP0004, diff --git a/src/test/resources/config/error-configuration.yaml b/src/test/resources/config/error-configuration.yaml index 44173cd..296c681 100644 --- a/src/test/resources/config/error-configuration.yaml +++ b/src/test/resources/config/error-configuration.yaml @@ -13,7 +13,7 @@ errors: CONFORMANCE_LEVEL_ERROR: { code: TP0003, failOnError: true, - message: "Error: CSAR version is unsupported. Parser supports versions %s to %s." + message: "Error: CSAR version is unsupported. Parser supports versions from %s." } GENERAL_ERROR: { code: TP0004, diff --git a/src/test/resources/csars/service-max-conformence-level.csar b/src/test/resources/csars/service-max-conformence-level.csar new file mode 100644 index 0000000000000000000000000000000000000000..0cbb8722e129a7b69a6e852bc7fbaf220cba5827 GIT binary patch literal 45194 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 mA(ZRr_!rH-G01yQ{9Y=`z<_