summaryrefslogtreecommitdiffstats
path: root/csarvalidation/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'csarvalidation/README.md')
-rw-r--r--csarvalidation/README.md90
1 files changed, 90 insertions, 0 deletions
diff --git a/csarvalidation/README.md b/csarvalidation/README.md
new file mode 100644
index 0000000..b6192f8
--- /dev/null
+++ b/csarvalidation/README.md
@@ -0,0 +1,90 @@
+CSAR Validation
+===============
+Validates CSAR based on
+* ETSI SOL004 specification
+* ONAP VNFREQS & PNFREQS
+
+Every validation aspect is modeled as one test cases using Open Command Specification (OCS) 1.o
+and by using Open CLI Platform (OCLIP), those test cases are executed similar to running commands
+
+SOL004 specification is implemented in org.onap.cvc.csar.CSARArchive class by supporting both the
+options one with TOSCA-meta and another one without TOSCA-meta. This class could be used as SDK for
+parsing the given CSAR.
+
+Every VNFREQS & PNFREQS is implemented as independent test case and following guidelines provide
+required steps to add test cases.
+
+How to add new test cases?
+--------------------------
+Assume that we want to address the VNFREQS R02454 as one test case.
+
+1. Create new OCS yaml vtp-validate-csar-r02454.yaml under src/main/resources/open-cli-schema folder
+
+NOTE:
+Name of the file should be always in the form of vtp-validate-csar-<VNFREWQS-Number>.yaml
+Inside this YAML, add name as csar-validate-<VNFREWQS-Number>.
+Remaining section would be same as other existing OCS YAML.
+
+2. Add corresponding implementation class under src/main/java/org/onap/cvc/csar/cc/VTPValidateCSARR02454.java
+
+NOTE:
+Add @OnapCommandSchema(schema = "vtp-validate-csar-r02454.yaml") annotation to the class, where the schema will
+have OCS YAML file name
+
+3. Add required CSARError inside this class and set unique error code using CSARError::setSubCode() method
+
+4. Implement the run() method in this class by using the below code snippet
+
+ protected void run() throws OnapCommandException {
+ //Read the input arguments
+ String path = (String) getParametersMap().get("csar").getValue();
+ List<CSARError> errors = new ArrayList<>();
+ //execute
+ try {
+ CSARArchive csar = new CSARArchive();
+ csar.init(path);
+ csar.parse();
+
+ // *********** ADD REQUIRED VALIDATION ************
+
+ csar.cleanup();
+ } catch (Exception e) {
+ LOG.error("R-40293: ", e);
+ throw new OnapCommandExecutionFailed(e.getMessage());
+ }
+
+ this.getResult().setOutput(errors);
+
+ //set the result
+ for (CSARError e: errors) {
+ this.getResult().getRecordsMap().get("code").getValues().add(e.getCode());
+ this.getResult().getRecordsMap().get("message").getValues().add(e.getMessage());
+ this.getResult().getRecordsMap().get("file").getValues().add(e.getFile());
+ this.getResult().getRecordsMap().get("line-no").getValues().add(Integer.toString(e.getLineNumber()));
+ }
+ }
+
+5. Add the new class into src/main/resources/META-INF/services/org.onap.cli.fw.cmd.OnapCommand file
+
+6. Run the test cases at src/test/java/org/onap/cvc/csar/CsarValidatorTest and verify that it picked up the new test cases.
+
+How to configure vnfreqs.properties
+-----------------------------------
+
+1. To enable the given vnfreqs, edit vnfreqs.enabled with required VNFREQS number
+
+2. To ignore certian errors, use errors.ignored.
+
+How to run CSAR validation
+--------------------------
+Follow the setups given below to run as csar-validate command
+
+1. Install OCLIP (wget https://raw.githubusercontent.com/onap/cli/master/deployment/zip/installer/install-latest.sh | sh)
+
+2. Run mvn clean install on this project, and copy the target/validation-csar-x.y.z.jar in to $OPEN_CLI_HOME/lib
+
+3. Run oclip --product onap-vtp csar-validate --csar <CSAR path>
+
+Contact
+-------
+Kanagaraj.Manickam@huawei.com \ No newline at end of file