summaryrefslogtreecommitdiffstats
path: root/csarvalidation/src
diff options
context:
space:
mode:
authorBogumil Zebek <bogumil.zebek@nokia.com>2019-05-07 11:40:25 +0200
committerZebek Bogumil <bogumil.zebek@nokia.com>2019-05-07 11:40:25 +0200
commit01787f2f35190cbd643535f6bb7602bf69314902 (patch)
tree78f92e3beb7d1f3b2a790244cbf47200ad3973fc /csarvalidation/src
parente7fe2df29de3685b707414ac97f13b86c70e5ed6 (diff)
Fix internal errors
Change-Id: Ifdc6995fdadfc4e0ef575e9688b4e331afedce73 Issue-ID: VNFSDK-404 Signed-off-by: Zebek Bogumil <bogumil.zebek@nokia.com>
Diffstat (limited to 'csarvalidation/src')
-rw-r--r--csarvalidation/src/main/java/org/onap/cvc/csar/CSARArchive.java27
-rw-r--r--csarvalidation/src/main/java/org/onap/cvc/csar/PnfCSARArchive.java6
-rw-r--r--csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR10087.java15
-rw-r--r--csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r10087.yaml7
-rw-r--r--csarvalidation/src/main/resources/vnfreqs.properties2
-rw-r--r--csarvalidation/src/test/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR10087IntegrationTest.java134
-rw-r--r--csarvalidation/src/test/resources/pnf/r10087/invalidChangeHistoryLog.csarbin0 -> 4110 bytes
-rw-r--r--csarvalidation/src/test/resources/pnf/r10087/invalidEntryDefinitionsInToscaMeta.csarbin0 -> 4111 bytes
-rw-r--r--csarvalidation/src/test/resources/pnf/r10087/invalidManifestFile.csarbin0 -> 4117 bytes
-rw-r--r--csarvalidation/src/test/resources/pnf/r10087/invalidTestDirectory.csarbin0 -> 4110 bytes
-rw-r--r--csarvalidation/src/test/resources/pnf/r10087/noToscaMetaFile.csarbin0 -> 3621 bytes
11 files changed, 159 insertions, 32 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 448469d..0924de7 100644
--- a/csarvalidation/src/main/java/org/onap/cvc/csar/CSARArchive.java
+++ b/csarvalidation/src/main/java/org/onap/cvc/csar/CSARArchive.java
@@ -901,18 +901,19 @@ public class CSARArchive implements AutoCloseable {
}
private void setMode() {
- if (new File(this.tempDir.toFile().getAbsolutePath() + File.separator + TOSCA_Metadata + File.separator + TOSCA_Metadata__TOSCA_Meta).exists()){
+ if (isToscaMetaFileExist()){
this.toscaMeta.setMode(Mode.WITH_TOSCA_META_DIR);
} else {
this.toscaMeta.setMode(Mode.WITHOUT_TOSCA_META_DIR);
}
}
+ private boolean isToscaMetaFileExist() {
+ return new File(this.tempDir.toFile().getAbsolutePath() + File.separator +
+ TOSCA_Metadata + File.separator + TOSCA_Metadata__TOSCA_Meta).exists();
+ }
+
void parseManifest() throws IOException {
- //manifest is optional, so check for it
- if (this.manifestMfFile == null) {
- return;
- }
int lineNo =0;
List<String>lines = FileUtils.readLines(this.manifestMfFile);
@@ -967,10 +968,6 @@ public class CSARArchive implements AutoCloseable {
}
private void parseDefinitionMetadata() throws IOException {
- if(Objects.isNull(this.definitionYamlFile)){
- return;
- }
-
try(FileInputStream ipStream = new FileInputStream(this.definitionYamlFile)) {
Map<String, ?> yaml = (Map<String, ?>) new Yaml().load(ipStream);
@@ -1295,10 +1292,18 @@ public class CSARArchive implements AutoCloseable {
this.parseMeta();
//process manifest
- this.parseManifest();
+ if(isFileExists(this.manifestMfFile)) {
+ this.parseManifest();
+ }
//process definition
- this.parseDefinitionMetadata();
+ if(isFileExists(this.definitionYamlFile)){
+ this.parseDefinitionMetadata();
+ }
+ }
+
+ private boolean isFileExists(File file) {
+ return !Objects.isNull(file) && file.exists();
}
public void cleanup() throws IOException {
diff --git a/csarvalidation/src/main/java/org/onap/cvc/csar/PnfCSARArchive.java b/csarvalidation/src/main/java/org/onap/cvc/csar/PnfCSARArchive.java
index b51faf8..5ac67cd 100644
--- a/csarvalidation/src/main/java/org/onap/cvc/csar/PnfCSARArchive.java
+++ b/csarvalidation/src/main/java/org/onap/cvc/csar/PnfCSARArchive.java
@@ -31,12 +31,6 @@ public class PnfCSARArchive extends CSARArchive {
@Override
void parseManifest() throws IOException {
-
- //manifest is optional, so check for it
- if (this.getManifestMfFile() == null) {
- return;
- }
-
PnfManifestParser pnfManifestParser = PnfManifestParser.getInstance(
this.getManifestMfFile()
);
diff --git a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR10087.java b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR10087.java
index 0e80add..396564e 100644
--- a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR10087.java
+++ b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR10087.java
@@ -18,11 +18,6 @@ package org.onap.cvc.csar.cc.sol004;
import org.onap.cli.fw.schema.OnapCommandSchema;
import org.onap.cvc.csar.CSARArchive;
-import org.onap.cvc.csar.CSARArchive.CSARError;
-import org.onap.cvc.csar.CSARArchive.CSARErrorEntryMissingToscaDefinitionMetadataTemplateName;
-import org.onap.cvc.csar.CSARArchive.CSARErrorEntryMissingToscaDefinitionNotFound;
-import org.onap.cvc.csar.CSARArchive.CSARErrorEntryMissingToscaMetaDefinition;
-import org.onap.cvc.csar.CSARArchive.CSARErrorInvalidEntryValueManifestNotFound;
import org.onap.cvc.csar.cc.VTPValidateCSARBase;
@OnapCommandSchema(schema = "vtp-validate-csar-r10087.yaml")
@@ -30,15 +25,7 @@ public class VTPValidateCSARR10087 extends VTPValidateCSARBase {
@Override
protected void validateCSAR(CSARArchive csar) throws Exception {
-
- for (CSARError e : csar.getErrors()) {
- if (e instanceof CSARErrorEntryMissingToscaMetaDefinition ||
- e instanceof CSARErrorEntryMissingToscaDefinitionNotFound ||
- e instanceof CSARErrorEntryMissingToscaDefinitionMetadataTemplateName ||
- e instanceof CSARErrorInvalidEntryValueManifestNotFound) {
- this.errors.add(e);
- }
- }
+ // During CSAR parsing file structure was checked and errors were generated if needed.
}
@Override
diff --git a/csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r10087.yaml b/csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r10087.yaml
index 3428842..299fcf9 100644
--- a/csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r10087.yaml
+++ b/csarvalidation/src/main/resources/open-cli-schema/sol004/vtp-validate-csar-r10087.yaml
@@ -34,6 +34,13 @@ parameters:
short_option: b
type: binary
is_optional: false
+ - name: pnf
+ description: CSAR file contains PNF
+ long_option: pnf
+ short_option: p
+ type: bool
+ is_optional: true
+ default_value: false
results:
direction: landscape
diff --git a/csarvalidation/src/main/resources/vnfreqs.properties b/csarvalidation/src/main/resources/vnfreqs.properties
index 935729a..cbb681d 100644
--- a/csarvalidation/src/main/resources/vnfreqs.properties
+++ b/csarvalidation/src/main/resources/vnfreqs.properties
@@ -1,5 +1,5 @@
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,r787965
-pnfreqs.enabled=r87234,r35854,r15837,r17852,r293901,r146092,r57019,r787965
+pnfreqs.enabled=r10087,r87234,r35854,r15837,r17852,r293901,r146092,r57019,r787965
# ignored all chef and ansible related tests
vnferrors.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
pnferrors.ignored= \ No newline at end of file
diff --git a/csarvalidation/src/test/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR10087IntegrationTest.java b/csarvalidation/src/test/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR10087IntegrationTest.java
new file mode 100644
index 0000000..136baf0
--- /dev/null
+++ b/csarvalidation/src/test/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR10087IntegrationTest.java
@@ -0,0 +1,134 @@
+/*
+ * Copyright 2019 Nokia
+ * <p>
+ * 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
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * 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.junit.Before;
+import org.junit.Test;
+import org.onap.cli.fw.output.OnapCommandResult;
+import org.onap.cvc.csar.CSARArchive;
+
+import java.util.List;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.onap.cvc.csar.cc.sol004.IntegrationTestUtils.configureTestCase;
+import static org.onap.cvc.csar.cc.sol004.IntegrationTestUtils.convertToMessagesList;
+
+
+public class VTPValidateCSARR10087IntegrationTest {
+
+ private VTPValidateCSARR10087 testCase;
+
+ @Before
+ public void setUp() {
+ testCase = new VTPValidateCSARR10087();
+ }
+
+ @Test
+ public void shouldReturnProperRequestNumber() {
+ assertThat(testCase.getVnfReqsNo()).isEqualTo("R10087");
+ }
+
+ @Test
+ public void shouldReportThatDefinitionYAMLIsNotAvailable() throws Exception {
+ // given
+ configureTestCase(testCase, "pnf/r10087/noToscaMetaFile.csar");
+
+ // when
+ testCase.execute();
+
+ // then
+ List<CSARArchive.CSARError> errors = testCase.getErrors();
+ assertThat(errors.size()).isEqualTo(4);
+ assertThat(convertToMessagesList(errors)).contains(
+ "Missing. Entry [Definition YAML]",
+ "Ignored. Entry [MainServiceTemplate.mf]",
+ "Ignored. Entry [Artifacts]",
+ "Ignored. Entry [Definitions]"
+ );
+ }
+
+ @Test
+ public void shouldReportThatDefinitionYAMLDoesNotExist() throws Exception {
+ // given
+ configureTestCase(testCase, "pnf/r10087/invalidEntryDefinitionsInToscaMeta.csar");
+
+ // when
+ testCase.execute();
+
+ // then
+ List<CSARArchive.CSARError> errors = testCase.getErrors();
+ assertThat(errors.size()).isEqualTo(1);
+ assertThat(convertToMessagesList(errors)).contains(
+ "Invalid value. Entry [Entry-Definitions]. Definitions/WRONG_FILE_NAME.yaml does not exist"
+ );
+ }
+
+
+ @Test
+ public void shouldReportThatManifestFileDoesNotExist() throws Exception {
+ // given
+ configureTestCase(testCase, "pnf/r10087/invalidManifestFile.csar");
+
+ // when
+ testCase.execute();
+
+ // then
+ List<CSARArchive.CSARError> errors = testCase.getErrors();
+ assertThat(errors.size()).isEqualTo(1);
+ assertThat(convertToMessagesList(errors)).contains(
+ "Invalid value. Entry [ETSI-Entry-Manifest]. INVALID_MANIFEST_FILE_NAME.mf does not exist"
+ );
+ }
+
+
+ @Test
+ public void shouldReportThatChangeHistoryLogFileDoesNotExist() throws Exception {
+ // given
+ configureTestCase(testCase, "pnf/r10087/invalidChangeHistoryLog.csar");
+
+ // when
+ testCase.execute();
+
+ // then
+ List<CSARArchive.CSARError> errors = testCase.getErrors();
+ assertThat(errors.size()).isEqualTo(1);
+ assertThat(convertToMessagesList(errors)).contains(
+ "Invalid value. Entry [ETSI-Entry-Change-Log]. Artifacts/INVALID_FILE_NAME.txt does not exist"
+ );
+ }
+
+ @Test
+ public void shouldReportThatTestDirectoryDoesNotExist() throws Exception {
+ // given
+ configureTestCase(testCase, "pnf/r10087/invalidTestDirectory.csar");
+
+ // when
+ testCase.execute();
+
+ // then
+ List<CSARArchive.CSARError> errors = testCase.getErrors();
+ assertThat(errors.size()).isEqualTo(1);
+ assertThat(convertToMessagesList(errors)).contains(
+ "Invalid value. Entry [Entry-Tests]. Artifacts/InvalidTestsDirectory folder does not exist"
+ );
+ }
+
+
+
+
+} \ No newline at end of file
diff --git a/csarvalidation/src/test/resources/pnf/r10087/invalidChangeHistoryLog.csar b/csarvalidation/src/test/resources/pnf/r10087/invalidChangeHistoryLog.csar
new file mode 100644
index 0000000..56b145f
--- /dev/null
+++ b/csarvalidation/src/test/resources/pnf/r10087/invalidChangeHistoryLog.csar
Binary files differ
diff --git a/csarvalidation/src/test/resources/pnf/r10087/invalidEntryDefinitionsInToscaMeta.csar b/csarvalidation/src/test/resources/pnf/r10087/invalidEntryDefinitionsInToscaMeta.csar
new file mode 100644
index 0000000..d07dcbf
--- /dev/null
+++ b/csarvalidation/src/test/resources/pnf/r10087/invalidEntryDefinitionsInToscaMeta.csar
Binary files differ
diff --git a/csarvalidation/src/test/resources/pnf/r10087/invalidManifestFile.csar b/csarvalidation/src/test/resources/pnf/r10087/invalidManifestFile.csar
new file mode 100644
index 0000000..83a37cb
--- /dev/null
+++ b/csarvalidation/src/test/resources/pnf/r10087/invalidManifestFile.csar
Binary files differ
diff --git a/csarvalidation/src/test/resources/pnf/r10087/invalidTestDirectory.csar b/csarvalidation/src/test/resources/pnf/r10087/invalidTestDirectory.csar
new file mode 100644
index 0000000..b31d8cf
--- /dev/null
+++ b/csarvalidation/src/test/resources/pnf/r10087/invalidTestDirectory.csar
Binary files differ
diff --git a/csarvalidation/src/test/resources/pnf/r10087/noToscaMetaFile.csar b/csarvalidation/src/test/resources/pnf/r10087/noToscaMetaFile.csar
new file mode 100644
index 0000000..331da92
--- /dev/null
+++ b/csarvalidation/src/test/resources/pnf/r10087/noToscaMetaFile.csar
Binary files differ