From 5873269dcf426377a037e28a0b16bd18af582a7e Mon Sep 17 00:00:00 2001 From: Bogumil Zebek Date: Tue, 19 Mar 2019 09:59:02 +0100 Subject: PNF TC R293901 Change-Id: I6acfa94ce0fac2b3c46688601c3ec553af4c8b66 Issue-ID: VNFSDK-386 Signed-off-by: Zebek Bogumil --- .../org/onap/cvc/csar/cc/VTPValidateCSARBase.java | 10 ++-- .../onap/cvc/csar/cc/VTPValidatePnfCSARBase.java | 33 ++++++++++++ .../cvc/csar/cc/sol004/VTPValidateCSARR293901.java | 58 ++++++++++++++++++++++ 3 files changed, 98 insertions(+), 3 deletions(-) create mode 100644 csarvalidation/src/main/java/org/onap/cvc/csar/cc/VTPValidatePnfCSARBase.java create mode 100644 csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR293901.java (limited to 'csarvalidation/src/main/java/org/onap/cvc/csar/cc') diff --git a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/VTPValidateCSARBase.java b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/VTPValidateCSARBase.java index d07884d..d879ff3 100644 --- a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/VTPValidateCSARBase.java +++ b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/VTPValidateCSARBase.java @@ -42,14 +42,14 @@ public abstract class VTPValidateCSARBase extends OnapCommand { String path = (String) getParametersMap().get("csar").getValue(); //execute - try { - CSARArchive csar = new CSARArchive(); + try (CSARArchive csar = this.createArchiveInstance()){ csar.init(path); csar.parse(); + errors.addAll(csar.getErrors()); + this.validateCSAR(csar); - csar.cleanup(); } catch (Exception e) { LOG.error(this.getVnfReqsNo() + ": Failed to validate CSAR" , e); throw new OnapCommandExecutionFailed(e.getMessage()); @@ -65,4 +65,8 @@ public abstract class VTPValidateCSARBase extends OnapCommand { this.getResult().setOutput(this.errors); } + + protected CSARArchive createArchiveInstance(){ + return new CSARArchive(); + } } diff --git a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/VTPValidatePnfCSARBase.java b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/VTPValidatePnfCSARBase.java new file mode 100644 index 0000000..2effffd --- /dev/null +++ b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/VTPValidatePnfCSARBase.java @@ -0,0 +1,33 @@ +/* + * Copyright 2019 Nokia + *

+ * 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 org.onap.cvc.csar.CSARArchive; +import org.onap.cvc.csar.PnfCSARArchive; + +import java.util.List; + +public abstract class VTPValidatePnfCSARBase extends VTPValidateCSARBase { + protected CSARArchive createArchiveInstance(){ + return new PnfCSARArchive(); + } + + public List getErrors(){ + return this.errors; + } +} diff --git a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR293901.java b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR293901.java new file mode 100644 index 0000000..09edc34 --- /dev/null +++ b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR293901.java @@ -0,0 +1,58 @@ +/* + * Copyright 2019 Nokia + *

+ * 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.PnfCSARError.PnfCSARErrorEntryMissing; +import org.onap.cvc.csar.cc.VTPValidatePnfCSARBase; + +import java.util.Objects; + +@OnapCommandSchema(schema = "vtp-validate-csar-r293901.yaml") +public class VTPValidateCSARR293901 extends VTPValidatePnfCSARBase { + + private static final int UNKNOWN_LINE_NUMBER = -1; + + @Override + protected void validateCSAR(CSARArchive csar) { + final CSARArchive.TOSCAMeta toscaMeta = csar.getToscaMeta(); + if (Objects.isNull(toscaMeta.getEntryManifestMf())) { + this.errors.add(new PnfCSARErrorEntryMissing( + "ETSI-Entry-Manifest", + CSARArchive.TOSCA_Metadata__TOSCA_Meta, + UNKNOWN_LINE_NUMBER) + ); + } + if (Objects.isNull(toscaMeta.getEntryChangeLog())) { + this.errors.add(new PnfCSARErrorEntryMissing( + "ETSI-Entry-Change-Log", + CSARArchive.TOSCA_Metadata__TOSCA_Meta, + UNKNOWN_LINE_NUMBER) + ); + } + } + + @Override + protected String getVnfReqsNo() { + return "R293901"; + } + + +} -- cgit 1.2.3-korg