summaryrefslogtreecommitdiffstats
path: root/csarvalidation/python/main/validation/rules/providers
diff options
context:
space:
mode:
authorBogumil Zebek <bogumil.zebek@nokia.com>2020-12-02 06:07:31 +0000
committerGerrit Code Review <gerrit@onap.org>2020-12-02 06:07:31 +0000
commitf65a16e597a267a0c6fae80db8b06f9e34f512d6 (patch)
tree7ff8040bbf605e9c046150552bb7340c313efd36 /csarvalidation/python/main/validation/rules/providers
parent46a1379ba6b6ef9c43fb58ac2b125fe7ed82fff1 (diff)
parent97f2131b263b4beed8fe4b2dd3c07b44edbac396 (diff)
Merge "Add python script to generate table with active validation rules."
Diffstat (limited to 'csarvalidation/python/main/validation/rules/providers')
-rw-r--r--csarvalidation/python/main/validation/rules/providers/ActiveRulesProvider.py43
-rw-r--r--csarvalidation/python/main/validation/rules/providers/RulesDescriptionsProvider.py40
-rw-r--r--csarvalidation/python/main/validation/rules/providers/__init__.py0
3 files changed, 83 insertions, 0 deletions
diff --git a/csarvalidation/python/main/validation/rules/providers/ActiveRulesProvider.py b/csarvalidation/python/main/validation/rules/providers/ActiveRulesProvider.py
new file mode 100644
index 0000000..1d601f2
--- /dev/null
+++ b/csarvalidation/python/main/validation/rules/providers/ActiveRulesProvider.py
@@ -0,0 +1,43 @@
+# ============LICENSE_START====================================
+# vnfsdk-validation
+# =========================================================
+# Copyright (C) 2020 Nokia. All rights reserved.
+# =========================================================
+# 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.
+# ============LICENSE_END=====================================
+
+class ActiveRulesProvider:
+
+ def __init__(self, properties_file_path: str, rules_separator: str = ",", key_value_separator: str = "="):
+ self.properties_file_path = properties_file_path
+ self._rules_separator = rules_separator
+ self._key_value_separator = key_value_separator
+
+ def get_active_rules(self, reqs: str) -> list:
+ active_rules = []
+ for line in self._load_file_by_lines():
+ if line.startswith(reqs):
+ active_rules = self._split_properties_line(line, self._rules_separator, self._key_value_separator)
+ break
+ return active_rules
+
+ def _load_file_by_lines(self) -> list:
+ with open(self.properties_file_path, 'r') as properties_file:
+ lines = properties_file.read().splitlines()
+ return lines
+
+ @staticmethod
+ def _split_properties_line(line: str, splitter: str, key_value_separator: str) -> list:
+ key_value_separation_index = line.index(key_value_separator) + 1
+ value = line[key_value_separation_index:]
+ return value.split(splitter)
diff --git a/csarvalidation/python/main/validation/rules/providers/RulesDescriptionsProvider.py b/csarvalidation/python/main/validation/rules/providers/RulesDescriptionsProvider.py
new file mode 100644
index 0000000..a34bbe3
--- /dev/null
+++ b/csarvalidation/python/main/validation/rules/providers/RulesDescriptionsProvider.py
@@ -0,0 +1,40 @@
+# ============LICENSE_START====================================
+# vnfsdk-validation
+# =========================================================
+# Copyright (C) 2020 Nokia. All rights reserved.
+# =========================================================
+# 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.
+# ============LICENSE_END=====================================
+
+import os
+import yaml
+
+
+class RulesDescriptionsProvider:
+
+ def __init__(self, directory_containing_rules: str, rule_description_file_name_pattern: str):
+ self._directory_containing_rules = directory_containing_rules
+ self._rule_description_file_name_pattern = rule_description_file_name_pattern
+
+ def contains_rule(self, rule: str) -> bool:
+ description_file_name = self._rule_description_file_name_pattern % rule
+ return os.path.isfile(self._directory_containing_rules + description_file_name)
+
+ def get_rule_description(self, rule: str) -> str:
+ description_file_name = self._rule_description_file_name_pattern % rule
+ return self._get_yaml_description(description_file_name)
+
+ def _get_yaml_description(self, yaml_file: str) -> str:
+ with open(self._directory_containing_rules + yaml_file, 'r') as description_file:
+ description_yaml = yaml.load(description_file, Loader=yaml.FullLoader)
+ return description_yaml
diff --git a/csarvalidation/python/main/validation/rules/providers/__init__.py b/csarvalidation/python/main/validation/rules/providers/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/csarvalidation/python/main/validation/rules/providers/__init__.py