summaryrefslogtreecommitdiffstats
path: root/onap_data_provider/validator.py
diff options
context:
space:
mode:
authorMichal Jagiello <michal.jagiello@t-mobile.pl>2021-11-30 08:25:09 +0000
committerMichal Jagiello <michal.jagiello@t-mobile.pl>2021-12-03 09:58:59 +0000
commit66e44262b8eb996c06670dcededd899dd1cbd7dc (patch)
tree3fcea0fe3317f8069281cb93c61add4b1599ab83 /onap_data_provider/validator.py
parent2416a1a546c1d2922c37d513df42e9d26bbaaa42 (diff)
Data provider release
Change-Id: Ia041a07152e8dabd87de05992d3670cbdc1ddaae Issue-ID: INT-2010 Signed-off-by: Michal Jagiello <michal.jagiello@t-mobile.pl>
Diffstat (limited to 'onap_data_provider/validator.py')
-rw-r--r--onap_data_provider/validator.py52
1 files changed, 52 insertions, 0 deletions
diff --git a/onap_data_provider/validator.py b/onap_data_provider/validator.py
new file mode 100644
index 0000000..3589f85
--- /dev/null
+++ b/onap_data_provider/validator.py
@@ -0,0 +1,52 @@
+"""Infra file schema validatior module."""
+"""
+ Copyright 2021 Deutsche Telekom AG
+
+ 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.
+"""
+
+from typing import Any, Dict
+
+import yaml
+from jsonschema import validate # type: ignore
+
+from .versions import VersionsEnum
+
+
+class Validator:
+ """Validate input schema class."""
+
+ def __init__(self) -> None:
+ """Validate class initialization.
+
+ Load schema file.
+
+ """
+ self.schemas: Dict[str, Any] = {}
+
+ def validate(self, version: VersionsEnum, input_data: Dict[str, Any]) -> None:
+ """Check if given input is valid from schema perspective.
+
+ Args:
+ input_data (Dict[str, Any]): Input to check
+
+ Raises:
+ ValidationError: Raises if input is invalid
+
+ """
+ if not version.value.version_number in self.schemas:
+ with open(version.value.schema_path, "r") as schema_file:
+ self.schemas[version.value.version_number] = yaml.safe_load(
+ schema_file.read()
+ )
+ validate(input_data, schema=self.schemas[version.value.version_number])