From 4827d14388d40fdffd95d560ae6500604aff578f Mon Sep 17 00:00:00 2001 From: Kanagaraj Manickam k00365106 Date: Thu, 28 Mar 2019 17:50:06 +0530 Subject: Update test cases to fix the TOSCA issues Issue-ID: VNFSDK-352 Change-Id: I058dbe23a02244b90f3e9d58c136960249c7ffdf Signed-off-by: Kanagaraj Manickam k00365106 --- .../main/java/org/onap/cvc/csar/CSARArchive.java | 17 +- .../java/org/onap/cvc/csar/VTPValidateCSAR.java | 22 +- .../cvc/csar/cc/sol001/VTPValidateCSARR02454.java | 69 ++++ .../cvc/csar/cc/sol001/VTPValidateCSARR09467.java | 36 +- .../cvc/csar/cc/sol001/VTPValidateCSARR32155.java | 53 +++ .../cvc/csar/cc/sol001/VTPValidateCSARR35851.java | 52 ++- .../cvc/csar/cc/sol001/VTPValidateCSARR54356.java | 422 +++++++++++++++++++++ .../cvc/csar/cc/sol001/VTPValidateCSARR67895.java | 52 +++ .../cvc/csar/cc/sol001/VTPValidateCSARR95321.java | 52 +++ .../cvc/csar/cc/sol004/VTPValidateCSARR01123.java | 2 +- .../cvc/csar/cc/sol004/VTPValidateCSARR02454.java | 69 ---- .../services/org.onap.cli.fw.cmd.OnapCommand | 2 +- .../sol001/vtp-validate-csar-r02454.yaml | 56 +++ .../sol001/vtp-validate-csar-r46527.yaml | 11 +- .../sol004/vtp-validate-csar-r02454.yaml | 56 --- .../sol004/vtp-validate-csar-r26885.yaml | 2 +- .../src/main/resources/vnfreqs.properties | 2 +- .../java/org/onap/cvc/csar/CSARArchiveTest.java | 2 +- 18 files changed, 803 insertions(+), 174 deletions(-) create mode 100644 csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol001/VTPValidateCSARR02454.java delete mode 100644 csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR02454.java create mode 100644 csarvalidation/src/main/resources/open-cli-schema/sol001/vtp-validate-csar-r02454.yaml delete mode 100644 csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r02454.yaml 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; Listlines = 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)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) 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/sol001/VTPValidateCSARR02454.java b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol001/VTPValidateCSARR02454.java new file mode 100644 index 0000000..7d0489e --- /dev/null +++ b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol001/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.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-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 yaml = (Map) new Yaml().load(ipStream); + yaml = (Map) yaml.get("topology_template"); + Map nodeTmpls = (Map) yaml.get("node_templates"); + + boolean vlExist = false; + + for (Object nodeO: nodeTmpls.values()) { + Map node = (Map) 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/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) yaml.get("topology_template"); Map nodeTmpls = (Map) yaml.get("node_templates"); - boolean vlExist = false; + boolean computeExist = false; + boolean storageExist = false; for (Object nodeO: nodeTmpls.values()) { Map node = (Map) 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 yaml = (Map) new Yaml().load(ipStream); + yaml = (Map) yaml.get("topology_template"); + Map yamlTmpls = (Map) yaml.get("node_templates"); + + boolean vlExist[] = new boolean[2]; + + for (Object node0 : yamlTmpls.values()) { + + Map node = (Map) 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) yaml.get("topology_template"); Map nodeTmpls = (Map) yaml.get("node_templates"); - boolean vlExist = false; + boolean vlExist[] = new boolean[3]; for (Object nodeO: nodeTmpls.values()) { Map node = (Map) 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 yaml = (Map) new Yaml().load(ipStream); + yaml = (Map) yaml.get("topology_template"); + Map nodeTmpls = (Map) yaml.get("node_templates"); + + boolean vlExist[] = new boolean[30]; + + for (Object nodeO : nodeTmpls.values()) { + Map node = (Map) 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 yaml = (Map) new Yaml().load(ipStream); + yaml = (Map) yaml.get("topology_template"); + Map nodeTmpls = (Map) yaml.get("node_templates"); + + boolean vlExist[] = new boolean[2]; + + for (Object nodeO : nodeTmpls.values()) { + Map node = (Map) 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 yaml = (Map) new Yaml().load(ipStream); + yaml = (Map) yaml.get("topology_template"); + Map nodeTmpls = (Map) yaml.get("node_templates"); + + boolean vlExist[] = new boolean[2]; + + for (Object nodeO : nodeTmpls.values()) { + Map node = (Map) 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/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR02454.java b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR02454.java deleted file mode 100644 index 14998f5..0000000 --- a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR02454.java +++ /dev/null @@ -1,69 +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.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 yaml = (Map) new Yaml().load(ipStream); - yaml = (Map) yaml.get("topology_template"); - Map nodeTmpls = (Map) yaml.get("node_templates"); - - boolean vlExist = false; - - for (Object nodeO: nodeTmpls.values()) { - Map node = (Map) 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/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/sol001/vtp-validate-csar-r02454.yaml b/csarvalidation/src/main/resources/open-cli-schema/sol001/vtp-validate-csar-r02454.yaml new file mode 100644 index 0000000..03d395d --- /dev/null +++ b/csarvalidation/src/main/resources/open-cli-schema/sol001/vtp-validate-csar-r02454.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-r02454 + +description: | + 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. + +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 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-r02454.yaml b/csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r02454.yaml deleted file mode 100644 index 03d395d..0000000 --- a/csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r02454.yaml +++ /dev/null @@ -1,56 +0,0 @@ -# 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-r02454 - -description: | - 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. - -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-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 diff --git a/csarvalidation/src/test/java/org/onap/cvc/csar/CSARArchiveTest.java b/csarvalidation/src/test/java/org/onap/cvc/csar/CSARArchiveTest.java index 4e13093..bd9b191 100644 --- a/csarvalidation/src/test/java/org/onap/cvc/csar/CSARArchiveTest.java +++ b/csarvalidation/src/test/java/org/onap/cvc/csar/CSARArchiveTest.java @@ -27,7 +27,7 @@ public class CSARArchiveTest { public void testAll() throws IOException, InterruptedException { System.out.println(CSARArchive.SOL0004_2_4_1); - for (String csarFileName: Arrays.asList(new String[] {"enterprise2DC", "VoLTE", "vEPC_NS", "vIMS_NS", "sample2"})) { + for (String csarFileName: Arrays.asList(new String[] {"enterprise2DC", "VoLTE", "vEPC_NS", "vIMS_NS", "sample2"/*, "vUSN"*/})) { try { CSARArchive csar = new CSARArchive(); System.out.println(csarFileName); -- cgit 1.2.3-korg