summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--csarvalidation/src/main/java/org/onap/cvc/csar/CSARArchive.java82
-rw-r--r--csarvalidation/src/main/java/org/onap/cvc/csar/VTPValidateCSAR.java4
-rw-r--r--csarvalidation/src/main/java/org/onap/cvc/csar/cc/VTPValidateCSARBase.java (renamed from csarvalidation/src/main/java/org/onap/cvc/csar/cc/VTPValidateCSARR26881.java)43
-rw-r--r--csarvalidation/src/main/java/org/onap/cvc/csar/cc/VTPValidateCSARR02454.java119
-rw-r--r--csarvalidation/src/main/java/org/onap/cvc/csar/cc/VTPValidateCSARR04298.java81
-rw-r--r--csarvalidation/src/main/java/org/onap/cvc/csar/cc/VTPValidateCSARR07879.java81
-rw-r--r--csarvalidation/src/main/java/org/onap/cvc/csar/cc/VTPValidateCSARR09467.java114
-rw-r--r--csarvalidation/src/main/java/org/onap/cvc/csar/cc/VTPValidateCSARR13390.java81
-rw-r--r--csarvalidation/src/main/java/org/onap/cvc/csar/cc/VTPValidateCSARR23823.java81
-rw-r--r--csarvalidation/src/main/java/org/onap/cvc/csar/cc/VTPValidateCSARR27310.java82
-rw-r--r--csarvalidation/src/main/java/org/onap/cvc/csar/cc/VTPValidateCSARR35851.java120
-rw-r--r--csarvalidation/src/main/java/org/onap/cvc/csar/cc/VTPValidateCSARR40293.java81
-rw-r--r--csarvalidation/src/main/java/org/onap/cvc/csar/cc/VTPValidateCSARR43958.java81
-rw-r--r--csarvalidation/src/main/java/org/onap/cvc/csar/cc/VTPValidateCSARR66070.java85
-rw-r--r--csarvalidation/src/main/java/org/onap/cvc/csar/cc/VTPValidateCSARR77707.java83
-rw-r--r--csarvalidation/src/main/java/org/onap/cvc/csar/cc/VTPValidateCSARR77786.java81
-rw-r--r--csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol001/VTPValidateCSARR09467.java69
-rw-r--r--csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol001/VTPValidateCSARR15837.java36
-rw-r--r--csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol001/VTPValidateCSARR17852.java34
-rw-r--r--csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol001/VTPValidateCSARR32155.java36
-rw-r--r--csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol001/VTPValidateCSARR35851.java70
-rw-r--r--csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol001/VTPValidateCSARR35854.java36
-rw-r--r--csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol001/VTPValidateCSARR46527.java35
-rw-r--r--csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol001/VTPValidateCSARR54356.java36
-rw-r--r--csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol001/VTPValidateCSARR65486.java36
-rw-r--r--csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol001/VTPValidateCSARR67895.java34
-rw-r--r--csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol001/VTPValidateCSARR95321.java36
-rw-r--r--csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR01123.java49
-rw-r--r--csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR02454.java69
-rw-r--r--csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR04298.java46
-rw-r--r--csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR07879.java45
-rw-r--r--csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR10087.java46
-rw-r--r--csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR13390.java45
-rw-r--r--csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR21322.java46
-rw-r--r--csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR23823.java46
-rw-r--r--csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR26881.java46
-rw-r--r--csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR26885.java46
-rw-r--r--csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR27310.java46
-rw-r--r--csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR40293.java45
-rw-r--r--csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR40820.java46
-rw-r--r--csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR43958.java45
-rw-r--r--csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR51347.java43
-rw-r--r--csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR66070.java47
-rw-r--r--csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR77707.java47
-rw-r--r--csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR77786.java46
-rw-r--r--csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR87234.java48
-rw-r--r--csarvalidation/src/main/resources/META-INF/services/org.onap.cli.fw.cmd.OnapCommand44
-rw-r--r--csarvalidation/src/main/resources/open-cli-schema/hot/vtp-validate-hot.yaml (renamed from csarvalidation/src/main/resources/open-cli-schema/vtp-validate-hot.yaml)0
-rw-r--r--csarvalidation/src/main/resources/open-cli-schema/obsolute/vtp-validate-csar-casablanca.yaml (renamed from csarvalidation/src/main/resources/open-cli-schema/vtp-validate-csar-casablanca.yaml)0
-rw-r--r--csarvalidation/src/main/resources/open-cli-schema/sol001/vtp-validate-csar-r09467.yaml (renamed from csarvalidation/src/main/resources/open-cli-schema/vtp-validate-csar-r09467.yaml)0
-rw-r--r--csarvalidation/src/main/resources/open-cli-schema/sol001/vtp-validate-csar-r15837.yaml54
-rw-r--r--csarvalidation/src/main/resources/open-cli-schema/sol001/vtp-validate-csar-r17852.yaml55
-rw-r--r--csarvalidation/src/main/resources/open-cli-schema/sol001/vtp-validate-csar-r32155.yaml55
-rw-r--r--csarvalidation/src/main/resources/open-cli-schema/sol001/vtp-validate-csar-r35851.yaml (renamed from csarvalidation/src/main/resources/open-cli-schema/vtp-validate-csar-r35851.yaml)0
-rw-r--r--csarvalidation/src/main/resources/open-cli-schema/sol001/vtp-validate-csar-r35854.yaml57
-rw-r--r--csarvalidation/src/main/resources/open-cli-schema/sol001/vtp-validate-csar-r46527.yaml69
-rw-r--r--csarvalidation/src/main/resources/open-cli-schema/sol001/vtp-validate-csar-r54356.yaml55
-rw-r--r--csarvalidation/src/main/resources/open-cli-schema/sol001/vtp-validate-csar-r65486.yaml55
-rw-r--r--csarvalidation/src/main/resources/open-cli-schema/sol001/vtp-validate-csar-r67895.yaml55
-rw-r--r--csarvalidation/src/main/resources/open-cli-schema/sol001/vtp-validate-csar-r95321.yaml55
-rw-r--r--csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r01123.yaml60
-rw-r--r--csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r02454.yaml (renamed from csarvalidation/src/main/resources/open-cli-schema/vtp-validate-csar-r02454.yaml)0
-rw-r--r--csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r04298.yaml (renamed from csarvalidation/src/main/resources/open-cli-schema/vtp-validate-csar-r04298.yaml)0
-rw-r--r--csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r07879.yaml (renamed from csarvalidation/src/main/resources/open-cli-schema/vtp-validate-csar-r07879.yaml)0
-rw-r--r--csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r10087.yaml56
-rw-r--r--csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r13390.yaml (renamed from csarvalidation/src/main/resources/open-cli-schema/vtp-validate-csar-r13390.yaml)0
-rw-r--r--csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r21322.yaml55
-rw-r--r--csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r23823.yaml (renamed from csarvalidation/src/main/resources/open-cli-schema/vtp-validate-csar-r23823.yaml)0
-rw-r--r--csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r26881.yaml (renamed from csarvalidation/src/main/resources/open-cli-schema/vtp-validate-csar-r26881.yaml)0
-rw-r--r--csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r26885.yaml57
-rw-r--r--csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r27310.yaml (renamed from csarvalidation/src/main/resources/open-cli-schema/vtp-validate-csar-r27310.yaml)0
-rw-r--r--csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r40293.yaml (renamed from csarvalidation/src/main/resources/open-cli-schema/vtp-validate-csar-r40293.yaml)0
-rw-r--r--csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r40820.yaml55
-rw-r--r--csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r43958.yaml (renamed from csarvalidation/src/main/resources/open-cli-schema/vtp-validate-csar-r43958.yaml)0
-rw-r--r--csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r51347.yaml57
-rw-r--r--csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r66070.yaml (renamed from csarvalidation/src/main/resources/open-cli-schema/vtp-validate-csar-r66070.yaml)0
-rw-r--r--csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r77707.yaml (renamed from csarvalidation/src/main/resources/open-cli-schema/vtp-validate-csar-r77707.yaml)0
-rw-r--r--csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r77786.yaml (renamed from csarvalidation/src/main/resources/open-cli-schema/vtp-validate-csar-r77786.yaml)0
-rw-r--r--csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r87234.yaml56
-rw-r--r--csarvalidation/src/main/resources/open-cli-schema/vtp-validate-csar.yaml2
-rw-r--r--csarvalidation/src/main/resources/vnfreqs.properties2
82 files changed, 2353 insertions, 1256 deletions
diff --git a/.gitignore b/.gitignore
index e3af7a9..89c60b9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,7 @@
bin/
target/
tmp/
+data/
coverage-report/
.project
.settings
diff --git a/csarvalidation/src/main/java/org/onap/cvc/csar/CSARArchive.java b/csarvalidation/src/main/java/org/onap/cvc/csar/CSARArchive.java
index c8f16e5..e94ff88 100644
--- a/csarvalidation/src/main/java/org/onap/cvc/csar/CSARArchive.java
+++ b/csarvalidation/src/main/java/org/onap/cvc/csar/CSARArchive.java
@@ -135,9 +135,9 @@ public class CSARArchive {
this.code = code;
}
- private String code;
+ private String vnfreqNo;
- private String subCode;
+ private String code;
protected String message = "";
@@ -177,6 +177,14 @@ public class CSARArchive {
this.lineNumber = lineNumber;
}
+ public String getVnfreqNo() {
+ return this.vnfreqNo;
+ }
+
+ public void setVnfreqNo(String no) {
+ this.vnfreqNo = no;
+ }
+
public String toString() {
try {
return new ObjectMapper().writeValueAsString(this);
@@ -185,22 +193,6 @@ public class CSARArchive {
return "{}";
}
}
-
- public String getSubCode() {
- return subCode;
- }
-
- public void setSubCode(String subCode) {
- this.subCode = subCode;
- }
-
- public String getErrorCode() {
- if (this.getSubCode() != null) {
- return this.getSubCode();
- }
-
- return this.getCode();
- }
}
public static class CSARErrorInvalidEntry extends CSARError {
@@ -217,6 +209,11 @@ public class CSARArchive {
public static class CSARErrorInvalidEntryValue extends CSARError {
public CSARErrorInvalidEntryValue(String entry, String file, int lineNo, String message, String validValues) {
+ this(entry, file, message, validValues);
+ this.lineNumber = lineNo;
+ }
+
+ public CSARErrorInvalidEntryValue(String entry, String file, String message, String validValues) {
super("0x1001");
this.message = "Invalid value. Entry [" + entry + "]";
if (validValues != null) {
@@ -228,7 +225,6 @@ public class CSARArchive {
}
this.file = file;
- this.lineNumber = lineNo;
}
}
@@ -242,6 +238,12 @@ public class CSARArchive {
this.file = file;
this.lineNumber = lineNo;
}
+
+ public CSARErrorEntryMissing(String entry, String file) {
+ super("0x1002");
+ this.message = "Missing. Entry [" + entry + "]";
+ this.file = file;
+ }
}
@@ -317,7 +319,7 @@ public class CSARArchive {
definitionYaml,
-1,
null);
- this.setSubCode("0x001");
+ this.setCode("0x001");
}
}
@@ -329,7 +331,7 @@ public class CSARArchive {
null,
Entry_Definition__tosca_definitions_version__simple_1_1);
- this.setSubCode("0x0002");
+ this.setCode("0x0002");
}
}
@@ -341,7 +343,7 @@ public class CSARArchive {
-1,
null);
- this.setSubCode("0x0003");
+ this.setCode("0x0003");
}
}
@@ -353,7 +355,7 @@ public class CSARArchive {
-1,
null);
- this.setSubCode("0x0004");
+ this.setCode("0x0004");
}
}
@@ -365,7 +367,7 @@ public class CSARArchive {
-1,
null);
- this.setSubCode("0x0005");
+ this.setCode("0x0005");
}
}
@@ -377,7 +379,7 @@ public class CSARArchive {
definitionYaml + " does not exist",
null);
- this.setSubCode("0x0006");
+ this.setCode("0x0006");
}
}
@@ -389,7 +391,7 @@ public class CSARArchive {
manifest + " does not exist",
null);
- this.setSubCode("0x0007");
+ this.setCode("0x0007");
}
}
@@ -401,7 +403,7 @@ public class CSARArchive {
logs + " does not exist",
null);
- this.setSubCode("0x0008");
+ this.setCode("0x0008");
}
}
@@ -413,7 +415,7 @@ public class CSARArchive {
tests + " folder does not exist",
null);
- this.setSubCode("0x0009");
+ this.setCode("0x0009");
}
}
@@ -425,7 +427,7 @@ public class CSARArchive {
license + " does not exist",
null);
- this.setSubCode("0x000a");
+ this.setCode("0x000a");
}
}
@@ -437,7 +439,7 @@ public class CSARArchive {
certificate + " does not exist",
null);
- this.setSubCode("0x000b");
+ this.setCode("0x000b");
}
}
@@ -448,7 +450,7 @@ public class CSARArchive {
-1,
null);
- this.setSubCode("0x000c");
+ this.setCode("0x000c");
}
}
@@ -459,7 +461,7 @@ public class CSARArchive {
-1,
null);
- this.setSubCode("0x000d");
+ this.setCode("0x000d");
}
}
@@ -470,7 +472,7 @@ public class CSARArchive {
-1,
null);
- this.setSubCode("0x000e");
+ this.setCode("0x000e");
}
}
@@ -481,7 +483,7 @@ public class CSARArchive {
-1,
null);
- this.setSubCode("0x000f");
+ this.setCode("0x000f");
}
}
@@ -492,7 +494,7 @@ public class CSARArchive {
-1,
null);
- this.setSubCode("0x0010");
+ this.setCode("0x0010");
}
}
@@ -504,7 +506,7 @@ public class CSARArchive {
"Only one definition YAML should be provided at the root of the archive",
fileNames);
- this.setSubCode("0x0011");
+ this.setCode("0x0011");
}
}
@@ -517,7 +519,7 @@ public class CSARArchive {
"Only one manifest MF file should be provided at the root of the archive",
fileNames);
- this.setSubCode("0x0012");
+ this.setCode("0x0012");
}
}
@@ -530,7 +532,7 @@ public class CSARArchive {
definitionYaml + ".mf", //fix the name part
manifest);
- this.setSubCode("0x0013");
+ this.setCode("0x0013");
}
}
@@ -542,7 +544,7 @@ public class CSARArchive {
"Only one certificates file should be provided at the root of the archive",
fileNames);
- this.setSubCode("0x0014");
+ this.setCode("0x0014");
}
}
@@ -555,7 +557,7 @@ public class CSARArchive {
definitionYaml + ".cert", //fix the name part
certificate);
- this.setSubCode("0x0015");
+ this.setCode("0x0015");
}
}
diff --git a/csarvalidation/src/main/java/org/onap/cvc/csar/VTPValidateCSAR.java b/csarvalidation/src/main/java/org/onap/cvc/csar/VTPValidateCSAR.java
index c480332..6a8e3bd 100644
--- a/csarvalidation/src/main/java/org/onap/cvc/csar/VTPValidateCSAR.java
+++ b/csarvalidation/src/main/java/org/onap/cvc/csar/VTPValidateCSAR.java
@@ -210,7 +210,7 @@ public class VTPValidateCSAR extends OnapCommand {
resultSOL004.setPassed(true);
for (CSARError error: resultSOL004.getErrors()) {
- if (!ignoreCodes.contains(error.getErrorCode())) {
+ if (!ignoreCodes.contains(error.getCode())) {
resultSOL004.setPassed(false);
overallPass = false;
break;
@@ -236,7 +236,7 @@ public class VTPValidateCSAR extends OnapCommand {
result.setPassed(true);
for (CSARError error: result.getErrors()) {
- if (!ignoreCodes.contains(error.getErrorCode())) {
+ if (!ignoreCodes.contains(error.getCode())) {
result.setPassed(false);
overallPass = false;
break;
diff --git a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/VTPValidateCSARR26881.java b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/VTPValidateCSARBase.java
index e9efd38..d07884d 100644
--- a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/VTPValidateCSARR26881.java
+++ b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/VTPValidateCSARBase.java
@@ -22,60 +22,47 @@ import java.util.List;
import org.onap.cli.fw.cmd.OnapCommand;
import org.onap.cli.fw.error.OnapCommandException;
import org.onap.cli.fw.error.OnapCommandExecutionFailed;
-import org.onap.cli.fw.schema.OnapCommandSchema;
import org.onap.cvc.csar.CSARArchive;
import org.onap.cvc.csar.CSARArchive.CSARError;
-import org.onap.cvc.csar.CSARArchive.CSARErrorEntryMissing;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-/**
- * R-26881: VNF artifacts
- */
-@OnapCommandSchema(schema = "vtp-validate-csar-r26881.yaml")
-public class VTPValidateCSARR26881 extends OnapCommand {
- private static final Logger LOG = LoggerFactory.getLogger(VTPValidateCSARR26881.class);
+public abstract class VTPValidateCSARBase extends OnapCommand {
+ protected static final Logger LOG = LoggerFactory.getLogger(VTPValidateCSARBase.class);
- public static class CSARErrorEntryMissingArtifactsNotFound extends CSARErrorEntryMissing {
- public CSARErrorEntryMissingArtifactsNotFound() {
- super(
- "Artifacts",
- CSARArchive.CSAR_Archive,
- -1,
- "The VNF provider MUST provide the binaries and images needed to instantiate the VNF (VNF and VNFC images).");
- this.setSubCode("r26881-0x1000");
- }
- }
+ protected abstract void validateCSAR(CSARArchive csar) throws Exception;
+
+ protected abstract String getVnfReqsNo();
+
+ protected List<CSARError> errors = new ArrayList<>();
@Override
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();
- if (!csar.getFileFromCsar("artifacts").exists()) {
- errors.add(new CSARErrorEntryMissingArtifactsNotFound());
- }
+ this.validateCSAR(csar);
csar.cleanup();
} catch (Exception e) {
- LOG.error("R-26881: ", e);
+ LOG.error(this.getVnfReqsNo() + ": Failed to validate CSAR" , 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());
+ for (CSARError e: this.errors) {
+ e.setVnfreqNo(this.getVnfReqsNo());
+ this.getResult().getRecordsMap().get("code").getValues().add(this.getVnfReqsNo() + "-" + 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()));
}
+
+ this.getResult().setOutput(this.errors);
}
}
diff --git a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/VTPValidateCSARR02454.java b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/VTPValidateCSARR02454.java
deleted file mode 100644
index c77db76..0000000
--- a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/VTPValidateCSARR02454.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- * Copyright 2017 Huawei Technologies Co., Ltd.
- *
- * 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.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.onap.cvc.csar.cc;
-
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
-import org.onap.cli.fw.cmd.OnapCommand;
-import org.onap.cli.fw.error.OnapCommandException;
-import org.onap.cli.fw.error.OnapCommandExecutionFailed;
-import org.onap.cli.fw.schema.OnapCommandSchema;
-import org.onap.cvc.csar.CSARArchive;
-import org.onap.cvc.csar.CSARArchive.CSARError;
-import org.onap.cvc.csar.CSARArchive.CSARErrorEntryMissing;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.yaml.snakeyaml.Yaml;
-
-/**
- * R-02454: The VNF MUST support the existence of multiple major/minor
- * versions of the VNF software and/or sub-components and interfaces that
- * support both forward and backward compatibility to be transparent to the
- * Service Provider usage.
- */
-@OnapCommandSchema(schema = "vtp-validate-csar-r02454.yaml")
-public class VTPValidateCSARR02454 extends OnapCommand {
- private static final Logger LOG = LoggerFactory.getLogger(VTPValidateCSARR02454.class);
-
- public static class CSARErrorEntryMissingSwImage extends CSARErrorEntryMissing {
- public CSARErrorEntryMissingSwImage(String defYaml, String entry) {
- super(
- entry,
- defYaml,
- -1,
- "The VNF MUST support the existence of multiple major/minor versions "
- + "of the VNF software and/or sub-components and interfaces that support both "
- + "forward and backward compatibility to be transparent to the Service Provider usage.");
- this.setSubCode("r02454-0x1000");
- }
- }
-
- private List<CSARError> validate(CSARArchive csar) throws FileNotFoundException, IOException {
- List<CSARError> errors = new ArrayList<>();
-
- try(FileInputStream ipStream = new FileInputStream(csar.getDefinitionYamlFile())) {
- Map<String, ?> yaml = (Map<String, ?>) new Yaml().load(ipStream);
- yaml = (Map<String, ?>) yaml.get("topology_template");
- Map<String, ?> nodeTmpls = (Map<String,?>) yaml.get("node_templates");
-
- boolean vlExist = false;
-
- for (Object nodeO: nodeTmpls.values()) {
- Map<String, ?> node = (Map<String, ?>) nodeO;
- if (node.containsKey("type")) {
- String type = (String)node.get("type");
- if (type.equalsIgnoreCase("tosca.artifacts.nfv.SwImage")) {
- vlExist = true;
- break;
- }
- }
- }
-
- if (!vlExist)
- errors.add(new CSARErrorEntryMissingSwImage(
- csar.getDefinitionYamlFile().getName(),
- "Software Image"));
- }
-
- return errors;
- }
-
- @Override
- 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();
-
- errors = this.validate(csar);
-
- csar.cleanup();
- } catch (Exception e) {
- LOG.error("R-02454: ", 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()));
- }
- }
-}
diff --git a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/VTPValidateCSARR04298.java b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/VTPValidateCSARR04298.java
deleted file mode 100644
index 3c2ffd5..0000000
--- a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/VTPValidateCSARR04298.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Copyright 2017 Huawei Technologies Co., Ltd.
- *
- * 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.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.onap.cvc.csar.cc;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.onap.cli.fw.cmd.OnapCommand;
-import org.onap.cli.fw.error.OnapCommandException;
-import org.onap.cli.fw.error.OnapCommandExecutionFailed;
-import org.onap.cli.fw.schema.OnapCommandSchema;
-import org.onap.cvc.csar.CSARArchive;
-import org.onap.cvc.csar.CSARArchive.CSARError;
-import org.onap.cvc.csar.CSARArchive.CSARErrorEntryMissing;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * R-04298: VNF provider MUST provider their testing scripts to support testing.
- */
-@OnapCommandSchema(schema = "vtp-validate-csar-r04298.yaml")
-public class VTPValidateCSARR04298 extends OnapCommand {
- private static final Logger LOG = LoggerFactory.getLogger(VTPValidateCSARR04298.class);
-
- public static class CSARErrorEntryMissingTestFolderNotFound extends CSARErrorEntryMissing {
- public CSARErrorEntryMissingTestFolderNotFound() {
- super(
- "Tests",
- CSARArchive.CSAR_Archive,
- -1,
- "The VNF provider MUST provide their testing scripts to support testing.");
- this.setSubCode("r04298-0x1000");
- }
- }
-
- @Override
- 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();
-
- if (csar.getTestsFolder() == null) {
- errors.add(new CSARErrorEntryMissingTestFolderNotFound());
- }
-
- csar.cleanup();
- } catch (Exception e) {
- LOG.error("R-04298: ", 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()));
- }
- }
-}
diff --git a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/VTPValidateCSARR07879.java b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/VTPValidateCSARR07879.java
deleted file mode 100644
index 8f975cc..0000000
--- a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/VTPValidateCSARR07879.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Copyright 2017 Huawei Technologies Co., Ltd.
- *
- * 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.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.onap.cvc.csar.cc;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.onap.cli.fw.cmd.OnapCommand;
-import org.onap.cli.fw.error.OnapCommandException;
-import org.onap.cli.fw.error.OnapCommandExecutionFailed;
-import org.onap.cli.fw.schema.OnapCommandSchema;
-import org.onap.cvc.csar.CSARArchive;
-import org.onap.cvc.csar.CSARArchive.CSARError;
-import org.onap.cvc.csar.CSARArchive.CSARErrorEntryMissing;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * R-07879: playbooks directory
- */
-@OnapCommandSchema(schema = "vtp-validate-csar-r07879.yaml")
-public class VTPValidateCSARR07879 extends OnapCommand {
- private static final Logger LOG = LoggerFactory.getLogger(VTPValidateCSARR07879.class);
-
- public static class CSARErrorEntryMissingAnsiblePlaybookNotFound extends CSARErrorEntryMissing {
- public CSARErrorEntryMissingAnsiblePlaybookNotFound() {
- super(
- "playbooks",
- CSARArchive.CSAR_Archive,
- -1,
- "The VNF Package MUST include all relevant playbooks to ONAP to be loaded on the Ansible Server.");
- this.setSubCode("r07879-0x1000");
- }
- }
-
- @Override
- 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();
-
- if (!csar.getFileFromCsar("playbooks").exists()) {
- errors.add(new CSARErrorEntryMissingAnsiblePlaybookNotFound());
- }
-
- csar.cleanup();
- } catch (Exception e) {
- LOG.error("R-07879: ", 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()));
- }
- }
-}
diff --git a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/VTPValidateCSARR09467.java b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/VTPValidateCSARR09467.java
deleted file mode 100644
index 8ce3a23..0000000
--- a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/VTPValidateCSARR09467.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * Copyright 2017 Huawei Technologies Co., Ltd.
- *
- * 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.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.onap.cvc.csar.cc;
-
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
-import org.onap.cli.fw.cmd.OnapCommand;
-import org.onap.cli.fw.error.OnapCommandException;
-import org.onap.cli.fw.error.OnapCommandExecutionFailed;
-import org.onap.cli.fw.schema.OnapCommandSchema;
-import org.onap.cvc.csar.CSARArchive;
-import org.onap.cvc.csar.CSARArchive.CSARError;
-import org.onap.cvc.csar.CSARArchive.CSARErrorEntryMissing;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.yaml.snakeyaml.Yaml;
-
-/**
- * R-09467: The VNF MUST utilize only NCSP standard compute flavors. [5] - compute, virtual storage
- */
-@OnapCommandSchema(schema = "vtp-validate-csar-r09467.yaml")
-public class VTPValidateCSARR09467 extends OnapCommand {
- private static final Logger LOG = LoggerFactory.getLogger(VTPValidateCSARR09467.class);
-
- public static class CSARErrorEntryMissingFlavor extends CSARErrorEntryMissing {
- public CSARErrorEntryMissingFlavor(String defYaml, String entry) {
- super(
- entry,
- defYaml,
- -1,
- "The VNF MUST utilize only NCSP standard compute flavors. [5] - compute, virtual storage");
- this.setSubCode("r09467-0x1000");
- }
- }
-
- private List<CSARError> validate(CSARArchive csar) throws FileNotFoundException, IOException {
- List<CSARError> errors = new ArrayList<>();
-
- try(FileInputStream ipStream = new FileInputStream(csar.getDefinitionYamlFile())) {
- Map<String, ?> yaml = (Map<String, ?>) new Yaml().load(ipStream);
- yaml = (Map<String, ?>) yaml.get("topology_template");
- Map<String, ?> nodeTmpls = (Map<String,?>) yaml.get("node_templates");
-
- boolean vlExist = false;
-
- for (Object nodeO: nodeTmpls.values()) {
- Map<String, ?> node = (Map<String, ?>) nodeO;
- if (node.containsKey("type")) {
- String type = (String)node.get("type");
- if (type.equalsIgnoreCase("tosca.nodes.nfv.VDU.Compute")) {
- vlExist = true;
- break;
- }
- }
- }
-
- if (!vlExist)
- errors.add(new CSARErrorEntryMissingFlavor(
- csar.getDefinitionYamlFile().getName(),
- "Flavor"));
- }
-
- return errors;
- }
-
- @Override
- 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();
-
- errors = this.validate(csar);
-
- csar.cleanup();
- } catch (Exception e) {
- LOG.error("R-09467: ", 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()));
- }
- }
-}
diff --git a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/VTPValidateCSARR13390.java b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/VTPValidateCSARR13390.java
deleted file mode 100644
index 6c44ee6..0000000
--- a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/VTPValidateCSARR13390.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Copyright 2017 Huawei Technologies Co., Ltd.
- *
- * 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.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.onap.cvc.csar.cc;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.onap.cli.fw.cmd.OnapCommand;
-import org.onap.cli.fw.error.OnapCommandException;
-import org.onap.cli.fw.error.OnapCommandExecutionFailed;
-import org.onap.cli.fw.schema.OnapCommandSchema;
-import org.onap.cvc.csar.CSARArchive;
-import org.onap.cvc.csar.CSARArchive.CSARError;
-import org.onap.cvc.csar.CSARArchive.CSARErrorEntryMissing;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * R-r13390: cookbooks directory
- */
-@OnapCommandSchema(schema = "vtp-validate-csar-r13390.yaml")
-public class VTPValidateCSARR13390 extends OnapCommand {
- private static final Logger LOG = LoggerFactory.getLogger(VTPValidateCSARR13390.class);
-
- public static class CSARErrorEntryMissingAnsiblePlaybookNotFound extends CSARErrorEntryMissing {
- public CSARErrorEntryMissingAnsiblePlaybookNotFound() {
- super(
- "cookbooks",
- CSARArchive.CSAR_Archive,
- -1,
- "The VNF provider MUST provide cookbooks to be loaded on the appropriate Chef Server.");
- this.setSubCode("r13390-0x1000");
- }
- }
-
- @Override
- 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();
-
- if (!csar.getFileFromCsar("playbooks").exists()) {
- errors.add(new CSARErrorEntryMissingAnsiblePlaybookNotFound());
- }
-
- csar.cleanup();
- } catch (Exception e) {
- LOG.error("R-13390: ", 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()));
- }
- }
-}
diff --git a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/VTPValidateCSARR23823.java b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/VTPValidateCSARR23823.java
deleted file mode 100644
index f8a0385..0000000
--- a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/VTPValidateCSARR23823.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Copyright 2017 Huawei Technologies Co., Ltd.
- *
- * 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.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.onap.cvc.csar.cc;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.onap.cli.fw.cmd.OnapCommand;
-import org.onap.cli.fw.error.OnapCommandException;
-import org.onap.cli.fw.error.OnapCommandExecutionFailed;
-import org.onap.cli.fw.schema.OnapCommandSchema;
-import org.onap.cvc.csar.CSARArchive;
-import org.onap.cvc.csar.CSARArchive.CSARError;
-import org.onap.cvc.csar.CSARArchive.CSARErrorEntryMissing;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * R-04298: VNF provider MUST provider their testing scripts to support testing.
- */
-@OnapCommandSchema(schema = "vtp-validate-csar-r23823.yaml")
-public class VTPValidateCSARR23823 extends OnapCommand {
- private static final Logger LOG = LoggerFactory.getLogger(VTPValidateCSARR23823.class);
-
- public static class CSARErrorEntryMissingCertificatesNotFound extends CSARErrorEntryMissing {
- public CSARErrorEntryMissingCertificatesNotFound() {
- super(
- "Certificates",
- CSARArchive.CSAR_Archive,
- -1,
- "The VNF Package MUST include appropriate credentials so that ONAP can interact with the Chef Server");
- this.setSubCode("r23823-0x1000");
- }
- }
-
- @Override
- 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();
-
- if (csar.getCertificatesFile() == null) {
- errors.add(new CSARErrorEntryMissingCertificatesNotFound());
- }
-
- csar.cleanup();
- } catch (Exception e) {
- LOG.error("R-23823: ", 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()));
- }
- }
-}
diff --git a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/VTPValidateCSARR27310.java b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/VTPValidateCSARR27310.java
deleted file mode 100644
index 7b2e25a..0000000
--- a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/VTPValidateCSARR27310.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Copyright 2017 Huawei Technologies Co., Ltd.
- *
- * 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.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.onap.cvc.csar.cc;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.onap.cli.fw.cmd.OnapCommand;
-import org.onap.cli.fw.error.OnapCommandException;
-import org.onap.cli.fw.error.OnapCommandExecutionFailed;
-import org.onap.cli.fw.schema.OnapCommandSchema;
-import org.onap.cvc.csar.CSARArchive;
-import org.onap.cvc.csar.CSARArchive.CSARError;
-import org.onap.cvc.csar.CSARArchive.CSARErrorEntryMissing;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * R-27310: Manifest file
- */
-@OnapCommandSchema(schema = "vtp-validate-csar-r27310.yaml")
-public class VTPValidateCSARR27310 extends OnapCommand {
- private static final Logger LOG = LoggerFactory.getLogger(VTPValidateCSARR27310.class);
-
- public static class CSARErrorEntryMissingChefArtifactsNotFound extends CSARErrorEntryMissing {
- public CSARErrorEntryMissingChefArtifactsNotFound() {
- super(
- "cookbooks",
- CSARArchive.CSAR_Archive,
- -1,
- "The VNF Package MUST include all relevant Chef artifacts (roles/cookbooks/recipes) "
- + "required to execute VNF actions requested by ONAP for loading on appropriate Chef Server.");
- this.setSubCode("r27310-0x1000");
- }
- }
-
- @Override
- 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();
-
- if (!csar.getFileFromCsar("cookbooks").exists()) {
- errors.add(new CSARErrorEntryMissingChefArtifactsNotFound());
- }
-
- csar.cleanup();
- } catch (Exception e) {
- LOG.error("R-27310: ", 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()));
- }
- }
-}
diff --git a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/VTPValidateCSARR35851.java b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/VTPValidateCSARR35851.java
deleted file mode 100644
index 068b372..0000000
--- a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/VTPValidateCSARR35851.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * Copyright 2017 Huawei Technologies Co., Ltd.
- *
- * 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.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.onap.cvc.csar.cc;
-
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
-import org.onap.cli.fw.cmd.OnapCommand;
-import org.onap.cli.fw.error.OnapCommandException;
-import org.onap.cli.fw.error.OnapCommandExecutionFailed;
-import org.onap.cli.fw.schema.OnapCommandSchema;
-import org.onap.cvc.csar.CSARArchive;
-import org.onap.cvc.csar.CSARArchive.CSARError;
-import org.onap.cvc.csar.CSARArchive.CSARErrorEntryMissing;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.yaml.snakeyaml.Yaml;
-
-/**
- * R-35851: The VNF Package MUST include VNF topology that describes
- * basic network and application connectivity internal and external to the VNF
- * including Link type, KPIs, Bandwidth, latency, jitter, QoS
- * (if applicable) for each interface
- */
-@OnapCommandSchema(schema = "vtp-validate-csar-r35851.yaml")
-public class VTPValidateCSARR35851 extends OnapCommand {
- private static final Logger LOG = LoggerFactory.getLogger(VTPValidateCSARR35851.class);
-
- public static class CSARErrorEntryMissingDefinitionYamlTopology extends CSARErrorEntryMissing {
- public CSARErrorEntryMissingDefinitionYamlTopology(String defYaml, String entry) {
- super(
- entry,
- defYaml,
- -1,
- "The VNF Package MUST include VNF topology that describes basic "
- + "network and application connectivity internal and external to "
- + "the VNF including Link type, KPIs, Bandwidth, latency, jitter, "
- + "QoS (if applicable) for each interface");
- this.setSubCode("r35851-0x1000");
- }
- }
-
- private List<CSARError> validate(CSARArchive csar) throws FileNotFoundException, IOException {
- List<CSARError> errors = new ArrayList<>();
-
- try(FileInputStream ipStream = new FileInputStream(csar.getDefinitionYamlFile())) {
- Map<String, ?> yaml = (Map<String, ?>) new Yaml().load(ipStream);
- yaml = (Map<String, ?>) yaml.get("topology_template");
- Map<String, ?> nodeTmpls = (Map<String,?>) yaml.get("node_templates");
-
- boolean vlExist = false;
-
- for (Object nodeO: nodeTmpls.values()) {
- Map<String, ?> node = (Map<String, ?>) nodeO;
- if (node.containsKey("type")) {
- String type = (String)node.get("type");
- if (type.equalsIgnoreCase("tosca.nodes.nfv.VnfVirtualLink")) {
- vlExist = true;
- break;
- }
- }
- }
-
- if (!vlExist)
- errors.add(new CSARErrorEntryMissingDefinitionYamlTopology(
- csar.getDefinitionYamlFile().getName(),
- "Topology VL"));
- }
-
- return errors;
- }
-
- @Override
- 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();
-
- errors = this.validate(csar);
-
- csar.cleanup();
- } catch (Exception e) {
- LOG.error("R-35851: ", 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()));
- }
- }
-}
diff --git a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/VTPValidateCSARR40293.java b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/VTPValidateCSARR40293.java
deleted file mode 100644
index eaf0710..0000000
--- a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/VTPValidateCSARR40293.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Copyright 2017 Huawei Technologies Co., Ltd.
- *
- * 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.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.onap.cvc.csar.cc;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.onap.cli.fw.cmd.OnapCommand;
-import org.onap.cli.fw.error.OnapCommandException;
-import org.onap.cli.fw.error.OnapCommandExecutionFailed;
-import org.onap.cli.fw.schema.OnapCommandSchema;
-import org.onap.cvc.csar.CSARArchive;
-import org.onap.cvc.csar.CSARArchive.CSARError;
-import org.onap.cvc.csar.CSARArchive.CSARErrorEntryMissing;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * R-r40293: playbooks directory
- */
-@OnapCommandSchema(schema = "vtp-validate-csar-r40293.yaml")
-public class VTPValidateCSARR40293 extends OnapCommand {
- private static final Logger LOG = LoggerFactory.getLogger(VTPValidateCSARR40293.class);
-
- public static class CSARErrorEntryMissingAnsiblePlaybookNotFound extends CSARErrorEntryMissing {
- public CSARErrorEntryMissingAnsiblePlaybookNotFound() {
- super(
- "playbooks",
- CSARArchive.CSAR_Archive,
- -1,
- "The VNF MUST make available (or load on VNF Ansible Server) playbooks that conform to the ONAP requirement.");
- this.setSubCode("r40293-0x1000");
- }
- }
-
- @Override
- 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();
-
- if (!csar.getFileFromCsar("playbooks").exists()) {
- errors.add(new CSARErrorEntryMissingAnsiblePlaybookNotFound());
- }
-
- 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()));
- }
- }
-}
diff --git a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/VTPValidateCSARR43958.java b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/VTPValidateCSARR43958.java
deleted file mode 100644
index 10ae1c0..0000000
--- a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/VTPValidateCSARR43958.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Copyright 2017 Huawei Technologies Co., Ltd.
- *
- * 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.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.onap.cvc.csar.cc;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.onap.cli.fw.cmd.OnapCommand;
-import org.onap.cli.fw.error.OnapCommandException;
-import org.onap.cli.fw.error.OnapCommandExecutionFailed;
-import org.onap.cli.fw.schema.OnapCommandSchema;
-import org.onap.cvc.csar.CSARArchive;
-import org.onap.cvc.csar.CSARArchive.CSARError;
-import org.onap.cvc.csar.CSARArchive.CSARErrorEntryMissing;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * R-43958: Test reports
- */
-@OnapCommandSchema(schema = "vtp-validate-csar-r43958.yaml")
-public class VTPValidateCSARR43958 extends OnapCommand {
- private static final Logger LOG = LoggerFactory.getLogger(VTPValidateCSARR43958.class);
-
- public static class CSARErrorEntryMissingTestReportNotFound extends CSARErrorEntryMissing {
- public CSARErrorEntryMissingTestReportNotFound() {
- super(
- "Tests/report.txt",
- CSARArchive.CSAR_Archive,
- -1,
- "The VNF Package MUST include documentation describing the tests that were conducted by the VNF provider and the test results.");
- this.setSubCode("r43958-0x1000");
- }
- }
-
- @Override
- 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();
-
- if (!csar.getFileFromCsar("Tests/report.txt").exists()) {
- errors.add(new CSARErrorEntryMissingTestReportNotFound());
- }
-
- csar.cleanup();
- } catch (Exception e) {
- LOG.error("R-43958: ", 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()));
- }
- }
-}
diff --git a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/VTPValidateCSARR66070.java b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/VTPValidateCSARR66070.java
deleted file mode 100644
index 8d51c94..0000000
--- a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/VTPValidateCSARR66070.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * Copyright 2017 Huawei Technologies Co., Ltd.
- *
- * 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.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.onap.cvc.csar.cc;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.onap.cli.fw.cmd.OnapCommand;
-import org.onap.cli.fw.error.OnapCommandException;
-import org.onap.cli.fw.error.OnapCommandExecutionFailed;
-import org.onap.cli.fw.schema.OnapCommandSchema;
-import org.onap.cvc.csar.CSARArchive;
-import org.onap.cvc.csar.CSARArchive.CSARError;
-import org.onap.cvc.csar.CSARArchive.CSARErrorEntryMissing;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * R-66070: VNF provider details
- */
-@OnapCommandSchema(schema = "vtp-validate-csar-r66070.yaml")
-public class VTPValidateCSARR66070 extends OnapCommand {
- private static final Logger LOG = LoggerFactory.getLogger(VTPValidateCSARR66070.class);
-
- public static class CSARErrorEntryVNFProviderDetailsNotFound extends CSARErrorEntryMissing {
- public CSARErrorEntryVNFProviderDetailsNotFound() {
- super(
- "VNF Vendor details",
- CSARArchive.TOSCA_Metadata + " or " + CSARArchive.TOSCA_Metadata__TOSCA_Meta__Entry_Definitions + " file",
- -1,
- "The VNF Package MUST include VNF Identification Data to uniquely identify the"
- + " resource for a given VNF provider. The identification data must include: "
- + "an identifier for the VNF, the name of the VNF as was given by the VNF provider, "
- + "VNF description, VNF provider, and version.");
- this.setSubCode("r66070-0x1000");
- }
- }
-
- @Override
- 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();
-
- if (csar.getVendorName() == null ||
- csar.getVersion() == null) {
- errors.add(new CSARErrorEntryVNFProviderDetailsNotFound());
- }
- //do the validation
- csar.cleanup();
- } catch (Exception e) {
- LOG.error("R-66070: ", 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()));
- }
- }
-}
diff --git a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/VTPValidateCSARR77707.java b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/VTPValidateCSARR77707.java
deleted file mode 100644
index 9549e67..0000000
--- a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/VTPValidateCSARR77707.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Copyright 2017 Huawei Technologies Co., Ltd.
- *
- * 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.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.onap.cvc.csar.cc;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.onap.cli.fw.cmd.OnapCommand;
-import org.onap.cli.fw.error.OnapCommandException;
-import org.onap.cli.fw.error.OnapCommandExecutionFailed;
-import org.onap.cli.fw.schema.OnapCommandSchema;
-import org.onap.cvc.csar.CSARArchive;
-import org.onap.cvc.csar.CSARArchive.CSARError;
-import org.onap.cvc.csar.CSARArchive.CSARErrorEntryMissing;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * R-77707: Manifest file
- */
-@OnapCommandSchema(schema = "vtp-validate-csar-r77707.yaml")
-public class VTPValidateCSARR77707 extends OnapCommand {
- private static final Logger LOG = LoggerFactory.getLogger(VTPValidateCSARR77707.class);
-
- public static class CSARErrorEntryMissingDefinitionNotFound extends CSARErrorEntryMissing {
- public CSARErrorEntryMissingDefinitionNotFound() {
- super(
- "TOSCA definition or Tosca.Meata",
- CSARArchive.CSAR_Archive,
- -1,
- "The VNF provider MUST include a Manifest File that contains a list "
- + "of all the components in the VNF package.");
- this.setSubCode("r77707-0x1000");
- }
- }
-
- @Override
- 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();
-
- if (csar.getToscaMeta().getEntryDefinitionYaml() == null ||
- csar.getDefinitionYamlFile() == null || !csar.getDefinitionYamlFile().exists()) {
- errors.add(new CSARErrorEntryMissingDefinitionNotFound());
- }
-
- csar.cleanup();
- } catch (Exception e) {
- LOG.error("R-77707: ", 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()));
- }
- }
-}
diff --git a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/VTPValidateCSARR77786.java b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/VTPValidateCSARR77786.java
deleted file mode 100644
index 1fa5a1f..0000000
--- a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/VTPValidateCSARR77786.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Copyright 2017 Huawei Technologies Co., Ltd.
- *
- * 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.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.onap.cvc.csar.cc;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.onap.cli.fw.cmd.OnapCommand;
-import org.onap.cli.fw.error.OnapCommandException;
-import org.onap.cli.fw.error.OnapCommandExecutionFailed;
-import org.onap.cli.fw.schema.OnapCommandSchema;
-import org.onap.cvc.csar.CSARArchive;
-import org.onap.cvc.csar.CSARArchive.CSARError;
-import org.onap.cvc.csar.CSARArchive.CSARErrorEntryMissing;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * R-77786: cookbooks directory
- */
-@OnapCommandSchema(schema = "vtp-validate-csar-r77786.yaml")
-public class VTPValidateCSARR77786 extends OnapCommand {
- private static final Logger LOG = LoggerFactory.getLogger(VTPValidateCSARR77786.class);
-
- public static class CSARErrorEntryMissingAnsiblePlaybookNotFound extends CSARErrorEntryMissing {
- public CSARErrorEntryMissingAnsiblePlaybookNotFound() {
- super(
- "cookbooks",
- CSARArchive.CSAR_Archive,
- -1,
- "The VNF Package MUST include all relevant cookbooks to be loaded on the ONAP Chef Server.");
- this.setSubCode("r77786-0x1000");
- }
- }
-
- @Override
- 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();
-
- if (!csar.getFileFromCsar("playbooks").exists()) {
- errors.add(new CSARErrorEntryMissingAnsiblePlaybookNotFound());
- }
-
- csar.cleanup();
- } catch (Exception e) {
- LOG.error("R-77786: ", 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()));
- }
- }
-}
diff --git a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol001/VTPValidateCSARR09467.java b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol001/VTPValidateCSARR09467.java
new file mode 100644
index 0000000..cbacc35
--- /dev/null
+++ b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol001/VTPValidateCSARR09467.java
@@ -0,0 +1,69 @@
+/*
+ * Copyright 2017 Huawei Technologies Co., Ltd.
+ *
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onap.cvc.csar.cc.sol001;
+
+import java.io.FileInputStream;
+import java.util.Map;
+
+import org.onap.cli.fw.schema.OnapCommandSchema;
+import org.onap.cvc.csar.CSARArchive;
+import org.onap.cvc.csar.CSARArchive.CSARErrorEntryMissing;
+import org.onap.cvc.csar.cc.VTPValidateCSARBase;
+import org.yaml.snakeyaml.Yaml;
+
+@OnapCommandSchema(schema = "vtp-validate-csar-r09467.yaml")
+public class VTPValidateCSARR09467 extends VTPValidateCSARBase {
+
+ public static class CSARErrorEntryMissingFlavor extends CSARErrorEntryMissing {
+ public CSARErrorEntryMissingFlavor(String defYaml, String entry) {
+ super(entry, defYaml);
+ this.setCode("0x1000");
+ }
+ }
+
+ @Override
+ protected void validateCSAR(CSARArchive csar) throws Exception {
+ try(FileInputStream ipStream = new FileInputStream(csar.getDefinitionYamlFile())) {
+ Map<String, ?> yaml = (Map<String, ?>) new Yaml().load(ipStream);
+ yaml = (Map<String, ?>) yaml.get("topology_template");
+ Map<String, ?> nodeTmpls = (Map<String,?>) yaml.get("node_templates");
+
+ boolean vlExist = false;
+
+ for (Object nodeO: nodeTmpls.values()) {
+ Map<String, ?> node = (Map<String, ?>) nodeO;
+ if (node.containsKey("type")) {
+ String type = (String)node.get("type");
+ if (type.equalsIgnoreCase("tosca.nodes.nfv.VDU.Compute")) {
+ vlExist = true;
+ break;
+ }
+ }
+ }
+
+ if (!vlExist)
+ this.errors.add(new CSARErrorEntryMissingFlavor(
+ csar.getDefinitionYamlFile().getName(),
+ "Flavor"));
+ }
+ }
+
+ @Override
+ protected String getVnfReqsNo() {
+ return "R09467";
+ }
+}
diff --git a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol001/VTPValidateCSARR15837.java b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol001/VTPValidateCSARR15837.java
new file mode 100644
index 0000000..e89bb85
--- /dev/null
+++ b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol001/VTPValidateCSARR15837.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright 2017 Huawei Technologies Co., Ltd.
+ *
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onap.cvc.csar.cc.sol001;
+
+import org.onap.cli.fw.schema.OnapCommandSchema;
+import org.onap.cvc.csar.CSARArchive;
+import org.onap.cvc.csar.cc.VTPValidateCSARBase;
+
+@OnapCommandSchema(schema = "vtp-validate-csar-r15837.yaml")
+public class VTPValidateCSARR15837 extends VTPValidateCSARBase {
+
+ @Override
+ protected void validateCSAR(CSARArchive csar) throws Exception {
+
+ }
+
+ @Override
+ protected String getVnfReqsNo() {
+ return "R15837";
+ }
+
+}
diff --git a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol001/VTPValidateCSARR17852.java b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol001/VTPValidateCSARR17852.java
new file mode 100644
index 0000000..96181fd
--- /dev/null
+++ b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol001/VTPValidateCSARR17852.java
@@ -0,0 +1,34 @@
+/*
+ * Copyright 2017 Huawei Technologies Co., Ltd.
+ *
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onap.cvc.csar.cc.sol001;
+
+import org.onap.cli.fw.schema.OnapCommandSchema;
+import org.onap.cvc.csar.CSARArchive;
+import org.onap.cvc.csar.cc.VTPValidateCSARBase;
+
+@OnapCommandSchema(schema = "vtp-validate-csar-r17852.yaml")
+public class VTPValidateCSARR17852 extends VTPValidateCSARBase {
+
+ @Override
+ protected void validateCSAR(CSARArchive csar) throws Exception {
+ }
+
+ @Override
+ protected String getVnfReqsNo() {
+ return "R17852";
+ }
+}
diff --git a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol001/VTPValidateCSARR32155.java b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol001/VTPValidateCSARR32155.java
new file mode 100644
index 0000000..fac261a
--- /dev/null
+++ b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol001/VTPValidateCSARR32155.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright 2017 Huawei Technologies Co., Ltd.
+ *
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onap.cvc.csar.cc.sol001;
+
+import org.onap.cli.fw.schema.OnapCommandSchema;
+import org.onap.cvc.csar.CSARArchive;
+import org.onap.cvc.csar.cc.VTPValidateCSARBase;
+
+@OnapCommandSchema(schema = "vtp-validate-csar-r32155.yaml")
+public class VTPValidateCSARR32155 extends VTPValidateCSARBase {
+
+ @Override
+ protected void validateCSAR(CSARArchive csar) throws Exception {
+
+ }
+
+ @Override
+ protected String getVnfReqsNo() {
+ return "R32155";
+ }
+
+}
diff --git a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol001/VTPValidateCSARR35851.java b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol001/VTPValidateCSARR35851.java
new file mode 100644
index 0000000..6c7b3a6
--- /dev/null
+++ b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol001/VTPValidateCSARR35851.java
@@ -0,0 +1,70 @@
+/*
+ * Copyright 2017 Huawei Technologies Co., Ltd.
+ *
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onap.cvc.csar.cc.sol001;
+
+import java.io.FileInputStream;
+import java.util.Map;
+
+import org.onap.cli.fw.schema.OnapCommandSchema;
+import org.onap.cvc.csar.CSARArchive;
+import org.onap.cvc.csar.CSARArchive.CSARErrorEntryMissing;
+import org.onap.cvc.csar.cc.VTPValidateCSARBase;
+import org.yaml.snakeyaml.Yaml;
+
+@OnapCommandSchema(schema = "vtp-validate-csar-r35851.yaml")
+public class VTPValidateCSARR35851 extends VTPValidateCSARBase {
+
+ public static class CSARErrorEntryMissingDefinitionYamlTopology extends CSARErrorEntryMissing {
+ public CSARErrorEntryMissingDefinitionYamlTopology(String defYaml, String entry) {
+ super(entry, defYaml);
+ this.setCode("0x1000");
+ }
+ }
+
+ @Override
+ protected void validateCSAR(CSARArchive csar) throws Exception {
+ try(FileInputStream ipStream = new FileInputStream(csar.getDefinitionYamlFile())) {
+ Map<String, ?> yaml = (Map<String, ?>) new Yaml().load(ipStream);
+ yaml = (Map<String, ?>) yaml.get("topology_template");
+ Map<String, ?> nodeTmpls = (Map<String,?>) yaml.get("node_templates");
+
+ boolean vlExist = false;
+
+ for (Object nodeO: nodeTmpls.values()) {
+ Map<String, ?> node = (Map<String, ?>) nodeO;
+ if (node.containsKey("type")) {
+ String type = (String)node.get("type");
+ if (type.equalsIgnoreCase("tosca.nodes.nfv.VnfVirtualLink")) {
+ vlExist = true;
+ break;
+ }
+ }
+ }
+
+ if (!vlExist)
+ this.errors.add(new CSARErrorEntryMissingDefinitionYamlTopology(
+ csar.getDefinitionYamlFile().getName(),
+ "Topology VL"));
+ }
+
+ }
+
+ @Override
+ protected String getVnfReqsNo() {
+ return "R35851";
+ }
+}
diff --git a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol001/VTPValidateCSARR35854.java b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol001/VTPValidateCSARR35854.java
new file mode 100644
index 0000000..1b442cb
--- /dev/null
+++ b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol001/VTPValidateCSARR35854.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright 2017 Huawei Technologies Co., Ltd.
+ *
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onap.cvc.csar.cc.sol001;
+
+import org.onap.cli.fw.schema.OnapCommandSchema;
+import org.onap.cvc.csar.CSARArchive;
+import org.onap.cvc.csar.cc.VTPValidateCSARBase;
+
+@OnapCommandSchema(schema = "vtp-validate-csar-r35854.yaml")
+public class VTPValidateCSARR35854 extends VTPValidateCSARBase {
+
+ @Override
+ protected void validateCSAR(CSARArchive csar) throws Exception {
+
+ }
+
+ @Override
+ protected String getVnfReqsNo() {
+ return "R35854";
+ }
+
+}
diff --git a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol001/VTPValidateCSARR46527.java b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol001/VTPValidateCSARR46527.java
new file mode 100644
index 0000000..bc680a3
--- /dev/null
+++ b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol001/VTPValidateCSARR46527.java
@@ -0,0 +1,35 @@
+/*
+ * Copyright 2017 Huawei Technologies Co., Ltd.
+ *
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onap.cvc.csar.cc.sol001;
+
+import org.onap.cli.fw.schema.OnapCommandSchema;
+import org.onap.cvc.csar.CSARArchive;
+import org.onap.cvc.csar.cc.VTPValidateCSARBase;
+
+@OnapCommandSchema(schema = "vtp-validate-csar-r46527.yaml")
+public class VTPValidateCSARR46527 extends VTPValidateCSARBase {
+
+ @Override
+ protected void validateCSAR(CSARArchive csar) throws Exception {
+ }
+
+ @Override
+ protected String getVnfReqsNo() {
+ return "R46527";
+ }
+
+}
diff --git a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol001/VTPValidateCSARR54356.java b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol001/VTPValidateCSARR54356.java
new file mode 100644
index 0000000..02f7b0d
--- /dev/null
+++ b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol001/VTPValidateCSARR54356.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright 2017 Huawei Technologies Co., Ltd.
+ *
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onap.cvc.csar.cc.sol001;
+
+import org.onap.cli.fw.schema.OnapCommandSchema;
+import org.onap.cvc.csar.CSARArchive;
+import org.onap.cvc.csar.cc.VTPValidateCSARBase;
+
+@OnapCommandSchema(schema = "vtp-validate-csar-r54356.yaml")
+public class VTPValidateCSARR54356 extends VTPValidateCSARBase {
+
+ @Override
+ protected void validateCSAR(CSARArchive csar) throws Exception {
+
+ }
+
+ @Override
+ protected String getVnfReqsNo() {
+ return "R54356";
+ }
+
+}
diff --git a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol001/VTPValidateCSARR65486.java b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol001/VTPValidateCSARR65486.java
new file mode 100644
index 0000000..0f4f64d
--- /dev/null
+++ b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol001/VTPValidateCSARR65486.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright 2017 Huawei Technologies Co., Ltd.
+ *
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onap.cvc.csar.cc.sol001;
+
+import org.onap.cli.fw.schema.OnapCommandSchema;
+import org.onap.cvc.csar.CSARArchive;
+import org.onap.cvc.csar.cc.VTPValidateCSARBase;
+
+@OnapCommandSchema(schema = "vtp-validate-csar-r65486.yaml")
+public class VTPValidateCSARR65486 extends VTPValidateCSARBase {
+
+ @Override
+ protected void validateCSAR(CSARArchive csar) throws Exception {
+
+ }
+
+ @Override
+ protected String getVnfReqsNo() {
+ return "R65486";
+ }
+
+}
diff --git a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol001/VTPValidateCSARR67895.java b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol001/VTPValidateCSARR67895.java
new file mode 100644
index 0000000..a45ba5e
--- /dev/null
+++ b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol001/VTPValidateCSARR67895.java
@@ -0,0 +1,34 @@
+/*
+ * Copyright 2017 Huawei Technologies Co., Ltd.
+ *
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onap.cvc.csar.cc.sol001;
+
+import org.onap.cli.fw.schema.OnapCommandSchema;
+import org.onap.cvc.csar.CSARArchive;
+import org.onap.cvc.csar.cc.VTPValidateCSARBase;
+
+@OnapCommandSchema(schema = "vtp-validate-csar-r67895.yaml")
+public class VTPValidateCSARR67895 extends VTPValidateCSARBase {
+ @Override
+ protected void validateCSAR(CSARArchive csar) throws Exception {
+
+ }
+
+ @Override
+ protected String getVnfReqsNo() {
+ return "R67895";
+ }
+}
diff --git a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol001/VTPValidateCSARR95321.java b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol001/VTPValidateCSARR95321.java
new file mode 100644
index 0000000..fd9b2d6
--- /dev/null
+++ b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol001/VTPValidateCSARR95321.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright 2017 Huawei Technologies Co., Ltd.
+ *
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onap.cvc.csar.cc.sol001;
+
+import org.onap.cli.fw.schema.OnapCommandSchema;
+import org.onap.cvc.csar.CSARArchive;
+import org.onap.cvc.csar.cc.VTPValidateCSARBase;
+
+@OnapCommandSchema(schema = "vtp-validate-csar-r95321.yaml")
+public class VTPValidateCSARR95321 extends VTPValidateCSARBase {
+
+ @Override
+ protected void validateCSAR(CSARArchive csar) throws Exception {
+
+ }
+
+ @Override
+ protected String getVnfReqsNo() {
+ return "R95321";
+ }
+
+}
diff --git a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR01123.java b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR01123.java
new file mode 100644
index 0000000..8fc216b
--- /dev/null
+++ b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR01123.java
@@ -0,0 +1,49 @@
+/*
+ * Copyright 2017 Huawei Technologies Co., Ltd.
+ *
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onap.cvc.csar.cc.sol004;
+
+import org.onap.cli.fw.schema.OnapCommandSchema;
+import org.onap.cvc.csar.CSARArchive;
+import org.onap.cvc.csar.CSARArchive.CSARErrorEntryMissing;
+import org.onap.cvc.csar.cc.VTPValidateCSARBase;
+
+@OnapCommandSchema(schema = "vtp-validate-csar-01123.yaml")
+public class VTPValidateCSARR01123 extends VTPValidateCSARBase {
+
+ public static class CSARErrorEntryVNFProviderDetailsNotFound extends CSARErrorEntryMissing {
+ public CSARErrorEntryVNFProviderDetailsNotFound() {
+ super("VNF Vendor details",
+ CSARArchive.TOSCA_Metadata + " or " + CSARArchive.TOSCA_Metadata__TOSCA_Meta__Entry_Definitions + " file");
+ this.setCode("0x1000");
+ }
+ }
+
+ @Override
+ protected void validateCSAR(CSARArchive csar) throws Exception {
+ if (csar.getVendorName() == null ||
+ csar.getVersion() == null) {
+ errors.add(new CSARErrorEntryVNFProviderDetailsNotFound());
+ }
+ }
+
+ @Override
+ protected String getVnfReqsNo() {
+ return "R01123";
+ }
+
+
+}
diff --git a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR02454.java b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR02454.java
new file mode 100644
index 0000000..14998f5
--- /dev/null
+++ b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR02454.java
@@ -0,0 +1,69 @@
+/*
+ * Copyright 2017 Huawei Technologies Co., Ltd.
+ *
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onap.cvc.csar.cc.sol004;
+
+import java.io.FileInputStream;
+import java.util.Map;
+
+import org.onap.cli.fw.schema.OnapCommandSchema;
+import org.onap.cvc.csar.CSARArchive;
+import org.onap.cvc.csar.CSARArchive.CSARErrorEntryMissing;
+import org.onap.cvc.csar.cc.VTPValidateCSARBase;
+import org.yaml.snakeyaml.Yaml;
+
+@OnapCommandSchema(schema = "vtp-validate-csar-r02454.yaml")
+public class VTPValidateCSARR02454 extends VTPValidateCSARBase {
+
+ public static class CSARErrorEntryMissingSwImage extends CSARErrorEntryMissing {
+ public CSARErrorEntryMissingSwImage(String defYaml, String entry) {
+ super(entry, defYaml);
+ this.setCode("0x1000");
+ }
+ }
+
+ @Override
+ protected String getVnfReqsNo() {
+ return "R02454";
+ }
+
+ @Override
+ protected void validateCSAR(CSARArchive csar) throws Exception {
+ try(FileInputStream ipStream = new FileInputStream(csar.getDefinitionYamlFile())) {
+ Map<String, ?> yaml = (Map<String, ?>) new Yaml().load(ipStream);
+ yaml = (Map<String, ?>) yaml.get("topology_template");
+ Map<String, ?> nodeTmpls = (Map<String,?>) yaml.get("node_templates");
+
+ boolean vlExist = false;
+
+ for (Object nodeO: nodeTmpls.values()) {
+ Map<String, ?> node = (Map<String, ?>) nodeO;
+ if (node.containsKey("type")) {
+ String type = (String)node.get("type");
+ if (type.equalsIgnoreCase("tosca.artifacts.nfv.SwImage")) {
+ vlExist = true;
+ break;
+ }
+ }
+ }
+
+ if (!vlExist)
+ this.errors.add(new CSARErrorEntryMissingSwImage(
+ csar.getDefinitionYamlFile().getName(),
+ "Software Image"));
+ }
+ }
+}
diff --git a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR04298.java b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR04298.java
new file mode 100644
index 0000000..6503c54
--- /dev/null
+++ b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR04298.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright 2017 Huawei Technologies Co., Ltd.
+ *
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onap.cvc.csar.cc.sol004;
+
+import org.onap.cli.fw.schema.OnapCommandSchema;
+import org.onap.cvc.csar.CSARArchive;
+import org.onap.cvc.csar.CSARArchive.CSARErrorEntryMissing;
+import org.onap.cvc.csar.cc.VTPValidateCSARBase;
+
+@OnapCommandSchema(schema = "vtp-validate-csar-r04298.yaml")
+public class VTPValidateCSARR04298 extends VTPValidateCSARBase {
+
+ public static class CSARErrorEntryMissingTestFolderNotFound extends CSARErrorEntryMissing {
+ public CSARErrorEntryMissingTestFolderNotFound() {
+ super("Tests", CSARArchive.CSAR_Archive);
+ this.setCode("0x1000");
+ }
+ }
+
+ @Override
+ protected void validateCSAR(CSARArchive csar) throws Exception {
+
+ if (csar.getTestsFolder() == null) {
+ this.errors.add(new CSARErrorEntryMissingTestFolderNotFound());
+ }
+ }
+
+ @Override
+ protected String getVnfReqsNo() {
+ return "R04298";
+ }
+}
diff --git a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR07879.java b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR07879.java
new file mode 100644
index 0000000..ad46620
--- /dev/null
+++ b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR07879.java
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2017 Huawei Technologies Co., Ltd.
+ *
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onap.cvc.csar.cc.sol004;
+
+import org.onap.cli.fw.schema.OnapCommandSchema;
+import org.onap.cvc.csar.CSARArchive;
+import org.onap.cvc.csar.CSARArchive.CSARErrorEntryMissing;
+import org.onap.cvc.csar.cc.VTPValidateCSARBase;
+
+@OnapCommandSchema(schema = "vtp-validate-csar-r07879.yaml")
+public class VTPValidateCSARR07879 extends VTPValidateCSARBase {
+
+ public static class CSARErrorEntryMissingAnsiblePlaybookNotFound extends CSARErrorEntryMissing {
+ public CSARErrorEntryMissingAnsiblePlaybookNotFound() {
+ super("playbooks", CSARArchive.CSAR_Archive);
+ this.setCode("0x1000");
+ }
+ }
+
+ @Override
+ protected void validateCSAR(CSARArchive csar) throws Exception {
+ if (!csar.getFileFromCsar("playbooks").exists()) {
+ this.errors.add(new CSARErrorEntryMissingAnsiblePlaybookNotFound());
+ }
+ }
+
+ @Override
+ protected String getVnfReqsNo() {
+ return "R07879";
+ }
+}
diff --git a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR10087.java b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR10087.java
new file mode 100644
index 0000000..31298fa
--- /dev/null
+++ b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR10087.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright 2017 Huawei Technologies Co., Ltd.
+ *
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onap.cvc.csar.cc.sol004;
+
+import org.onap.cli.fw.schema.OnapCommandSchema;
+import org.onap.cvc.csar.CSARArchive;
+import org.onap.cvc.csar.CSARArchive.CSARError;
+import org.onap.cvc.csar.CSARArchive.CSARErrorEntryMissingToscaDefinitionMetadataTemplateName;
+import org.onap.cvc.csar.CSARArchive.CSARErrorEntryMissingToscaDefinitionNotFound;
+import org.onap.cvc.csar.CSARArchive.CSARErrorEntryMissingToscaMetaDefinition;
+import org.onap.cvc.csar.cc.VTPValidateCSARBase;
+
+@OnapCommandSchema(schema = "vtp-validate-csar-r10087.yaml")
+public class VTPValidateCSARR10087 extends VTPValidateCSARBase {
+
+ @Override
+ protected void validateCSAR(CSARArchive csar) throws Exception {
+
+ for (CSARError e : csar.getErrors()) {
+ if (e instanceof CSARErrorEntryMissingToscaMetaDefinition ||
+ e instanceof CSARErrorEntryMissingToscaDefinitionNotFound ||
+ e instanceof CSARErrorEntryMissingToscaDefinitionMetadataTemplateName) {
+ this.errors.add(e);
+ }
+ }
+ }
+
+ @Override
+ protected String getVnfReqsNo() {
+ return "R10087";
+ }
+}
diff --git a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR13390.java b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR13390.java
new file mode 100644
index 0000000..17c3018
--- /dev/null
+++ b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR13390.java
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2017 Huawei Technologies Co., Ltd.
+ *
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onap.cvc.csar.cc.sol004;
+
+import org.onap.cli.fw.schema.OnapCommandSchema;
+import org.onap.cvc.csar.CSARArchive;
+import org.onap.cvc.csar.CSARArchive.CSARErrorEntryMissing;
+import org.onap.cvc.csar.cc.VTPValidateCSARBase;
+
+@OnapCommandSchema(schema = "vtp-validate-csar-r13390.yaml")
+public class VTPValidateCSARR13390 extends VTPValidateCSARBase {
+
+ public static class CSARErrorEntryMissingAnsiblePlaybookNotFound extends CSARErrorEntryMissing {
+ public CSARErrorEntryMissingAnsiblePlaybookNotFound() {
+ super("cookbooks", CSARArchive.CSAR_Archive);
+ this.setCode("0x1000");
+ }
+ }
+
+ @Override
+ protected void validateCSAR(CSARArchive csar) throws Exception {
+ if (!csar.getFileFromCsar("playbooks").exists()) {
+ this.errors.add(new CSARErrorEntryMissingAnsiblePlaybookNotFound());
+ }
+ }
+
+ @Override
+ protected String getVnfReqsNo() {
+ return "R13390";
+ }
+}
diff --git a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR21322.java b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR21322.java
new file mode 100644
index 0000000..9c0a791
--- /dev/null
+++ b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR21322.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright 2017 Huawei Technologies Co., Ltd.
+ *
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onap.cvc.csar.cc.sol004;
+
+import org.onap.cli.fw.schema.OnapCommandSchema;
+import org.onap.cvc.csar.CSARArchive;
+import org.onap.cvc.csar.CSARArchive.CSARErrorEntryMissing;
+import org.onap.cvc.csar.cc.VTPValidateCSARBase;
+
+@OnapCommandSchema(schema = "vtp-validate-csar-r21322.yaml")
+public class VTPValidateCSARR21322 extends VTPValidateCSARBase {
+
+ public static class CSARErrorEntryMissingTestFolderNotFound extends CSARErrorEntryMissing {
+ public CSARErrorEntryMissingTestFolderNotFound() {
+ super("Tests", CSARArchive.CSAR_Archive);
+ this.setCode("0x1000");
+ }
+ }
+
+ @Override
+ protected void validateCSAR(CSARArchive csar) throws Exception {
+ if (csar.getTestsFolder() == null) {
+ this.errors.add(new CSARErrorEntryMissingTestFolderNotFound());
+ }
+ }
+
+ @Override
+ protected String getVnfReqsNo() {
+ return "R21322";
+ }
+
+}
diff --git a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR23823.java b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR23823.java
new file mode 100644
index 0000000..6919f28
--- /dev/null
+++ b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR23823.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright 2017 Huawei Technologies Co., Ltd.
+ *
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onap.cvc.csar.cc.sol004;
+
+import org.onap.cli.fw.schema.OnapCommandSchema;
+import org.onap.cvc.csar.CSARArchive;
+import org.onap.cvc.csar.CSARArchive.CSARErrorEntryMissing;
+import org.onap.cvc.csar.cc.VTPValidateCSARBase;
+
+@OnapCommandSchema(schema = "vtp-validate-csar-r23823.yaml")
+public class VTPValidateCSARR23823 extends VTPValidateCSARBase {
+
+ public static class CSARErrorEntryMissingCertificatesNotFound extends CSARErrorEntryMissing {
+ public CSARErrorEntryMissingCertificatesNotFound() {
+ super("Certificates", CSARArchive.CSAR_Archive);
+ this.setCode("0x1000");
+ }
+ }
+
+ @Override
+ protected void validateCSAR(CSARArchive csar) throws Exception {
+ if (csar.getCertificatesFile() == null) {
+ errors.add(new CSARErrorEntryMissingCertificatesNotFound());
+ }
+ }
+
+ @Override
+ protected String getVnfReqsNo() {
+ return "R23823";
+ }
+
+}
diff --git a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR26881.java b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR26881.java
new file mode 100644
index 0000000..e036ce6
--- /dev/null
+++ b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR26881.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright 2017 Huawei Technologies Co., Ltd.
+ *
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onap.cvc.csar.cc.sol004;
+
+import org.onap.cli.fw.schema.OnapCommandSchema;
+import org.onap.cvc.csar.CSARArchive;
+import org.onap.cvc.csar.CSARArchive.CSARErrorEntryMissing;
+import org.onap.cvc.csar.cc.VTPValidateCSARBase;
+
+@OnapCommandSchema(schema = "vtp-validate-csar-r26881.yaml")
+public class VTPValidateCSARR26881 extends VTPValidateCSARBase {
+
+ public static class CSARErrorEntryMissingArtifactsNotFound extends CSARErrorEntryMissing {
+ public CSARErrorEntryMissingArtifactsNotFound() {
+ super("Artifacts", CSARArchive.CSAR_Archive);
+ this.setCode("0x1000");
+ }
+ }
+
+ @Override
+ protected void validateCSAR(CSARArchive csar) throws Exception {
+ if (!csar.getFileFromCsar("artifacts").exists()) {
+ errors.add(new CSARErrorEntryMissingArtifactsNotFound());
+ }
+ }
+
+ @Override
+ protected String getVnfReqsNo() {
+ return "R26881";
+ }
+
+}
diff --git a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR26885.java b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR26885.java
new file mode 100644
index 0000000..97f2d3c
--- /dev/null
+++ b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR26885.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright 2017 Huawei Technologies Co., Ltd.
+ *
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onap.cvc.csar.cc.sol004;
+
+import org.onap.cli.fw.schema.OnapCommandSchema;
+import org.onap.cvc.csar.CSARArchive;
+import org.onap.cvc.csar.CSARArchive.CSARErrorEntryMissing;
+import org.onap.cvc.csar.cc.VTPValidateCSARBase;
+
+@OnapCommandSchema(schema = "vtp-validate-csar-r26885.yaml")
+public class VTPValidateCSARR26885 extends VTPValidateCSARBase {
+
+ public static class CSARErrorEntryMissingArtifactImage extends CSARErrorEntryMissing {
+ public CSARErrorEntryMissingArtifactImage() {
+ super("Artifacts/VNF_Image.bin", CSARArchive.CSAR_Archive);
+ this.setCode("0x1000");
+ }
+ }
+
+ @Override
+ protected void validateCSAR(CSARArchive csar) throws Exception {
+ if (!csar.getFileFromCsar("Artifacts/VNF_Image.bin").exists()) {
+ this.errors.add(new CSARErrorEntryMissingArtifactImage());
+ }
+ }
+
+ @Override
+ protected String getVnfReqsNo() {
+ return "R26885";
+ }
+
+}
diff --git a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR27310.java b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR27310.java
new file mode 100644
index 0000000..4c2210a
--- /dev/null
+++ b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR27310.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright 2017 Huawei Technologies Co., Ltd.
+ *
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onap.cvc.csar.cc.sol004;
+
+import org.onap.cli.fw.schema.OnapCommandSchema;
+import org.onap.cvc.csar.CSARArchive;
+import org.onap.cvc.csar.CSARArchive.CSARErrorEntryMissing;
+import org.onap.cvc.csar.cc.VTPValidateCSARBase;
+
+@OnapCommandSchema(schema = "vtp-validate-csar-r27310.yaml")
+public class VTPValidateCSARR27310 extends VTPValidateCSARBase {
+
+ public static class CSARErrorEntryMissingChefArtifactsNotFound extends CSARErrorEntryMissing {
+ public CSARErrorEntryMissingChefArtifactsNotFound() {
+ super("cookbooks", CSARArchive.CSAR_Archive);
+ this.setCode("0x1000");
+ }
+ }
+
+ @Override
+ protected void validateCSAR(CSARArchive csar) throws Exception {
+ if (!csar.getFileFromCsar("cookbooks").exists()) {
+ errors.add(new CSARErrorEntryMissingChefArtifactsNotFound());
+ }
+ }
+
+ @Override
+ protected String getVnfReqsNo() {
+ return "R27310";
+ }
+
+}
diff --git a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR40293.java b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR40293.java
new file mode 100644
index 0000000..7173156
--- /dev/null
+++ b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR40293.java
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2017 Huawei Technologies Co., Ltd.
+ *
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onap.cvc.csar.cc.sol004;
+
+import org.onap.cli.fw.schema.OnapCommandSchema;
+import org.onap.cvc.csar.CSARArchive;
+import org.onap.cvc.csar.CSARArchive.CSARErrorEntryMissing;
+import org.onap.cvc.csar.cc.VTPValidateCSARBase;
+
+@OnapCommandSchema(schema = "vtp-validate-csar-r40293.yaml")
+public class VTPValidateCSARR40293 extends VTPValidateCSARBase {
+
+ public static class CSARErrorEntryMissingAnsiblePlaybookNotFound extends CSARErrorEntryMissing {
+ public CSARErrorEntryMissingAnsiblePlaybookNotFound() {
+ super("playbooks", CSARArchive.CSAR_Archive);
+ this.setCode("0x1000");
+ }
+ }
+
+ @Override
+ protected void validateCSAR(CSARArchive csar) throws Exception {
+ if (!csar.getFileFromCsar("playbooks").exists()) {
+ errors.add(new CSARErrorEntryMissingAnsiblePlaybookNotFound());
+ }
+ }
+
+ @Override
+ protected String getVnfReqsNo() {
+ return "R40293";
+ }
+}
diff --git a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR40820.java b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR40820.java
new file mode 100644
index 0000000..99f180b
--- /dev/null
+++ b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR40820.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright 2017 Huawei Technologies Co., Ltd.
+ *
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onap.cvc.csar.cc.sol004;
+
+import org.onap.cli.fw.schema.OnapCommandSchema;
+import org.onap.cvc.csar.CSARArchive;
+import org.onap.cvc.csar.CSARArchive.CSARErrorEntryMissing;
+import org.onap.cvc.csar.cc.VTPValidateCSARBase;
+
+@OnapCommandSchema(schema = "vtp-validate-csar-r40820.yaml")
+public class VTPValidateCSARR40820 extends VTPValidateCSARBase {
+
+ public static class CSARErrorEntryMissingLicenseTerm extends CSARErrorEntryMissing {
+ public CSARErrorEntryMissingLicenseTerm() {
+ super("Licenses/License_term.txt", CSARArchive.CSAR_Archive);
+ this.setCode("0x1000");
+ }
+ }
+
+ @Override
+ protected void validateCSAR(CSARArchive csar) throws Exception {
+ if (!csar.getFileFromCsar("Licenses/License_term.txt").exists()) {
+ this.errors.add(new CSARErrorEntryMissingLicenseTerm());
+ }
+ }
+
+ @Override
+ protected String getVnfReqsNo() {
+ return "R40820";
+ }
+
+}
diff --git a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR43958.java b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR43958.java
new file mode 100644
index 0000000..0d42628
--- /dev/null
+++ b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR43958.java
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2017 Huawei Technologies Co., Ltd.
+ *
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onap.cvc.csar.cc.sol004;
+
+import org.onap.cli.fw.schema.OnapCommandSchema;
+import org.onap.cvc.csar.CSARArchive;
+import org.onap.cvc.csar.CSARArchive.CSARErrorEntryMissing;
+import org.onap.cvc.csar.cc.VTPValidateCSARBase;
+
+@OnapCommandSchema(schema = "vtp-validate-csar-r43958.yaml")
+public class VTPValidateCSARR43958 extends VTPValidateCSARBase {
+
+ public static class CSARErrorEntryMissingTestReportNotFound extends CSARErrorEntryMissing {
+ public CSARErrorEntryMissingTestReportNotFound() {
+ super("Tests/report.txt", CSARArchive.CSAR_Archive);
+ this.setCode("0x1000");
+ }
+ }
+
+ @Override
+ protected void validateCSAR(CSARArchive csar) throws Exception {
+ if (!csar.getFileFromCsar("Tests/report.txt").exists()) {
+ this.errors.add(new CSARErrorEntryMissingTestReportNotFound());
+ }
+ }
+
+ @Override
+ protected String getVnfReqsNo() {
+ return "R43958";
+ }
+}
diff --git a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR51347.java b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR51347.java
new file mode 100644
index 0000000..1a39e14
--- /dev/null
+++ b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR51347.java
@@ -0,0 +1,43 @@
+/*
+ * Copyright 2017 Huawei Technologies Co., Ltd.
+ *
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onap.cvc.csar.cc.sol004;
+
+import org.onap.cli.fw.schema.OnapCommandSchema;
+import org.onap.cvc.csar.CSARArchive;
+import org.onap.cvc.csar.CSARArchive.CSARError;
+import org.onap.cvc.csar.CSARArchive.CSARErrorInvalidEntryValueToscaDefinitionVersion;
+import org.onap.cvc.csar.cc.VTPValidateCSARBase;
+
+@OnapCommandSchema(schema = "vtp-validate-csar-r51347.yaml")
+public class VTPValidateCSARR51347 extends VTPValidateCSARBase {
+
+ @Override
+ protected void validateCSAR(CSARArchive csar) throws Exception {
+ for (CSARError e : csar.getErrors()) {
+ if (e instanceof CSARErrorInvalidEntryValueToscaDefinitionVersion) {
+ this.errors.add(e);
+ break;
+ }
+ }
+ }
+
+ @Override
+ protected String getVnfReqsNo() {
+ return "R51347";
+ }
+
+}
diff --git a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR66070.java b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR66070.java
new file mode 100644
index 0000000..1d5c3c5
--- /dev/null
+++ b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR66070.java
@@ -0,0 +1,47 @@
+/*
+ * Copyright 2017 Huawei Technologies Co., Ltd.
+ *
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onap.cvc.csar.cc.sol004;
+
+import org.onap.cli.fw.schema.OnapCommandSchema;
+import org.onap.cvc.csar.CSARArchive;
+import org.onap.cvc.csar.CSARArchive.CSARErrorEntryMissing;
+import org.onap.cvc.csar.cc.VTPValidateCSARBase;
+
+@OnapCommandSchema(schema = "vtp-validate-csar-r66070.yaml")
+public class VTPValidateCSARR66070 extends VTPValidateCSARBase {
+
+ public static class CSARErrorEntryVNFProviderDetailsNotFound extends CSARErrorEntryMissing {
+ public CSARErrorEntryVNFProviderDetailsNotFound() {
+ super("VNF Vendor details",
+ CSARArchive.TOSCA_Metadata + " or " + CSARArchive.TOSCA_Metadata__TOSCA_Meta__Entry_Definitions + " file");
+ this.setCode("0x1000");
+ }
+ }
+
+ @Override
+ protected void validateCSAR(CSARArchive csar) throws Exception {
+ if (csar.getVendorName() == null ||
+ csar.getVersion() == null) {
+ errors.add(new CSARErrorEntryVNFProviderDetailsNotFound());
+ }
+ }
+
+ @Override
+ protected String getVnfReqsNo() {
+ return "R66070";
+ }
+}
diff --git a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR77707.java b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR77707.java
new file mode 100644
index 0000000..13ac502
--- /dev/null
+++ b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR77707.java
@@ -0,0 +1,47 @@
+/*
+ * Copyright 2017 Huawei Technologies Co., Ltd.
+ *
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onap.cvc.csar.cc.sol004;
+
+import org.onap.cli.fw.schema.OnapCommandSchema;
+import org.onap.cvc.csar.CSARArchive;
+import org.onap.cvc.csar.CSARArchive.CSARErrorEntryMissing;
+import org.onap.cvc.csar.cc.VTPValidateCSARBase;
+
+@OnapCommandSchema(schema = "vtp-validate-csar-r77707.yaml")
+public class VTPValidateCSARR77707 extends VTPValidateCSARBase {
+
+ public static class CSARErrorEntryMissingDefinitionNotFound extends CSARErrorEntryMissing {
+ public CSARErrorEntryMissingDefinitionNotFound() {
+ super("TOSCA definition or Tosca.Meata",
+ CSARArchive.CSAR_Archive);
+ this.setCode("0x1000");
+ }
+ }
+
+ @Override
+ protected void validateCSAR(CSARArchive csar) throws Exception {
+ if (csar.getToscaMeta().getEntryDefinitionYaml() == null ||
+ csar.getDefinitionYamlFile() == null || !csar.getDefinitionYamlFile().exists()) {
+ errors.add(new CSARErrorEntryMissingDefinitionNotFound());
+ }
+ }
+
+ @Override
+ protected String getVnfReqsNo() {
+ return "R77707";
+ }
+}
diff --git a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR77786.java b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR77786.java
new file mode 100644
index 0000000..efb258b
--- /dev/null
+++ b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR77786.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright 2017 Huawei Technologies Co., Ltd.
+ *
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onap.cvc.csar.cc.sol004;
+
+import org.onap.cli.fw.schema.OnapCommandSchema;
+import org.onap.cvc.csar.CSARArchive;
+import org.onap.cvc.csar.CSARArchive.CSARErrorEntryMissing;
+import org.onap.cvc.csar.cc.VTPValidateCSARBase;
+
+@OnapCommandSchema(schema = "vtp-validate-csar-r77786.yaml")
+public class VTPValidateCSARR77786 extends VTPValidateCSARBase {
+
+ public static class CSARErrorEntryMissingAnsiblePlaybookNotFound extends CSARErrorEntryMissing {
+ public CSARErrorEntryMissingAnsiblePlaybookNotFound() {
+ super("cookbooks",
+ CSARArchive.CSAR_Archive);
+ this.setCode("0x1000");
+ }
+ }
+
+ @Override
+ protected void validateCSAR(CSARArchive csar) throws Exception {
+ if (!csar.getFileFromCsar("playbooks").exists()) {
+ errors.add(new CSARErrorEntryMissingAnsiblePlaybookNotFound());
+ }
+ }
+
+ @Override
+ protected String getVnfReqsNo() {
+ return "R77786";
+ }
+}
diff --git a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR87234.java b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR87234.java
new file mode 100644
index 0000000..6400012
--- /dev/null
+++ b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR87234.java
@@ -0,0 +1,48 @@
+/*
+ * Copyright 2017 Huawei Technologies Co., Ltd.
+ *
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onap.cvc.csar.cc.sol004;
+
+import org.onap.cli.fw.schema.OnapCommandSchema;
+import org.onap.cvc.csar.CSARArchive;
+import org.onap.cvc.csar.CSARArchive.CSARErrorInvalidEntryValue;
+import org.onap.cvc.csar.cc.VTPValidateCSARBase;
+
+@OnapCommandSchema(schema = "vtp-validate-csar-r87234.yaml")
+public class VTPValidateCSARR87234 extends VTPValidateCSARBase {
+
+ public static class CSARErrorInvalidEntryValueNonToscaMetaNotSupported extends CSARErrorInvalidEntryValue {
+ public CSARErrorInvalidEntryValueNonToscaMetaNotSupported() {
+ super("CSAR Mode", "CSAR Archive",
+ "Only " + CSARArchive.Mode.WITH_TOSCA_META_DIR.name() + " mode is supported",
+ CSARArchive.Mode.WITH_TOSCA_META_DIR.name());
+ this.setCode("0x1000");
+ }
+ }
+
+ @Override
+ protected void validateCSAR(CSARArchive csar) throws Exception {
+ if (!csar.getToscaMeta().getMode().name().equalsIgnoreCase(CSARArchive.Mode.WITH_TOSCA_META_DIR.name())) {
+ this.errors.add(new CSARErrorInvalidEntryValueNonToscaMetaNotSupported());
+ }
+ }
+
+ @Override
+ protected String getVnfReqsNo() {
+ return "R87234";
+ }
+
+}
diff --git a/csarvalidation/src/main/resources/META-INF/services/org.onap.cli.fw.cmd.OnapCommand b/csarvalidation/src/main/resources/META-INF/services/org.onap.cli.fw.cmd.OnapCommand
index 5bcd3cc..d868756 100644
--- a/csarvalidation/src/main/resources/META-INF/services/org.onap.cli.fw.cmd.OnapCommand
+++ b/csarvalidation/src/main/resources/META-INF/services/org.onap.cli.fw.cmd.OnapCommand
@@ -13,17 +13,33 @@
# limitations under the License.
org.onap.cvc.csar.VTPValidateCSAR
-org.onap.cvc.csar.cc.VTPValidateCSARR02454
-org.onap.cvc.csar.cc.VTPValidateCSARR04298
-org.onap.cvc.csar.cc.VTPValidateCSARR07879
-org.onap.cvc.csar.cc.VTPValidateCSARR09467
-org.onap.cvc.csar.cc.VTPValidateCSARR13390
-org.onap.cvc.csar.cc.VTPValidateCSARR23823
-org.onap.cvc.csar.cc.VTPValidateCSARR26881
-org.onap.cvc.csar.cc.VTPValidateCSARR27310
-org.onap.cvc.csar.cc.VTPValidateCSARR35851
-org.onap.cvc.csar.cc.VTPValidateCSARR40293
-org.onap.cvc.csar.cc.VTPValidateCSARR43958
-org.onap.cvc.csar.cc.VTPValidateCSARR66070
-org.onap.cvc.csar.cc.VTPValidateCSARR77707
-org.onap.cvc.csar.cc.VTPValidateCSARR77786 \ No newline at end of file
+org.onap.cvc.csar.cc.sol001.VTPValidateCSARR17852
+org.onap.cvc.csar.cc.sol001.VTPValidateCSARR09467
+org.onap.cvc.csar.cc.sol001.VTPValidateCSARR15837
+org.onap.cvc.csar.cc.sol001.VTPValidateCSARR32155
+org.onap.cvc.csar.cc.sol001.VTPValidateCSARR35851
+org.onap.cvc.csar.cc.sol001.VTPValidateCSARR35854
+org.onap.cvc.csar.cc.sol001.VTPValidateCSARR46527
+org.onap.cvc.csar.cc.sol001.VTPValidateCSARR54356
+org.onap.cvc.csar.cc.sol001.VTPValidateCSARR65486
+org.onap.cvc.csar.cc.sol001.VTPValidateCSARR67895
+org.onap.cvc.csar.cc.sol001.VTPValidateCSARR95321
+org.onap.cvc.csar.cc.sol004.VTPValidateCSARR01123
+org.onap.cvc.csar.cc.sol004.VTPValidateCSARR02454
+org.onap.cvc.csar.cc.sol004.VTPValidateCSARR04298
+org.onap.cvc.csar.cc.sol004.VTPValidateCSARR07879
+org.onap.cvc.csar.cc.sol004.VTPValidateCSARR13390
+org.onap.cvc.csar.cc.sol004.VTPValidateCSARR10087
+org.onap.cvc.csar.cc.sol004.VTPValidateCSARR21322
+org.onap.cvc.csar.cc.sol004.VTPValidateCSARR23823
+org.onap.cvc.csar.cc.sol004.VTPValidateCSARR26881
+org.onap.cvc.csar.cc.sol004.VTPValidateCSARR26885
+org.onap.cvc.csar.cc.sol004.VTPValidateCSARR27310
+org.onap.cvc.csar.cc.sol004.VTPValidateCSARR40293
+org.onap.cvc.csar.cc.sol004.VTPValidateCSARR40820
+org.onap.cvc.csar.cc.sol004.VTPValidateCSARR43958
+org.onap.cvc.csar.cc.sol004.VTPValidateCSARR51347
+org.onap.cvc.csar.cc.sol004.VTPValidateCSARR66070
+org.onap.cvc.csar.cc.sol004.VTPValidateCSARR77707
+org.onap.cvc.csar.cc.sol004.VTPValidateCSARR77786
+org.onap.cvc.csar.cc.sol004.VTPValidateCSARR87234
diff --git a/csarvalidation/src/main/resources/open-cli-schema/vtp-validate-hot.yaml b/csarvalidation/src/main/resources/open-cli-schema/hot/vtp-validate-hot.yaml
index 8eb0ef5..8eb0ef5 100644
--- a/csarvalidation/src/main/resources/open-cli-schema/vtp-validate-hot.yaml
+++ b/csarvalidation/src/main/resources/open-cli-schema/hot/vtp-validate-hot.yaml
diff --git a/csarvalidation/src/main/resources/open-cli-schema/vtp-validate-csar-casablanca.yaml b/csarvalidation/src/main/resources/open-cli-schema/obsolute/vtp-validate-csar-casablanca.yaml
index 878eb67..878eb67 100644
--- a/csarvalidation/src/main/resources/open-cli-schema/vtp-validate-csar-casablanca.yaml
+++ b/csarvalidation/src/main/resources/open-cli-schema/obsolute/vtp-validate-csar-casablanca.yaml
diff --git a/csarvalidation/src/main/resources/open-cli-schema/vtp-validate-csar-r09467.yaml b/csarvalidation/src/main/resources/open-cli-schema/sol001/vtp-validate-csar-r09467.yaml
index c43fb6a..c43fb6a 100644
--- a/csarvalidation/src/main/resources/open-cli-schema/vtp-validate-csar-r09467.yaml
+++ b/csarvalidation/src/main/resources/open-cli-schema/sol001/vtp-validate-csar-r09467.yaml
diff --git a/csarvalidation/src/main/resources/open-cli-schema/sol001/vtp-validate-csar-r15837.yaml b/csarvalidation/src/main/resources/open-cli-schema/sol001/vtp-validate-csar-r15837.yaml
new file mode 100644
index 0000000..586f4af
--- /dev/null
+++ b/csarvalidation/src/main/resources/open-cli-schema/sol001/vtp-validate-csar-r15837.yaml
@@ -0,0 +1,54 @@
+# Copyright 2018 Huawei Technologies Co., Ltd.
+#
+# 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.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+open_cli_schema_version: 1.0
+
+name: csar-validate-r15837
+
+description: |
+ Major TOSCA Types specified in ETSI NFV-SOL001 standard draft.
+
+info:
+ product: onap-vtp
+ version: 1.0
+ service: validation
+ author: ONAP VTP Team onap-discuss@lists.onap.org
+
+parameters:
+ - name: csar
+ description: CSAR file path
+ long_option: csar
+ short_option: b
+ type: binary
+ is_optional: false
+
+results:
+ direction: landscape
+ attributes:
+ - name: code
+ description: Error code
+ scope: short
+ type: string
+ - name: message
+ description: Error message
+ scope: short
+ type: string
+ - name: file
+ description: File in which error occured
+ scope: short
+ type: string
+ - name: line-no
+ description: Line no at which error occured
+ scope: short
+ type: string
diff --git a/csarvalidation/src/main/resources/open-cli-schema/sol001/vtp-validate-csar-r17852.yaml b/csarvalidation/src/main/resources/open-cli-schema/sol001/vtp-validate-csar-r17852.yaml
new file mode 100644
index 0000000..6626765
--- /dev/null
+++ b/csarvalidation/src/main/resources/open-cli-schema/sol001/vtp-validate-csar-r17852.yaml
@@ -0,0 +1,55 @@
+# Copyright 2018 Huawei Technologies Co., Ltd.
+#
+# 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.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+open_cli_schema_version: 1.0
+
+name: csar-validate-r17852
+
+description: |
+ The VNFD MAY include TOSCA/YAML definitions that are not part of NFV Profile. If provided,
+ these definitions MUST comply with TOSCA Simple Profile in YAML v.1.2.
+
+info:
+ product: onap-vtp
+ version: 1.0
+ service: validation
+ author: ONAP VTP Team onap-discuss@lists.onap.org
+
+parameters:
+ - name: csar
+ description: CSAR file path
+ long_option: csar
+ short_option: b
+ type: binary
+ is_optional: false
+
+results:
+ direction: landscape
+ attributes:
+ - name: code
+ description: Error code
+ scope: short
+ type: string
+ - name: message
+ description: Error message
+ scope: short
+ type: string
+ - name: file
+ description: File in which error occured
+ scope: short
+ type: string
+ - name: line-no
+ description: Line no at which error occured
+ scope: short
+ type: string
diff --git a/csarvalidation/src/main/resources/open-cli-schema/sol001/vtp-validate-csar-r32155.yaml b/csarvalidation/src/main/resources/open-cli-schema/sol001/vtp-validate-csar-r32155.yaml
new file mode 100644
index 0000000..ac60d8b
--- /dev/null
+++ b/csarvalidation/src/main/resources/open-cli-schema/sol001/vtp-validate-csar-r32155.yaml
@@ -0,0 +1,55 @@
+# Copyright 2018 Huawei Technologies Co., Ltd.
+#
+# 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.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+open_cli_schema_version: 1.0
+
+name: csar-validate-r32155
+
+description: |
+ The VNFD provided by VNF vendor may use the below described TOSCA interface types.
+ An on-boarding entity (ONAP SDC) MUST support them..
+
+info:
+ product: onap-vtp
+ version: 1.0
+ service: validation
+ author: ONAP VTP Team onap-discuss@lists.onap.org
+
+parameters:
+ - name: csar
+ description: CSAR file path
+ long_option: csar
+ short_option: b
+ type: binary
+ is_optional: false
+
+results:
+ direction: landscape
+ attributes:
+ - name: code
+ description: Error code
+ scope: short
+ type: string
+ - name: message
+ description: Error message
+ scope: short
+ type: string
+ - name: file
+ description: File in which error occured
+ scope: short
+ type: string
+ - name: line-no
+ description: Line no at which error occured
+ scope: short
+ type: string
diff --git a/csarvalidation/src/main/resources/open-cli-schema/vtp-validate-csar-r35851.yaml b/csarvalidation/src/main/resources/open-cli-schema/sol001/vtp-validate-csar-r35851.yaml
index 1e024c0..1e024c0 100644
--- a/csarvalidation/src/main/resources/open-cli-schema/vtp-validate-csar-r35851.yaml
+++ b/csarvalidation/src/main/resources/open-cli-schema/sol001/vtp-validate-csar-r35851.yaml
diff --git a/csarvalidation/src/main/resources/open-cli-schema/sol001/vtp-validate-csar-r35854.yaml b/csarvalidation/src/main/resources/open-cli-schema/sol001/vtp-validate-csar-r35854.yaml
new file mode 100644
index 0000000..4a181e8
--- /dev/null
+++ b/csarvalidation/src/main/resources/open-cli-schema/sol001/vtp-validate-csar-r35854.yaml
@@ -0,0 +1,57 @@
+# Copyright 2018 Huawei Technologies Co., Ltd.
+#
+# 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.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+open_cli_schema_version: 1.0
+
+name: csar-validate-r35854
+
+description: |
+ The VNF Descriptor (VNFD) provided by VNF vendor MUST comply with TOSCA/YAML based Service template
+ for VNF descriptor specified in ETSI NFV-SOL001.
+ Note: As the ETSI NFV-SOL001 is work in progress the below tables summarizes the TOSCA definitions
+ agreed to be part of current version of NFV profile and that VNFD MUST comply with in ONAP Release 2+ Requirements.
+
+info:
+ product: onap-vtp
+ version: 1.0
+ service: validation
+ author: ONAP VTP Team onap-discuss@lists.onap.org
+
+parameters:
+ - name: csar
+ description: CSAR file path
+ long_option: csar
+ short_option: b
+ type: binary
+ is_optional: false
+
+results:
+ direction: landscape
+ attributes:
+ - name: code
+ description: Error code
+ scope: short
+ type: string
+ - name: message
+ description: Error message
+ scope: short
+ type: string
+ - name: file
+ description: File in which error occured
+ scope: short
+ type: string
+ - name: line-no
+ description: Line no at which error occured
+ scope: short
+ type: string
diff --git a/csarvalidation/src/main/resources/open-cli-schema/sol001/vtp-validate-csar-r46527.yaml b/csarvalidation/src/main/resources/open-cli-schema/sol001/vtp-validate-csar-r46527.yaml
new file mode 100644
index 0000000..951f562
--- /dev/null
+++ b/csarvalidation/src/main/resources/open-cli-schema/sol001/vtp-validate-csar-r46527.yaml
@@ -0,0 +1,69 @@
+# Copyright 2018 Huawei Technologies Co., Ltd.
+#
+# 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.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+open_cli_schema_version: 1.0
+
+name: csar-validate-r17852
+
+description: |
+ A VNFD is a deployment template which describes a VNF in terms of deployment and operational
+ behavior requirements. It contains virtualized resources (nodes) requirements as well as connectivity
+ and interfaces requirements and MUST comply with info elements specified in ETSI GS NFV-IFA 011.
+ The main parts of the VNFD are the following:
+ VNF topology: it is modeled in a cloud agnostic way using virtualized containers and their connectivity.
+ Virtual Deployment Units (VDU) describe the capabilities of the virtualized containers, such as virtual
+ CPU, RAM, disks; their connectivity is modeled with VDU Connection Point Descriptors (VduCpd),
+ Virtual Link Descriptors (VnfVld) and VNF External Connection Point Descriptors (VnfExternalCpd);
+ VNF deployment aspects: they are described in one or more deployment flavours, including configurable
+ parameters, instantiation levels, placement constraints (affinity / antiaffinity), minimum and maximum
+ VDU instance numbers. Horizontal scaling is modeled with scaling aspects and the respective scaling levels
+ in the deployment flavours;
+ Note: The deployment aspects (deployment flavour etc.) are postponed for future ONAP releases.
+ VNF lifecycle management (LCM) operations: describes the LCM operations supported per deployment flavour,
+ and their input parameters; Note, thatthe actual LCM implementation resides in a different layer, namely
+ referring to additional template artifacts.
+
+info:
+ product: onap-vtp
+ version: 1.0
+ service: validation
+ author: ONAP VTP Team onap-discuss@lists.onap.org
+
+parameters:
+ - name: csar
+ description: CSAR file path
+ long_option: csar
+ short_option: b
+ type: binary
+ is_optional: false
+
+results:
+ direction: landscape
+ attributes:
+ - name: code
+ description: Error code
+ scope: short
+ type: string
+ - name: message
+ description: Error message
+ scope: short
+ type: string
+ - name: file
+ description: File in which error occured
+ scope: short
+ type: string
+ - name: line-no
+ description: Line no at which error occured
+ scope: short
+ type: string
diff --git a/csarvalidation/src/main/resources/open-cli-schema/sol001/vtp-validate-csar-r54356.yaml b/csarvalidation/src/main/resources/open-cli-schema/sol001/vtp-validate-csar-r54356.yaml
new file mode 100644
index 0000000..ae724a5
--- /dev/null
+++ b/csarvalidation/src/main/resources/open-cli-schema/sol001/vtp-validate-csar-r54356.yaml
@@ -0,0 +1,55 @@
+# Copyright 2018 Huawei Technologies Co., Ltd.
+#
+# 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.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+open_cli_schema_version: 1.0
+
+name: csar-validate-r54356
+
+description: |
+ Data types used by NFV node and is based on TOSCA/YAML constructs specified in draft GS NFV-SOL 001.
+ The node data definitions/attributes used in VNFD MUST comply.
+
+info:
+ product: onap-vtp
+ version: 1.0
+ service: validation
+ author: ONAP VTP Team onap-discuss@lists.onap.org
+
+parameters:
+ - name: csar
+ description: CSAR file path
+ long_option: csar
+ short_option: b
+ type: binary
+ is_optional: false
+
+results:
+ direction: landscape
+ attributes:
+ - name: code
+ description: Error code
+ scope: short
+ type: string
+ - name: message
+ description: Error message
+ scope: short
+ type: string
+ - name: file
+ description: File in which error occured
+ scope: short
+ type: string
+ - name: line-no
+ description: Line no at which error occured
+ scope: short
+ type: string
diff --git a/csarvalidation/src/main/resources/open-cli-schema/sol001/vtp-validate-csar-r65486.yaml b/csarvalidation/src/main/resources/open-cli-schema/sol001/vtp-validate-csar-r65486.yaml
new file mode 100644
index 0000000..4c3a04b
--- /dev/null
+++ b/csarvalidation/src/main/resources/open-cli-schema/sol001/vtp-validate-csar-r65486.yaml
@@ -0,0 +1,55 @@
+# Copyright 2018 Huawei Technologies Co., Ltd.
+#
+# 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.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+open_cli_schema_version: 1.0
+
+name: csar-validate-r65486
+
+description: |
+ The VNFD MUST comply with ETSI GS NFV-SOL001 document endorsing the above mentioned NFV Profile and
+ maintaining the gaps with the requirements specified in ETSI GS NFV-IFA011 standard.
+
+info:
+ product: onap-vtp
+ version: 1.0
+ service: validation
+ author: ONAP VTP Team onap-discuss@lists.onap.org
+
+parameters:
+ - name: csar
+ description: CSAR file path
+ long_option: csar
+ short_option: b
+ type: binary
+ is_optional: false
+
+results:
+ direction: landscape
+ attributes:
+ - name: code
+ description: Error code
+ scope: short
+ type: string
+ - name: message
+ description: Error message
+ scope: short
+ type: string
+ - name: file
+ description: File in which error occured
+ scope: short
+ type: string
+ - name: line-no
+ description: Line no at which error occured
+ scope: short
+ type: string
diff --git a/csarvalidation/src/main/resources/open-cli-schema/sol001/vtp-validate-csar-r67895.yaml b/csarvalidation/src/main/resources/open-cli-schema/sol001/vtp-validate-csar-r67895.yaml
new file mode 100644
index 0000000..f7fc466
--- /dev/null
+++ b/csarvalidation/src/main/resources/open-cli-schema/sol001/vtp-validate-csar-r67895.yaml
@@ -0,0 +1,55 @@
+# Copyright 2018 Huawei Technologies Co., Ltd.
+#
+# 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.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+open_cli_schema_version: 1.0
+
+name: csar-validate-r67895
+
+description: |
+ The VNFD provided by VNF vendor may use the below described TOSCA capabilities.
+ An on-boarding entity (ONAP SDC) MUST support them.
+
+info:
+ product: onap-vtp
+ version: 1.0
+ service: validation
+ author: ONAP VTP Team onap-discuss@lists.onap.org
+
+parameters:
+ - name: csar
+ description: CSAR file path
+ long_option: csar
+ short_option: b
+ type: binary
+ is_optional: false
+
+results:
+ direction: landscape
+ attributes:
+ - name: code
+ description: Error code
+ scope: short
+ type: string
+ - name: message
+ description: Error message
+ scope: short
+ type: string
+ - name: file
+ description: File in which error occured
+ scope: short
+ type: string
+ - name: line-no
+ description: Line no at which error occured
+ scope: short
+ type: string
diff --git a/csarvalidation/src/main/resources/open-cli-schema/sol001/vtp-validate-csar-r95321.yaml b/csarvalidation/src/main/resources/open-cli-schema/sol001/vtp-validate-csar-r95321.yaml
new file mode 100644
index 0000000..e605d0f
--- /dev/null
+++ b/csarvalidation/src/main/resources/open-cli-schema/sol001/vtp-validate-csar-r95321.yaml
@@ -0,0 +1,55 @@
+# Copyright 2018 Huawei Technologies Co., Ltd.
+#
+# 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.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+open_cli_schema_version: 1.0
+
+name: csar-validate-r95321
+
+description: |
+ The VNFD provided by VNF vendor may use the below described TOSCA relationships.
+ An on-boarding entity (ONAP SDC) MUST support them.
+
+info:
+ product: onap-vtp
+ version: 1.0
+ service: validation
+ author: ONAP VTP Team onap-discuss@lists.onap.org
+
+parameters:
+ - name: csar
+ description: CSAR file path
+ long_option: csar
+ short_option: b
+ type: binary
+ is_optional: false
+
+results:
+ direction: landscape
+ attributes:
+ - name: code
+ description: Error code
+ scope: short
+ type: string
+ - name: message
+ description: Error message
+ scope: short
+ type: string
+ - name: file
+ description: File in which error occured
+ scope: short
+ type: string
+ - name: line-no
+ description: Line no at which error occured
+ scope: short
+ type: string
diff --git a/csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r01123.yaml b/csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r01123.yaml
new file mode 100644
index 0000000..043fff2
--- /dev/null
+++ b/csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r01123.yaml
@@ -0,0 +1,60 @@
+# Copyright 2018 Huawei Technologies Co., Ltd.
+#
+# 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.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+open_cli_schema_version: 1.0
+
+name: csar-validate-r01123
+
+description: |
+ The VNF package Manifest file MUST contain: VNF package meta-data, a list of all artifacts
+ (both internal and external) entry’s including their respected URI’s, an algorithm to calculate
+ a digest and a digest result calculated on the content of each artifacts, as specified in
+ ETSI GS NFV-SOL004. The VNF Package MUST include VNF Identification Data to uniquely
+ identify the resource for a given VNF provider. The identification data must include:
+ an identifier for the VNF, the name of the VNF as was given by the VNF provider, VNF
+ description, VNF provider, and version.
+
+info:
+ product: onap-vtp
+ version: 1.0
+ service: validation
+ author: ONAP VTP Team onap-discuss@lists.onap.org
+
+parameters:
+ - name: csar
+ description: CSAR file path
+ long_option: csar
+ short_option: b
+ type: binary
+ is_optional: false
+
+results:
+ direction: landscape
+ attributes:
+ - name: code
+ description: Error code
+ scope: short
+ type: string
+ - name: message
+ description: Error message
+ scope: short
+ type: string
+ - name: file
+ description: File in which error occured
+ scope: short
+ type: string
+ - name: line-no
+ description: Line no at which error occured
+ scope: short
+ type: string
diff --git a/csarvalidation/src/main/resources/open-cli-schema/vtp-validate-csar-r02454.yaml b/csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r02454.yaml
index 03d395d..03d395d 100644
--- a/csarvalidation/src/main/resources/open-cli-schema/vtp-validate-csar-r02454.yaml
+++ b/csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r02454.yaml
diff --git a/csarvalidation/src/main/resources/open-cli-schema/vtp-validate-csar-r04298.yaml b/csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r04298.yaml
index ecbdbcc..ecbdbcc 100644
--- a/csarvalidation/src/main/resources/open-cli-schema/vtp-validate-csar-r04298.yaml
+++ b/csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r04298.yaml
diff --git a/csarvalidation/src/main/resources/open-cli-schema/vtp-validate-csar-r07879.yaml b/csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r07879.yaml
index 3118f89..3118f89 100644
--- a/csarvalidation/src/main/resources/open-cli-schema/vtp-validate-csar-r07879.yaml
+++ b/csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r07879.yaml
diff --git a/csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r10087.yaml b/csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r10087.yaml
new file mode 100644
index 0000000..3428842
--- /dev/null
+++ b/csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r10087.yaml
@@ -0,0 +1,56 @@
+# Copyright 2018 Huawei Technologies Co., Ltd.
+#
+# 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.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+open_cli_schema_version: 1.0
+
+name: csar-validate-r10087
+
+description: |
+ The VNF package MUST contain all standard artifacts as specified in ETSI GS NFV-SOL004 including
+ Manifest file, VNFD (or Main TOSCA/YAML based Service Template) and other optional artifacts.
+ CSAR Manifest file as per SOL004 - for example ROOT\ MainServiceTemplate.mf
+
+info:
+ product: onap-vtp
+ version: 1.0
+ service: validation
+ author: ONAP VTP Team onap-discuss@lists.onap.org
+
+parameters:
+ - name: csar
+ description: CSAR file path
+ long_option: csar
+ short_option: b
+ type: binary
+ is_optional: false
+
+results:
+ direction: landscape
+ attributes:
+ - name: code
+ description: Error code
+ scope: short
+ type: string
+ - name: message
+ description: Error message
+ scope: short
+ type: string
+ - name: file
+ description: File in which error occured
+ scope: short
+ type: string
+ - name: line-no
+ description: Line no at which error occured
+ scope: short
+ type: string
diff --git a/csarvalidation/src/main/resources/open-cli-schema/vtp-validate-csar-r13390.yaml b/csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r13390.yaml
index de07c97..de07c97 100644
--- a/csarvalidation/src/main/resources/open-cli-schema/vtp-validate-csar-r13390.yaml
+++ b/csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r13390.yaml
diff --git a/csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r21322.yaml b/csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r21322.yaml
new file mode 100644
index 0000000..684c876
--- /dev/null
+++ b/csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r21322.yaml
@@ -0,0 +1,55 @@
+# Copyright 2018 Huawei Technologies Co., Ltd.
+#
+# 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.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+open_cli_schema_version: 1.0
+
+name: csar-validate-r21322
+
+description: |
+ The VNF provider MUST provide their testing scripts to support testing as specified in ETSI NFV-SOL004 -
+ Testing directory in CSAR.
+
+info:
+ product: onap-vtp
+ version: 1.0
+ service: validation
+ author: ONAP VTP Team onap-discuss@lists.onap.org
+
+parameters:
+ - name: csar
+ description: CSAR file path
+ long_option: csar
+ short_option: b
+ type: binary
+ is_optional: false
+
+results:
+ direction: landscape
+ attributes:
+ - name: code
+ description: Error code
+ scope: short
+ type: string
+ - name: message
+ description: Error message
+ scope: short
+ type: string
+ - name: file
+ description: File in which error occured
+ scope: short
+ type: string
+ - name: line-no
+ description: Line no at which error occured
+ scope: short
+ type: string
diff --git a/csarvalidation/src/main/resources/open-cli-schema/vtp-validate-csar-r23823.yaml b/csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r23823.yaml
index e504da1..e504da1 100644
--- a/csarvalidation/src/main/resources/open-cli-schema/vtp-validate-csar-r23823.yaml
+++ b/csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r23823.yaml
diff --git a/csarvalidation/src/main/resources/open-cli-schema/vtp-validate-csar-r26881.yaml b/csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r26881.yaml
index 1a7a19b..1a7a19b 100644
--- a/csarvalidation/src/main/resources/open-cli-schema/vtp-validate-csar-r26881.yaml
+++ b/csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r26881.yaml
diff --git a/csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r26885.yaml b/csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r26885.yaml
new file mode 100644
index 0000000..5209792
--- /dev/null
+++ b/csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r26885.yaml
@@ -0,0 +1,57 @@
+# Copyright 2018 Huawei Technologies Co., Ltd.
+#
+# 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.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+open_cli_schema_version: 1.0
+
+name: csar-validate-r10087
+
+description: |
+ The VNF provider MUST provide the binaries and images needed to instantiate the VNF (VNF and VNFC images) either as:
+ Local artifact in CSAR: ROOT\Artifacts\ VNF_Image.bin
+ externally referred (by URI) artifact in Manifest file (also may be referred by VNF Descriptor)
+ Note: Currently, ONAP doesn’t have the capability of Image management, we upload the image into VIM/VNFM manually.
+
+info:
+ product: onap-vtp
+ version: 1.0
+ service: validation
+ author: ONAP VTP Team onap-discuss@lists.onap.org
+
+parameters:
+ - name: csar
+ description: CSAR file path
+ long_option: csar
+ short_option: b
+ type: binary
+ is_optional: false
+
+results:
+ direction: landscape
+ attributes:
+ - name: code
+ description: Error code
+ scope: short
+ type: string
+ - name: message
+ description: Error message
+ scope: short
+ type: string
+ - name: file
+ description: File in which error occured
+ scope: short
+ type: string
+ - name: line-no
+ description: Line no at which error occured
+ scope: short
+ type: string
diff --git a/csarvalidation/src/main/resources/open-cli-schema/vtp-validate-csar-r27310.yaml b/csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r27310.yaml
index 156c20d..156c20d 100644
--- a/csarvalidation/src/main/resources/open-cli-schema/vtp-validate-csar-r27310.yaml
+++ b/csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r27310.yaml
diff --git a/csarvalidation/src/main/resources/open-cli-schema/vtp-validate-csar-r40293.yaml b/csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r40293.yaml
index 2e0e652..2e0e652 100644
--- a/csarvalidation/src/main/resources/open-cli-schema/vtp-validate-csar-r40293.yaml
+++ b/csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r40293.yaml
diff --git a/csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r40820.yaml b/csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r40820.yaml
new file mode 100644
index 0000000..fd4a4ea
--- /dev/null
+++ b/csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r40820.yaml
@@ -0,0 +1,55 @@
+# Copyright 2018 Huawei Technologies Co., Ltd.
+#
+# 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.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+open_cli_schema_version: 1.0
+
+name: csar-validate-r40820
+
+description: |
+ The VNF provider MUST enumerate all of the open source licenses their VNF(s) incorporate. CSAR License
+ directory as per ETSI SOL004. for example ROOT\Licenses\ License_term.txt
+
+info:
+ product: onap-vtp
+ version: 1.0
+ service: validation
+ author: ONAP VTP Team onap-discuss@lists.onap.org
+
+parameters:
+ - name: csar
+ description: CSAR file path
+ long_option: csar
+ short_option: b
+ type: binary
+ is_optional: false
+
+results:
+ direction: landscape
+ attributes:
+ - name: code
+ description: Error code
+ scope: short
+ type: string
+ - name: message
+ description: Error message
+ scope: short
+ type: string
+ - name: file
+ description: File in which error occured
+ scope: short
+ type: string
+ - name: line-no
+ description: Line no at which error occured
+ scope: short
+ type: string
diff --git a/csarvalidation/src/main/resources/open-cli-schema/vtp-validate-csar-r43958.yaml b/csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r43958.yaml
index aaef65a..aaef65a 100644
--- a/csarvalidation/src/main/resources/open-cli-schema/vtp-validate-csar-r43958.yaml
+++ b/csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r43958.yaml
diff --git a/csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r51347.yaml b/csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r51347.yaml
new file mode 100644
index 0000000..45d8e92
--- /dev/null
+++ b/csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r51347.yaml
@@ -0,0 +1,57 @@
+# Copyright 2018 Huawei Technologies Co., Ltd.
+#
+# 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.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+open_cli_schema_version: 1.0
+
+name: csar-validate-r51347
+
+description: |
+ The VNF package MUST be arranged as a CSAR archive as specified in TOSCA Simple Profile in YAML 1.2.
+
+info:
+ product: onap-vtp
+ version: 1.0
+ service: validation
+ author: ONAP VTP Team onap-discuss@lists.onap.org
+ metadata:
+ keyword: MUST
+ introduced: casablanca
+
+parameters:
+ - name: csar
+ description: CSAR file path
+ long_option: csar
+ short_option: b
+ type: binary
+ is_optional: false
+
+results:
+ direction: landscape
+ attributes:
+ - name: code
+ description: Error code
+ scope: short
+ type: string
+ - name: message
+ description: Error message
+ scope: short
+ type: string
+ - name: file
+ description: File in which error occured
+ scope: short
+ type: string
+ - name: line-no
+ description: Line no at which error occured
+ scope: short
+ type: string
diff --git a/csarvalidation/src/main/resources/open-cli-schema/vtp-validate-csar-r66070.yaml b/csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r66070.yaml
index d5bd847..d5bd847 100644
--- a/csarvalidation/src/main/resources/open-cli-schema/vtp-validate-csar-r66070.yaml
+++ b/csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r66070.yaml
diff --git a/csarvalidation/src/main/resources/open-cli-schema/vtp-validate-csar-r77707.yaml b/csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r77707.yaml
index 7f213d7..7f213d7 100644
--- a/csarvalidation/src/main/resources/open-cli-schema/vtp-validate-csar-r77707.yaml
+++ b/csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r77707.yaml
diff --git a/csarvalidation/src/main/resources/open-cli-schema/vtp-validate-csar-r77786.yaml b/csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r77786.yaml
index 787225a..787225a 100644
--- a/csarvalidation/src/main/resources/open-cli-schema/vtp-validate-csar-r77786.yaml
+++ b/csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r77786.yaml
diff --git a/csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r87234.yaml b/csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r87234.yaml
new file mode 100644
index 0000000..01d45bf
--- /dev/null
+++ b/csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r87234.yaml
@@ -0,0 +1,56 @@
+# Copyright 2018 Huawei Technologies Co., Ltd.
+#
+# 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.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+open_cli_schema_version: 1.0
+
+name: csar-validate-r87234
+
+description: |
+ The VNF package provided by a VNF vendor MAY be either with TOSCA-Metadata directory (CSAR Option 1)
+ or without TOSCA-Metadata directory (CSAR Option 2) as specified in ETSI GS NFV-SOL004. On-boarding entity
+ (ONAP SDC) must support both options.
+
+info:
+ product: onap-vtp
+ version: 1.0
+ service: validation
+ author: ONAP VTP Team onap-discuss@lists.onap.org
+
+parameters:
+ - name: csar
+ description: CSAR file path
+ long_option: csar
+ short_option: b
+ type: binary
+ is_optional: false
+
+results:
+ direction: landscape
+ attributes:
+ - name: code
+ description: Error code
+ scope: short
+ type: string
+ - name: message
+ description: Error message
+ scope: short
+ type: string
+ - name: file
+ description: File in which error occured
+ scope: short
+ type: string
+ - name: line-no
+ description: Line no at which error occured
+ scope: short
+ type: string
diff --git a/csarvalidation/src/main/resources/open-cli-schema/vtp-validate-csar.yaml b/csarvalidation/src/main/resources/open-cli-schema/vtp-validate-csar.yaml
index 329122a..709af93 100644
--- a/csarvalidation/src/main/resources/open-cli-schema/vtp-validate-csar.yaml
+++ b/csarvalidation/src/main/resources/open-cli-schema/vtp-validate-csar.yaml
@@ -16,7 +16,7 @@ open_cli_schema_version: 1.0
name: csar-validate
-description: Validate CSAR package formats compliants to ETSI SOL004 and VNFREQS
+description: Validate CSAR package formats compliants to ETSI SOL004, SOL001 and VNFREQS
info:
product: onap-vtp
diff --git a/csarvalidation/src/main/resources/vnfreqs.properties b/csarvalidation/src/main/resources/vnfreqs.properties
index 878b7f0..dde122f 100644
--- a/csarvalidation/src/main/resources/vnfreqs.properties
+++ b/csarvalidation/src/main/resources/vnfreqs.properties
@@ -1,3 +1,3 @@
-vnfreqs.enabled=r02454,r04298,r07879,r09467,r13390,r23823,r26881,r27310,r35851,r40293,r43958,r66070,r77707,r77786
+vnfreqs.enabled=r02454,r04298,r07879,r09467,r13390,r23823,r26881,r27310,r35851,r40293,r43958,r66070,r77707,r77786,r87234,r10087,r21322,r26885,r40820,r35854,r65486,r17852,r46527,r15837,r54356,r67895,r95321,r32155,r01123,r51347
# ignored all chef and ansible related tests
errors.ignored=0x1005,0x1006,r07879-0x1000,r13390-0x1000,r27310-0x1000,r40293-0x1000,r77786-0x1000 \ No newline at end of file