From b110b94fe9ab62393b8c1ec64320668c7222bc6a Mon Sep 17 00:00:00 2001 From: mojahidi Date: Wed, 22 Nov 2017 15:07:07 +0530 Subject: ResourceBaseValidator This task is about updating error messages with error codes for ResourceBaseValidator Change-Id: Ia6fc269e14c9b1593d908212b6517fd94190d079 Issue-ID: SDC-572 Signed-off-by: mojahidi --- .../sdc/validation/base/ResourceBaseValidator.java | 11 +++++-- .../validation/base/ResourceBaseValidatorTest.java | 37 ++++++++++++++++++++++ .../resources/InvalidHeatStructure/MANIFEST.json | 17 ++++++++++ .../test/resources/InvalidHeatStructure/first.yaml | 22 +++++++++++++ .../resources/InvalidHeatStructure/second.yaml | 19 +++++++++++ .../resources/InvalidResourceType/MANIFEST.json | 22 +++++++++++++ .../test/resources/InvalidResourceType/first.env | 0 .../test/resources/InvalidResourceType/first.yaml | 25 +++++++++++++++ .../resources/InvalidResourceType/firstVol.yaml | 19 +++++++++++ 9 files changed, 169 insertions(+), 3 deletions(-) create mode 100644 openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-sdk/src/test/java/org/openecomp/sdc/validation/base/ResourceBaseValidatorTest.java create mode 100644 openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-sdk/src/test/resources/InvalidHeatStructure/MANIFEST.json create mode 100644 openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-sdk/src/test/resources/InvalidHeatStructure/first.yaml create mode 100644 openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-sdk/src/test/resources/InvalidHeatStructure/second.yaml create mode 100644 openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-sdk/src/test/resources/InvalidResourceType/MANIFEST.json create mode 100644 openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-sdk/src/test/resources/InvalidResourceType/first.env create mode 100644 openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-sdk/src/test/resources/InvalidResourceType/first.yaml create mode 100644 openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-sdk/src/test/resources/InvalidResourceType/firstVol.yaml (limited to 'openecomp-be') diff --git a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-sdk/src/main/java/org/openecomp/sdc/validation/base/ResourceBaseValidator.java b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-sdk/src/main/java/org/openecomp/sdc/validation/base/ResourceBaseValidator.java index f5d01d90e8..c4d6f88074 100644 --- a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-sdk/src/main/java/org/openecomp/sdc/validation/base/ResourceBaseValidator.java +++ b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-sdk/src/main/java/org/openecomp/sdc/validation/base/ResourceBaseValidator.java @@ -2,6 +2,7 @@ package org.openecomp.sdc.validation.base; import org.apache.commons.collections4.MapUtils; import org.openecomp.core.utilities.CommonMethods; +import org.openecomp.core.validation.ErrorMessageCode; import org.openecomp.core.validation.errors.ErrorMessagesFormatBuilder; import org.openecomp.sdc.common.errors.Messages; import org.openecomp.sdc.datatypes.error.ErrorLevel; @@ -34,6 +35,8 @@ public class ResourceBaseValidator implements Validator { protected Map resourceTypeToImpl = new HashMap<>(); private static Logger logger = (Logger) LoggerFactory.getLogger(ResourceBaseValidator.class); + private static final ErrorMessageCode ERROR_CODE_RBV_1 = new ErrorMessageCode("RBV1"); + private static final ErrorMessageCode ERROR_CODE_RBV_2 = new ErrorMessageCode("RBV2"); public void init(Map properties) { @@ -42,8 +45,8 @@ public class ResourceBaseValidator implements Validator { } properties.entrySet().stream() - .filter(entry -> getImplementationConfigurationFromProperties(entry.getValue()) != null). - forEach(entry -> resourceTypeToImpl + .filter(entry -> getImplementationConfigurationFromProperties(entry.getValue()) != null) + .forEach(entry -> resourceTypeToImpl .put(entry.getKey(), getImplementationConfigurationFromProperties(entry.getValue()))); } @@ -69,6 +72,7 @@ public class ResourceBaseValidator implements Validator { private void validate(String fileName, String envFileName, GlobalValidationContext globalContext) { + globalContext.setMessageCode(ERROR_CODE_RBV_2); HeatOrchestrationTemplate heatOrchestrationTemplate = ValidationUtil.checkHeatOrchestrationPreCondition(fileName, globalContext); if (heatOrchestrationTemplate == null) { @@ -88,7 +92,8 @@ public class ResourceBaseValidator implements Validator { if (Objects.isNull(resourceType)) { globalContext.addMessage(fileName, ErrorLevel.WARNING, ErrorMessagesFormatBuilder - .getErrorWithParameters(Messages.INVALID_RESOURCE_TYPE.getErrorMessage(), "null", + .getErrorWithParameters(ERROR_CODE_RBV_1, + Messages.INVALID_RESOURCE_TYPE.getErrorMessage(),"null", resourceEntry.getKey()), LoggerTragetServiceName.VALIDATE_RESOURCE_TYPE, LoggerErrorDescription.INVALID_RESOURCE_TYPE); } else { diff --git a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-sdk/src/test/java/org/openecomp/sdc/validation/base/ResourceBaseValidatorTest.java b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-sdk/src/test/java/org/openecomp/sdc/validation/base/ResourceBaseValidatorTest.java new file mode 100644 index 0000000000..e2d685da70 --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-sdk/src/test/java/org/openecomp/sdc/validation/base/ResourceBaseValidatorTest.java @@ -0,0 +1,37 @@ +package org.openecomp.sdc.validation.base; + +import org.openecomp.core.validation.types.MessageContainer; +import org.openecomp.sdc.validation.util.ValidationTestUtil; +import org.testng.Assert; +import org.testng.annotations.Test; + +import java.util.Map; + +@Test +public class ResourceBaseValidatorTest { + +ResourceBaseValidator resourceBaseValidator=new ResourceBaseValidator(); + + @Test + public void testInvalidResourceType(){ + Map messages = ValidationTestUtil.testValidator( + resourceBaseValidator, "/InvalidResourceType"); + Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().get(0).getMessage(), + "WARNING: [RBV1]: A resource has an invalid or unsupported type - null, " + + "Resource ID [FSB2]"); + } + + @Test + public void testInvalidHeatStructure(){ + Map messages = ValidationTestUtil.testValidator(resourceBaseValidator, + "/InvalidHeatStructure"); + Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().get(0).getMessage(), + "ERROR: [RBV2]: Invalid HEAT format problem - [while scanning for the next " + + "token\n" + "found character '\\t(TAB)' that cannot start any token. " + + "(Do not use \\t(TAB) for indentation)\n" + + " in 'reader', line 10, column 1:\n" + + " \t\t\tresources:\n" + + " ^\n" + + "]"); + } +} diff --git a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-sdk/src/test/resources/InvalidHeatStructure/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-sdk/src/test/resources/InvalidHeatStructure/MANIFEST.json new file mode 100644 index 0000000000..15650ae299 --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-sdk/src/test/resources/InvalidHeatStructure/MANIFEST.json @@ -0,0 +1,17 @@ +{ + "name": "validTest", + "description": "Valid Test", + "version": "1610", + "data": [ + { + "file": "first.yaml", + "type": "HEAT", + "isBase": true + }, + { + "file": "second.yaml", + "type": "HEAT", + "isBase": false + } + ] +} \ No newline at end of file diff --git a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-sdk/src/test/resources/InvalidHeatStructure/first.yaml b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-sdk/src/test/resources/InvalidHeatStructure/first.yaml new file mode 100644 index 0000000000..24fe19170d --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-sdk/src/test/resources/InvalidHeatStructure/first.yaml @@ -0,0 +1,22 @@ +heat_template_version: 2013-05-23 + +description: cmaui server template for vMMSC + +parameters: + nems_traffic_name: + description: dummy + type: string + + resources: + jsa_net1: + type: OS::Contrail::VirtualNetwork + properties: + name: {get_param: } + jsa_net3: + type: OS::Contrail::VirtualNetwork + properties: + name: {get_param: nems_traffic_name} + jsa_net5: + type: OS::ContrailV2::VirtualNetwork + properties: + name: {get_param: nems_traffic_name} diff --git a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-sdk/src/test/resources/InvalidHeatStructure/second.yaml b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-sdk/src/test/resources/InvalidHeatStructure/second.yaml new file mode 100644 index 0000000000..f8cadfee51 --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-sdk/src/test/resources/InvalidHeatStructure/second.yaml @@ -0,0 +1,19 @@ +heat_template_version: 2013-05-23 + +description: cmaui server template for vMMSC + +parameters: + nems_traffic_name: + description: dummy + type: string + +resources: + jsa_net2: + type: OS::ContrailV2::VirtualNetwork + properties: + name: {get_param: nems_traffic_name} + jsa_net4: + type: OS::ContrailV2::VirtualNetwork + properties: + name: {get_param: nems_traffic_name} + diff --git a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-sdk/src/test/resources/InvalidResourceType/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-sdk/src/test/resources/InvalidResourceType/MANIFEST.json new file mode 100644 index 0000000000..c541783b06 --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-sdk/src/test/resources/InvalidResourceType/MANIFEST.json @@ -0,0 +1,22 @@ +{ + "name": "validTest", + "description": "Valid Test", + "version": "1610", + "data": [ + { + "file": "first.yaml", + "type": "HEAT", + "isBase": true, + "data": [ + { + "file": "first.env", + "type": "HEAT_ENV" + }, + { + "file": "firstVol.yaml", + "type": "HEAT_VOL" + } + ] + } + ] +} \ No newline at end of file diff --git a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-sdk/src/test/resources/InvalidResourceType/first.env b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-sdk/src/test/resources/InvalidResourceType/first.env new file mode 100644 index 0000000000..e69de29bb2 diff --git a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-sdk/src/test/resources/InvalidResourceType/first.yaml b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-sdk/src/test/resources/InvalidResourceType/first.yaml new file mode 100644 index 0000000000..1244955e01 --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-sdk/src/test/resources/InvalidResourceType/first.yaml @@ -0,0 +1,25 @@ +heat_template_version: 2013-05-23 + +description: heat expose volume resource + +resources: + FSB2: + type: + properties: + name: { get_param: fsb_name_2 } + block_device_mapping: [{device_name: "vda", volume_id : {get_param: VMME_FSB2_boot_volume }, delete_on_termination: "false" }] + flavor: { get_param: fsb2-flavor } + availability_zone: { get_param: availability_zone_0 } + metadata: + VNF_id: { get_param: vnfvfVF_id } + vf_module_id: { get_param: vf_module_id } + networks: + - port: { get_resource: FSB2_Internal1 } + - port: { get_resource: FSB2_Internal2 } + - port: { get_resource: FSB2_OAM } +outputs: + expose_resource_nove_output: + description: the pcrf_server + value: { get_resource: FSB2 } + + diff --git a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-sdk/src/test/resources/InvalidResourceType/firstVol.yaml b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-sdk/src/test/resources/InvalidResourceType/firstVol.yaml new file mode 100644 index 0000000000..7e82b2a7e6 --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-sdk/src/test/resources/InvalidResourceType/firstVol.yaml @@ -0,0 +1,19 @@ + +heat_template_version: 2013-05-23 + +parameters: + not_null: + type: number + label: not_number + + +resources: + volume_expose: + type: OS::Cinder::Volume + properties: + not_null: not_null +outputs: + not_expose_resource_network_output: + description: the pcrf_server + value: { get_resource: volume_expose } + -- cgit 1.2.3-korg