summaryrefslogtreecommitdiffstats
path: root/csarvalidation/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'csarvalidation/src/main')
-rw-r--r--csarvalidation/src/main/java/org/onap/cvc/csar/CSARArchive.java17
-rw-r--r--csarvalidation/src/main/java/org/onap/cvc/csar/VTPValidateCSAR.java22
-rw-r--r--csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol001/VTPValidateCSARR02454.java (renamed from csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR02454.java)2
-rw-r--r--csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol001/VTPValidateCSARR09467.java36
-rw-r--r--csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol001/VTPValidateCSARR32155.java53
-rw-r--r--csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol001/VTPValidateCSARR35851.java52
-rw-r--r--csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol001/VTPValidateCSARR54356.java422
-rw-r--r--csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol001/VTPValidateCSARR67895.java52
-rw-r--r--csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol001/VTPValidateCSARR95321.java52
-rw-r--r--csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR01123.java2
-rw-r--r--csarvalidation/src/main/resources/META-INF/services/org.onap.cli.fw.cmd.OnapCommand2
-rw-r--r--csarvalidation/src/main/resources/open-cli-schema/sol001/vtp-validate-csar-r02454.yaml (renamed from csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r02454.yaml)0
-rw-r--r--csarvalidation/src/main/resources/open-cli-schema/sol001/vtp-validate-csar-r46527.yaml11
-rw-r--r--csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r26885.yaml2
-rw-r--r--csarvalidation/src/main/resources/vnfreqs.properties2
15 files changed, 678 insertions, 49 deletions
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 9d80605..7574ab5 100644
--- a/csarvalidation/src/main/java/org/onap/cvc/csar/CSARArchive.java
+++ b/csarvalidation/src/main/java/org/onap/cvc/csar/CSARArchive.java
@@ -905,6 +905,15 @@ public class CSARArchive implements AutoCloseable {
}
}
+
+ public String getProductName() {
+ if (this.toscaMeta.getMode().equals(Mode.WITH_TOSCA_META_DIR)) {
+ return this.manifest.getMetadata().getProductName();
+ } else {
+ return this.definition.getMetadata().getTemplateAuthor();
+ }
+ }
+
public String getVendorName() {
if (this.toscaMeta.getMode().equals(Mode.WITH_TOSCA_META_DIR)) {
return this.toscaMeta.getCompanyName();
@@ -915,7 +924,7 @@ public class CSARArchive implements AutoCloseable {
public String getVersion() {
if (this.toscaMeta.getMode().equals(Mode.WITH_TOSCA_META_DIR)) {
- return this.toscaMeta.getCsarVersion();
+ return this.manifest.getMetadata().getPackageVersion();
} else {
return this.definition.getMetadata().getTemplateVersion();
}
@@ -937,7 +946,7 @@ public class CSARArchive implements AutoCloseable {
int lineNo =0;
List<String>lines = FileUtils.readLines(this.manifestMfFile);
- //first hit the metadata section
+ //first hit the metadata: section
for (String line: lines) {
lineNo ++;
line = line.trim();
@@ -955,13 +964,13 @@ public class CSARArchive implements AutoCloseable {
if (lineNo < lines.size()) {
for (int i = lineNo; i< lines.size(); i++) {
String line = lines.get(i).trim();
- i ++;
- if (line.startsWith("#")) {
+ if (line.startsWith("#") || line.isEmpty()) {
continue;
}
String[] tokens = line.split(":");
+ if (tokens.length < 2) continue;
String key = tokens[0];
String value = tokens[1];
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 6a8e3bd..006d78d 100644
--- a/csarvalidation/src/main/java/org/onap/cvc/csar/VTPValidateCSAR.java
+++ b/csarvalidation/src/main/java/org/onap/cvc/csar/VTPValidateCSAR.java
@@ -195,6 +195,7 @@ public class VTPValidateCSAR extends OnapCommand {
//Fill up the basic details
CSARValidation validation = new CSARValidation();
+ validation.getVnf().setName(csar.getProductName());
validation.getVnf().setVendor(csar.getVendorName());
validation.getVnf().setVersion(csar.getVersion());
validation.getVnf().setType("TOSCA");
@@ -206,16 +207,14 @@ public class VTPValidateCSAR extends OnapCommand {
CSARValidation.Result resultSOL004 = new CSARValidation.Result();
resultSOL004.setVnfreqName("SOL004");
resultSOL004.setDescription(csar.getSOL004Version());
- resultSOL004.setErrors(csar.getErrors());
- resultSOL004.setPassed(true);
- for (CSARError error: resultSOL004.getErrors()) {
+ for (CSARError error: csar.getErrors()) {
if (!ignoreCodes.contains(error.getCode())) {
- resultSOL004.setPassed(false);
+ resultSOL004.getErrors().add(error);
overallPass = false;
- break;
}
}
+ resultSOL004.setPassed(resultSOL004.getErrors().size() == 0);
validation.getResults().add(resultSOL004);
@@ -232,22 +231,19 @@ public class VTPValidateCSAR extends OnapCommand {
result.setDescription(cmd.getDescription());
cmd.execute();
- result.setErrors( (List<CSARError>)cmd.getResult().getOutput());
- result.setPassed(true);
-
- for (CSARError error: result.getErrors()) {
- if (!ignoreCodes.contains(error.getCode())) {
- result.setPassed(false);
- overallPass = false;
- break;
+ for (CSARError error: (List<CSARError>) cmd.getResult().getOutput()) {
+ if (!ignoreCodes.contains(error.getCode()) && !ignoreCodes.contains(vnfreq + "-"+ error.getCode())) {
+ result.getErrors().add(error);
}
}
+ result.setPassed(result.getErrors().size() == 0);
validation.getResults().add(result);
} catch (Exception e) {
result.setPassed(false);
overallPass = false;
result.getErrors().add(new CSARArchive.CSARErrorUnknown(e.getMessage()));
+ validation.getResults().add(result);
}
}
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/sol001/VTPValidateCSARR02454.java
index 14998f5..7d0489e 100644
--- a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR02454.java
+++ b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol001/VTPValidateCSARR02454.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package org.onap.cvc.csar.cc.sol004;
+package org.onap.cvc.csar.cc.sol001;
import java.io.FileInputStream;
import java.util.Map;
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
index cbacc35..407d872 100644
--- 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
@@ -1,5 +1,5 @@
/*
- * Copyright 2017 Huawei Technologies Co., Ltd.
+x * 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.
@@ -28,13 +28,20 @@ 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) {
+ public static class CSARErrorEntryMissingVDUCompute extends CSARErrorEntryMissing {
+ public CSARErrorEntryMissingVDUCompute(String defYaml, String entry) {
super(entry, defYaml);
this.setCode("0x1000");
}
}
+ public static class CSARErrorEntryMissingVDUVirtualStorage extends CSARErrorEntryMissing {
+ public CSARErrorEntryMissingVDUVirtualStorage(String defYaml, String entry) {
+ super(entry, defYaml);
+ this.setCode("0x1001");
+ }
+ }
+
@Override
protected void validateCSAR(CSARArchive csar) throws Exception {
try(FileInputStream ipStream = new FileInputStream(csar.getDefinitionYamlFile())) {
@@ -42,23 +49,34 @@ public class VTPValidateCSARR09467 extends VTPValidateCSARBase {
yaml = (Map<String, ?>) yaml.get("topology_template");
Map<String, ?> nodeTmpls = (Map<String,?>) yaml.get("node_templates");
- boolean vlExist = false;
+ boolean computeExist = false;
+ boolean storageExist = 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;
+ computeExist = true;
+
+ }
+
+ if (type.equalsIgnoreCase("tosca.nodes.nfv.VDU.VirtualStorage")) {
+ storageExist = true;
+
}
}
}
- if (!vlExist)
- this.errors.add(new CSARErrorEntryMissingFlavor(
+ if (!computeExist)
+ this.errors.add(new CSARErrorEntryMissingVDUCompute(
csar.getDefinitionYamlFile().getName(),
- "Flavor"));
+ "VDU Compute"));
+
+ if (!storageExist)
+ this.errors.add(new CSARErrorEntryMissingVDUVirtualStorage(
+ csar.getDefinitionYamlFile().getName(),
+ "VirtualStorage"));
}
}
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
index fac261a..c5f6319 100644
--- 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
@@ -19,13 +19,66 @@ 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;
+import org.yaml.snakeyaml.Yaml;
+
+import java.io.FileInputStream;
+import java.util.Map;
@OnapCommandSchema(schema = "vtp-validate-csar-r32155.yaml")
public class VTPValidateCSARR32155 extends VTPValidateCSARBase {
+ public static class CSARErrorEntryMissingVirtualLink extends CSARArchive.CSARErrorEntryMissing {
+ public CSARErrorEntryMissingVirtualLink(String entry, String file) {
+ super(entry, file);
+ 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, ?> yamlTmpls = (Map<String, ?>) yaml.get("node_templates");
+
+ boolean vlExist[] = new boolean[2];
+
+ for (Object node0 : yamlTmpls.values()) {
+
+ Map<String, ?> node = (Map<String, ?>) node0;
+
+ if (node.containsKey("type")) {
+ String type = (String) node.get("type");
+
+ if (type.equalsIgnoreCase("tosca.nodes.nfv.VnfVirtualLinkDesc")) {
+
+ vlExist[0] = true;
+ }
+
+ if (type.equalsIgnoreCase("tosca.capabilities.nfv.VirtualLinkable")) {
+
+ vlExist[1] = true;
+ }
+ }
+ }
+
+ if (!vlExist[0]) {
+ this.errors.add(
+ new CSARErrorEntryMissingVirtualLink(
+ "Virtual",
+ csar.getDefinitionYamlFile().getName()));
+ }
+
+ if (!vlExist[1]) {
+ this.errors.add(
+ new CSARErrorEntryMissingVirtualLink(
+ "Virtual",
+ csar.getDefinitionYamlFile().getName()));
+ }
+ }
+
}
@Override
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
index 6c7b3a6..f25afd7 100644
--- 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
@@ -28,8 +28,23 @@ 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) {
+ public static class CSARErrorEntryMissingDefinitionYamlVnfVirtualLink extends CSARErrorEntryMissing {
+ public CSARErrorEntryMissingDefinitionYamlVnfVirtualLink(String defYaml, String entry) {
+ super(entry, defYaml);
+ this.setCode("0x1000");
+ }
+ }
+
+
+ public static class CSARErrorEntryMissingDefinitionYamlVduCp extends CSARErrorEntryMissing {
+ public CSARErrorEntryMissingDefinitionYamlVduCp(String defYaml, String entry) {
+ super(entry, defYaml);
+ this.setCode("0x1000");
+ }
+ }
+
+ public static class CSARErrorEntryMissingDefinitionYamlVnfExtCp extends CSARErrorEntryMissing {
+ public CSARErrorEntryMissingDefinitionYamlVnfExtCp(String defYaml, String entry) {
super(entry, defYaml);
this.setCode("0x1000");
}
@@ -42,23 +57,44 @@ public class VTPValidateCSARR35851 extends VTPValidateCSARBase {
yaml = (Map<String, ?>) yaml.get("topology_template");
Map<String, ?> nodeTmpls = (Map<String,?>) yaml.get("node_templates");
- boolean vlExist = false;
+ boolean vlExist[] = new boolean[3];
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;
+ vlExist[0] = true;
+
+ }
+
+ if (type.equalsIgnoreCase("tosca.nodes.nfv.VduCp")) {
+ vlExist[1] = true;
+
+ }
+
+ if (type.equalsIgnoreCase("tosca.nodes.nfv.VnfExtCp")) {
+ vlExist[2] = true;
+
}
}
}
- if (!vlExist)
- this.errors.add(new CSARErrorEntryMissingDefinitionYamlTopology(
+ if (!vlExist[0])
+ this.errors.add(new CSARErrorEntryMissingDefinitionYamlVnfVirtualLink(
csar.getDefinitionYamlFile().getName(),
- "Topology VL"));
+ "nodes VnfVirtualLink"));
+
+
+ if (!vlExist[1])
+ this.errors.add(new CSARErrorEntryMissingDefinitionYamlVduCp(
+ csar.getDefinitionYamlFile().getName(),
+ "nodes VduCp"));
+
+ if (!vlExist[2])
+ this.errors.add(new CSARErrorEntryMissingDefinitionYamlVnfExtCp(
+ csar.getDefinitionYamlFile().getName(),
+ "nodes VnfExtCp"));
}
}
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
index 02f7b0d..eaf9ad9 100644
--- 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
@@ -19,13 +19,435 @@ 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;
+import org.yaml.snakeyaml.Yaml;
+
+import java.io.FileInputStream;
+import java.util.Map;
@OnapCommandSchema(schema = "vtp-validate-csar-r54356.yaml")
public class VTPValidateCSARR54356 extends VTPValidateCSARBase {
+ public static class CSARErrorEntryMissingDefinitionYamldatatypesL3AddressData extends CSARArchive.CSARErrorEntryMissing {
+ public CSARErrorEntryMissingDefinitionYamldatatypesL3AddressData(String defYaml, String entry) {
+ super(entry, defYaml);
+ this.setCode("0x1000");
+ }
+ }
+
+ public static class CSARErrorEntryMissingDefinitionYamldatatypesAddressData extends CSARArchive.CSARErrorEntryMissing {
+ public CSARErrorEntryMissingDefinitionYamldatatypesAddressData(String defYaml, String entry) {
+ super(entry, defYaml);
+ this.setCode("0x1000");
+ }
+ }
+
+ public static class CSARErrorEntryMissingDefinitionYamldatatypesVirtualNetworkInterfaceRequirements extends CSARArchive.CSARErrorEntryMissing {
+ public CSARErrorEntryMissingDefinitionYamldatatypesVirtualNetworkInterfaceRequirements(String defYaml, String entry) {
+ super(entry, defYaml);
+ this.setCode("0x1000");
+ }
+ }
+
+ public static class CSARErrorEntryMissingDefinitionYamldatatypesConnectivityType extends CSARArchive.CSARErrorEntryMissing {
+ public CSARErrorEntryMissingDefinitionYamldatatypesConnectivityType(String defYaml, String entry) {
+ super(entry, defYaml);
+ this.setCode("0x1000");
+ }
+ }
+
+ public static class CSARErrorEntryMissingDefinitionYamldatatypesRequestedAdditionalCapability extends CSARArchive.CSARErrorEntryMissing {
+ public CSARErrorEntryMissingDefinitionYamldatatypesRequestedAdditionalCapability(String defYaml, String entry) {
+ super(entry, defYaml);
+ this.setCode("0x1000");
+ }
+ }
+
+ public static class CSARErrorEntryMissingDefinitionYamldatatypesVirtualMemory extends CSARArchive.CSARErrorEntryMissing {
+ public CSARErrorEntryMissingDefinitionYamldatatypesVirtualMemory(String defYaml, String entry) {
+ super(entry, defYaml);
+ this.setCode("0x1000");
+ }
+ }
+
+ public static class CSARErrorEntryMissingDefinitionYamldatatypesVirtualCpu extends CSARArchive.CSARErrorEntryMissing {
+ public CSARErrorEntryMissingDefinitionYamldatatypesVirtualCpu(String defYaml, String entry) {
+ super(entry, defYaml);
+ this.setCode("0x1000");
+ }
+ }
+
+ public static class CSARErrorEntryMissingDefinitionYamldatatypesVirtualCpuPinning extends CSARArchive.CSARErrorEntryMissing {
+ public CSARErrorEntryMissingDefinitionYamldatatypesVirtualCpuPinning(String defYaml, String entry) {
+ super(entry, defYaml);
+ this.setCode("0x1000");
+ }
+ }
+
+ public static class CSARErrorEntryMissingDefinitionYamldatatypesVnfcConfigurableProperties extends CSARArchive.CSARErrorEntryMissing {
+ public CSARErrorEntryMissingDefinitionYamldatatypesVnfcConfigurableProperties(String defYaml, String entry) {
+ super(entry, defYaml);
+ this.setCode("0x1000");
+ }
+ }
+
+ public static class CSARErrorEntryMissingDefinitionYamldatatypesVduProfile extends CSARArchive.CSARErrorEntryMissing {
+ public CSARErrorEntryMissingDefinitionYamldatatypesVduProfile(String defYaml, String entry) {
+ super(entry, defYaml);
+ this.setCode("0x1000");
+ }
+ }
+
+ public static class CSARErrorEntryMissingDefinitionYamldatatypesVlProfile extends CSARArchive.CSARErrorEntryMissing {
+ public CSARErrorEntryMissingDefinitionYamldatatypesVlProfile(String defYaml, String entry) {
+ super(entry, defYaml);
+ this.setCode("0x1000");
+ }
+ }
+
+ public static class CSARErrorEntryMissingDefinitionYamldatatypesInstantiationLevel extends CSARArchive.CSARErrorEntryMissing {
+ public CSARErrorEntryMissingDefinitionYamldatatypesInstantiationLevel(String defYaml, String entry) {
+ super(entry, defYaml);
+ this.setCode("0x1000");
+ }
+ }
+
+ public static class CSARErrorEntryMissingDefinitionYamldatatypesVduLevel extends CSARArchive.CSARErrorEntryMissing {
+ public CSARErrorEntryMissingDefinitionYamldatatypesVduLevel(String defYaml, String entry) {
+ super(entry, defYaml);
+ this.setCode("0x1000");
+ }
+ }
+
+ public static class CSARErrorEntryMissingDefinitionYamldatatypesScaleInfo extends CSARArchive.CSARErrorEntryMissing {
+ public CSARErrorEntryMissingDefinitionYamldatatypesScaleInfo(String defYaml, String entry) {
+ super(entry, defYaml);
+ this.setCode("0x1000");
+ }
+ }
+
+ public static class CSARErrorEntryMissingDefinitionYamldatatypesinjectFile extends CSARArchive.CSARErrorEntryMissing {
+ public CSARErrorEntryMissingDefinitionYamldatatypesinjectFile(String defYaml, String entry) {
+ super(entry, defYaml);
+ this.setCode("0x1000");
+ }
+ }
+
+ public static class CSARErrorEntryMissingDefinitionYamldatatypesScalingAspect extends CSARArchive.CSARErrorEntryMissing {
+ public CSARErrorEntryMissingDefinitionYamldatatypesScalingAspect(String defYaml, String entry) {
+ super(entry, defYaml);
+ this.setCode("0x1000");
+ }
+ }
+
+ public static class CSARErrorEntryMissingDefinitionYamldatatypesLinkBitRateRequirements extends CSARArchive.CSARErrorEntryMissing {
+ public CSARErrorEntryMissingDefinitionYamldatatypesLinkBitRateRequirements(String defYaml, String entry) {
+ super(entry, defYaml);
+ this.setCode("0x1000");
+ }
+ }
+
+ public static class CSARErrorEntryMissingDefinitionYamldatatypesQos extends CSARArchive.CSARErrorEntryMissing {
+ public CSARErrorEntryMissingDefinitionYamldatatypesQos(String defYaml, String entry) {
+ super(entry, defYaml);
+ this.setCode("0x1000");
+ }
+ }
+
+ public static class CSARErrorEntryMissingDefinitionYamldatatypesCpProtocolData extends CSARArchive.CSARErrorEntryMissing {
+ public CSARErrorEntryMissingDefinitionYamldatatypesCpProtocolData(String defYaml, String entry) {
+ super(entry, defYaml);
+ this.setCode("0x1000");
+ }
+ }
+
+ public static class CSARErrorEntryMissingDefinitionYamldatatypesVnfConfigurableProperties extends CSARArchive.CSARErrorEntryMissing {
+ public CSARErrorEntryMissingDefinitionYamldatatypesVnfConfigurableProperties(String defYaml, String entry) {
+ super(entry, defYaml);
+ this.setCode("0x1000");
+ }
+ }
+
+ public static class CSARErrorEntryMissingDefinitionYamldatatypesVnfAdditionalConfigurableProperties extends CSARArchive.CSARErrorEntryMissing {
+ public CSARErrorEntryMissingDefinitionYamldatatypesVnfAdditionalConfigurableProperties(String defYaml, String entry) {
+ super(entry, defYaml);
+ this.setCode("0x1000");
+ }
+ }
+
+ public static class CSARErrorEntryMissingDefinitionYamldatatypesVnfInfoModifiableAttributes extends CSARArchive.CSARErrorEntryMissing {
+ public CSARErrorEntryMissingDefinitionYamldatatypesVnfInfoModifiableAttributes(String defYaml, String entry) {
+ super(entry, defYaml);
+ this.setCode("0x1000");
+ }
+ }
+
+ public static class CSARErrorEntryMissingDefinitionYamldatatypesVnfInfoModifiableAttributesExtensions extends CSARArchive.CSARErrorEntryMissing {
+ public CSARErrorEntryMissingDefinitionYamldatatypesVnfInfoModifiableAttributesExtensions(String defYaml, String entry) {
+ super(entry, defYaml);
+ this.setCode("0x1000");
+ }
+ }
+
+ public static class CSARErrorEntryMissingDefinitionYamldatatypesVnfInfoModifiableAttributesMetadata extends CSARArchive.CSARErrorEntryMissing {
+ public CSARErrorEntryMissingDefinitionYamldatatypesVnfInfoModifiableAttributesMetadata(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[] = new boolean[30];
+
+ 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.datatypes.nfv.L3AddressData")) {
+ vlExist[0] = true;
+
+ }
+
+ if (type.equalsIgnoreCase("tosca.datatypes.nfv.AddressData")) {
+ vlExist[1] = true;
+
+ }
+
+ if (type.equalsIgnoreCase("tosca.datatypes.nfv.VirtualNetworkInterfaceRequirements")) {
+ vlExist[2] = true;
+
+ }
+
+ if (type.equalsIgnoreCase("tosca.datatypes.nfv.ConnectivityType")) {
+ vlExist[3] = true;
+
+ }
+
+ if (type.equalsIgnoreCase("tosca.datatypes.nfv.RequestedAdditionalCapability")) {
+ vlExist[4] = true;
+
+ }
+
+ if (type.equalsIgnoreCase("tosca.datatypes.nfv.VirtualMemory")) {
+ vlExist[5] = true;
+
+ }
+
+ if (type.equalsIgnoreCase("tosca.datatypes.nfv.VirtualCpu")) {
+ vlExist[6] = true;
+
+ }
+
+ if (type.equalsIgnoreCase("tosca.datatypes.nfv.VirtualCpuPinning")) {
+ vlExist[7] = true;
+
+ }
+
+ if (type.equalsIgnoreCase("tosca.datatypes.nfv.VnfcConfigurableProperties")) {
+ vlExist[8] = true;
+
+ }
+
+ if (type.equalsIgnoreCase("tosca.datatypes.nfv.VduProfile")) {
+ vlExist[9] = true;
+
+ }
+
+ if (type.equalsIgnoreCase("tosca.datatypes.nfv.VlProfile")) {
+ vlExist[10] = true;
+
+ }
+
+ if (type.equalsIgnoreCase("tosca.datatypes.nfv.InstantiationLevel")) {
+ vlExist[11] = true;
+
+ }
+
+ if (type.equalsIgnoreCase("tosca.datatypes.nfv.VduLevel")) {
+ vlExist[12] = true;
+
+ }
+ if (type.equalsIgnoreCase("tosca.datatypes.nfv.ScaleInfo")) {
+ vlExist[13] = true;
+
+ }
+ if (type.equalsIgnoreCase("tosca.datatypes.nfv.injectFile")) {
+ vlExist[14] = true;
+
+ }
+
+ if (type.equalsIgnoreCase("tosca.datatypes.nfv.ScalingAspect")) {
+ vlExist[15] = true;
+
+ }
+
+ if (type.equalsIgnoreCase("tosca.datatypes.nfv.LinkBitRateRequirements")) {
+ vlExist[16] = true;
+
+ }
+
+ if (type.equalsIgnoreCase("tosca.datatypes.nfv.Qos")) {
+ vlExist[17] = true;
+
+ }
+
+ if (type.equalsIgnoreCase("tosca.datatypes.nfv.CpProtocolData")) {
+ vlExist[18] = true;
+
+ }
+
+ if (type.equalsIgnoreCase("tosca.datatypes.nfv.VnfConfigurableProperties")) {
+ vlExist[19] = true;
+
+ }
+
+ if (type.equalsIgnoreCase("tosca.datatypes.nfv.VnfAdditionalConfigurableProperties")) {
+ vlExist[20] = true;
+
+ }
+
+ if (type.equalsIgnoreCase("tosca.datatypes.nfv.VnfInfoModifiableAttributes")) {
+ vlExist[21] = true;
+
+ }
+
+ if (type.equalsIgnoreCase("tosca.datatypes.nfv.VnfInfoModifiableAttributesExtensions")) {
+ vlExist[22] = true;
+
+ }
+ if (type.equalsIgnoreCase("tosca.datatypes.nfv.VnfInfoModifiableAttributesMetadata")) {
+ vlExist[23] = true;
+
+ }
+
+ }
+ }
+
+ if (!vlExist[0])
+ this.errors.add(new CSARErrorEntryMissingDefinitionYamldatatypesL3AddressData(
+ csar.getDefinitionYamlFile().getName(),
+ "datatypes L3AddressData"));
+
+
+ if (!vlExist[1])
+ this.errors.add(new CSARErrorEntryMissingDefinitionYamldatatypesAddressData(
+ csar.getDefinitionYamlFile().getName(),
+ "datatypes AddressData"));
+
+ if (!vlExist[2])
+ this.errors.add(new CSARErrorEntryMissingDefinitionYamldatatypesVirtualNetworkInterfaceRequirements(
+ csar.getDefinitionYamlFile().getName(),
+ "datatypes VirtualNetworkInterfaceRequirements"));
+
+ if (!vlExist[3])
+ this.errors.add(new CSARErrorEntryMissingDefinitionYamldatatypesConnectivityType(
+ csar.getDefinitionYamlFile().getName(),
+ "datatypes ConnectivityType"));
+
+ if (!vlExist[4])
+ this.errors.add(new CSARErrorEntryMissingDefinitionYamldatatypesRequestedAdditionalCapability(
+ csar.getDefinitionYamlFile().getName(),
+ "datatypes RequestedAdditionalCapability"));
+
+ if (!vlExist[5])
+ this.errors.add(new CSARErrorEntryMissingDefinitionYamldatatypesVirtualMemory(
+ csar.getDefinitionYamlFile().getName(),
+ "datatypes VirtualMemory"));
+
+ if (!vlExist[6])
+ this.errors.add(new CSARErrorEntryMissingDefinitionYamldatatypesVirtualCpu(
+ csar.getDefinitionYamlFile().getName(),
+ "datatypes VirtualCpu"));
+
+ if (!vlExist[7])
+ this.errors.add(new CSARErrorEntryMissingDefinitionYamldatatypesVirtualCpuPinning(
+ csar.getDefinitionYamlFile().getName(),
+ "datatypes VirtualCpuPinning"));
+
+ if (!vlExist[8])
+ this.errors.add(new CSARErrorEntryMissingDefinitionYamldatatypesVnfcConfigurableProperties(
+ csar.getDefinitionYamlFile().getName(),
+ "datatypes VnfcConfigurableProperties"));
+
+ if (!vlExist[9])
+ this.errors.add(new CSARErrorEntryMissingDefinitionYamldatatypesVduProfile(
+ csar.getDefinitionYamlFile().getName(),
+ "datatypes VduProfile"));
+
+ if (!vlExist[10])
+ this.errors.add(new CSARErrorEntryMissingDefinitionYamldatatypesVlProfile(
+ csar.getDefinitionYamlFile().getName(),
+ "datatypes VlProfile"));
+
+ if (!vlExist[11])
+ this.errors.add(new CSARErrorEntryMissingDefinitionYamldatatypesInstantiationLevel(
+ csar.getDefinitionYamlFile().getName(),
+ "datatypes InstantiationLevel"));
+
+ if (!vlExist[12])
+ this.errors.add(new CSARErrorEntryMissingDefinitionYamldatatypesVduLevel(
+ csar.getDefinitionYamlFile().getName(),
+ "datatypes VduLevel"));
+
+ if (!vlExist[13])
+ this.errors.add(new CSARErrorEntryMissingDefinitionYamldatatypesScaleInfo(
+ csar.getDefinitionYamlFile().getName(),
+ "datatypes ScaleInfo"));
+
+ if (!vlExist[14])
+ this.errors.add(new CSARErrorEntryMissingDefinitionYamldatatypesinjectFile(
+ csar.getDefinitionYamlFile().getName(),
+ "datatypes injectFile"));
+
+ if (!vlExist[15])
+ this.errors.add(new CSARErrorEntryMissingDefinitionYamldatatypesScalingAspect(
+ csar.getDefinitionYamlFile().getName(),
+ "datatypes ScalingAspect"));
+
+ if (!vlExist[16])
+ this.errors.add(new CSARErrorEntryMissingDefinitionYamldatatypesLinkBitRateRequirements(
+ csar.getDefinitionYamlFile().getName(),
+ "datatypes LinkBitRateRequirements"));
+
+ if (!vlExist[17])
+ this.errors.add(new CSARErrorEntryMissingDefinitionYamldatatypesQos(
+ csar.getDefinitionYamlFile().getName(),
+ "datatypes Qos"));
+
+ if (!vlExist[18])
+ this.errors.add(new CSARErrorEntryMissingDefinitionYamldatatypesCpProtocolData(
+ csar.getDefinitionYamlFile().getName(),
+ "datatypes CpProtocolData"));
+
+ if (!vlExist[19])
+ this.errors.add(new CSARErrorEntryMissingDefinitionYamldatatypesVnfConfigurableProperties(
+ csar.getDefinitionYamlFile().getName(),
+ "datatypes VnfConfigurableProperties"));
+
+ if (!vlExist[20])
+ this.errors.add(new CSARErrorEntryMissingDefinitionYamldatatypesVnfAdditionalConfigurableProperties(
+ csar.getDefinitionYamlFile().getName(),
+ "datatypes VnfAdditionalConfigurableProperties"));
+
+ if (!vlExist[21])
+ this.errors.add(new CSARErrorEntryMissingDefinitionYamldatatypesVnfInfoModifiableAttributes(
+ csar.getDefinitionYamlFile().getName(),
+ "datatypes VnfInfoModifiableAttributes"));
+
+ if (!vlExist[22])
+ this.errors.add(new CSARErrorEntryMissingDefinitionYamldatatypesVnfInfoModifiableAttributesExtensions(
+ csar.getDefinitionYamlFile().getName(),
+ "datatypes VnfInfoModifiableAttributesExtensions"));
+ if (!vlExist[23])
+ this.errors.add(new CSARErrorEntryMissingDefinitionYamldatatypesVnfInfoModifiableAttributesMetadata(
+ csar.getDefinitionYamlFile().getName(),
+ "datatypes VnfInfoModifiableAttributesMetadata"));
+ }
}
@Override
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
index a45ba5e..c6075bc 100644
--- 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
@@ -19,12 +19,64 @@ 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;
+import org.yaml.snakeyaml.Yaml;
+
+import java.io.FileInputStream;
+import java.util.Map;
@OnapCommandSchema(schema = "vtp-validate-csar-r67895.yaml")
public class VTPValidateCSARR67895 extends VTPValidateCSARBase {
+
+ public static class CSARErrorEntryMissingDefinitionYamlcapabilitiesVirtualBindable extends CSARArchive.CSARErrorEntryMissing {
+ public CSARErrorEntryMissingDefinitionYamlcapabilitiesVirtualBindable(String defYaml, String entry) {
+ super(entry, defYaml);
+ this.setCode("0x1000");
+ }
+ }
+
+ public static class CSARErrorEntryMissingDefinitionYamlcapabilitiesVirtualLinkable extends CSARArchive.CSARErrorEntryMissing {
+ public CSARErrorEntryMissingDefinitionYamlcapabilitiesVirtualLinkable(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[] = new boolean[2];
+
+ 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.capabilities.nfv.VirtualBindable")) {
+ vlExist[0] = true;
+
+ }
+
+ if (type.equalsIgnoreCase("tosca.capabilities.nfv.VirtualLinkable")) {
+ vlExist[1] = true;
+
+ }
+ }
+ }
+
+ if (!vlExist[0])
+ this.errors.add(new CSARErrorEntryMissingDefinitionYamlcapabilitiesVirtualBindable(
+ csar.getDefinitionYamlFile().getName(),
+ "capabilities VirtualBindable"));
+
+ if (!vlExist[1])
+ this.errors.add(new CSARErrorEntryMissingDefinitionYamlcapabilitiesVirtualLinkable(
+ csar.getDefinitionYamlFile().getName(),
+ "capabilities VirtualLinkable"));
+ }
}
@Override
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
index fd9b2d6..c7daafe 100644
--- 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
@@ -19,13 +19,65 @@ 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;
+import org.yaml.snakeyaml.Yaml;
+
+import java.io.FileInputStream;
+import java.util.Map;
@OnapCommandSchema(schema = "vtp-validate-csar-r95321.yaml")
public class VTPValidateCSARR95321 extends VTPValidateCSARBase {
+ public static class CSARErrorEntryMissingDefinitionYamlRelationshipsVirtualBindsTo extends CSARArchive.CSARErrorEntryMissing {
+ public CSARErrorEntryMissingDefinitionYamlRelationshipsVirtualBindsTo(String defYaml, String entry) {
+ super(entry, defYaml);
+ this.setCode("0x1000");
+ }
+ }
+
+ public static class CSARErrorEntryMissingDefinitionYamlRelationshipsVirtualLinksTo extends CSARArchive.CSARErrorEntryMissing {
+ public CSARErrorEntryMissingDefinitionYamlRelationshipsVirtualLinksTo(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[] = new boolean[2];
+
+ 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.relationships.nfv.VirtualBindsTo")) {
+ vlExist[0] = true;
+
+ }
+
+ if (type.equalsIgnoreCase("tosca.relationships.nfv.VirtualLinksTo")) {
+ vlExist[1] = true;
+
+ }
+ }
+ }
+
+ if (!vlExist[0])
+ this.errors.add(new CSARErrorEntryMissingDefinitionYamlRelationshipsVirtualBindsTo(
+ csar.getDefinitionYamlFile().getName(),
+ "Relationships VirtualBindsTo"));
+
+ if (!vlExist[1])
+ this.errors.add(new CSARErrorEntryMissingDefinitionYamlRelationshipsVirtualLinksTo(
+ csar.getDefinitionYamlFile().getName(),
+ "RelationshipsRelationships VirtualLinksTo"));
+ }
}
@Override
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
index 8fc216b..a34196e 100644
--- 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
@@ -21,7 +21,7 @@ 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")
+@OnapCommandSchema(schema = "vtp-validate-csar-r01123.yaml")
public class VTPValidateCSARR01123 extends VTPValidateCSARBase {
public static class CSARErrorEntryVNFProviderDetailsNotFound extends CSARErrorEntryMissing {
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 800784c..4c8cfea 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
@@ -24,8 +24,8 @@ 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.sol001.VTPValidateCSARR02454
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
diff --git a/csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r02454.yaml b/csarvalidation/src/main/resources/open-cli-schema/sol001/vtp-validate-csar-r02454.yaml
index 03d395d..03d395d 100644
--- a/csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r02454.yaml
+++ b/csarvalidation/src/main/resources/open-cli-schema/sol001/vtp-validate-csar-r02454.yaml
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
index 176fd5f..a23cacd 100644
--- 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
@@ -14,21 +14,12 @@
open_cli_schema_version: 1.0
-name: csar-validate-r17852
+name: csar-validate-r46527
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;
info:
product: onap-vtp
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
index 5209792..71dc113 100644
--- 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
@@ -14,7 +14,7 @@
open_cli_schema_version: 1.0
-name: csar-validate-r10087
+name: csar-validate-r26885
description: |
The VNF provider MUST provide the binaries and images needed to instantiate the VNF (VNF and VNFC images) either as:
diff --git a/csarvalidation/src/main/resources/vnfreqs.properties b/csarvalidation/src/main/resources/vnfreqs.properties
index f290fb8..02e49d5 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,r87234,r10087,r21322,r26885,r40820,r35854,r65486,r17852,r46527,r15837,r54356,r67895,r95321,r32155,r01123,r51347,r293901
# 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
+errors.ignored=0x1005,0x1006,r07879-0x1000,r13390-0x1000,r27310-0x1000,r40293-0x1000,r77786-0x1000,r04298-0x1000,r07879-0x1000,r10087-0x1000,r13390-0x1000,r23823-0x1000,r26881-0x1000,r40820-0x1000,r35851-0x1000,r32155-0x1000,r54356-0x1000,r67895-0x1000,r95321-0x1000,r46527-0x1000,r02454-0x1000