aboutsummaryrefslogtreecommitdiffstats
path: root/sdv/docker/sdvstate/internal/validator/kuberef
diff options
context:
space:
mode:
authorParth Yadav <parthyadav3105@gmail.com>2021-08-25 20:11:32 +0000
committerGerrit Code Review <gerrit@opnfv.org>2021-08-25 20:11:32 +0000
commit43c4b47a9e0d64ffdaa77a743f0be388f49eb558 (patch)
tree3d514285b58fde49d639e38f465806cbc6351061 /sdv/docker/sdvstate/internal/validator/kuberef
parent88e87ea167ce79dc69a3c7b4c5e68e7fdb76a177 (diff)
parent956ee6a2e76a31f2187d8e11ac2fbbd2c77bdb03 (diff)
Merge "Adds Kuberef Validator"
Diffstat (limited to 'sdv/docker/sdvstate/internal/validator/kuberef')
-rw-r--r--sdv/docker/sdvstate/internal/validator/kuberef/__init__.py31
-rw-r--r--sdv/docker/sdvstate/internal/validator/kuberef/kuberef.py95
-rw-r--r--sdv/docker/sdvstate/internal/validator/kuberef/pod_health_check.py41
3 files changed, 167 insertions, 0 deletions
diff --git a/sdv/docker/sdvstate/internal/validator/kuberef/__init__.py b/sdv/docker/sdvstate/internal/validator/kuberef/__init__.py
new file mode 100644
index 0000000..98f7504
--- /dev/null
+++ b/sdv/docker/sdvstate/internal/validator/kuberef/__init__.py
@@ -0,0 +1,31 @@
+# Copyright 2020 University Of Delhi.
+#
+# 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 for Kuberef Validation
+"""
+
+
+### Pod Health Checks
+from .pod_health_check import pod_health_check
+
+
+### Monitoring & Logging Agents Checks
+
+
+### Network Checks
+
+
+### Compute Related Checks
diff --git a/sdv/docker/sdvstate/internal/validator/kuberef/kuberef.py b/sdv/docker/sdvstate/internal/validator/kuberef/kuberef.py
new file mode 100644
index 0000000..4768e81
--- /dev/null
+++ b/sdv/docker/sdvstate/internal/validator/kuberef/kuberef.py
@@ -0,0 +1,95 @@
+# Copyright 2020 University Of Delhi.
+#
+# 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.
+
+
+"""
+Kuberef Validator
+"""
+
+import logging
+from datetime import datetime as dt
+
+from internal import store_result
+from internal.validator.validator import Validator
+from tools.conf import settings
+from tools.kube_utils import load_kube_api
+
+from . import *
+
+
+
+
+
+class KuberefValidator(Validator):
+ """Class for Kuberef Validation
+ """
+
+ def __init__(self):
+ """
+ Initialisation function.
+ """
+ super(KuberefValidator, self).__init__()
+ self._logger = logging.getLogger(__name__)
+
+ self._report = {"installer": "Kuberef",
+ "criteria": "pass",
+ "details": {"total_checks": 0,
+ "metadata": {},
+ "pass": [],
+ "fail": []
+ }
+ }
+
+ load_kube_api()
+
+
+
+
+ def validate(self):
+ """
+ Validation method for kuberef
+ """
+
+ self._report['scenario'] = 'none'
+ self._report['start_date'] = dt.now().strftime('%Y-%m-%d %H:%M:%S')
+
+
+ test_suite = settings.getValue("test_suite")
+
+
+ if test_suite == "default":
+ self._report['case_name'] = 'default_kuberef'
+ self.default_suite()
+
+ self._report['stop_date'] = dt.now().strftime('%Y-%m-%d %H:%M:%S')
+
+
+ def default_suite(self):
+ """
+ Default Test Suite
+ """
+
+ # PLATFORM CHECKS
+ self.update_report(pod_health_check())
+
+ # COMPUTE CHECKS
+
+
+ def get_report(self):
+ """
+ Return final report as dict
+ """
+ self._report = super(KuberefValidator, self).get_report()
+ store_result(self._logger, self._report)
+ return self._report
diff --git a/sdv/docker/sdvstate/internal/validator/kuberef/pod_health_check.py b/sdv/docker/sdvstate/internal/validator/kuberef/pod_health_check.py
new file mode 100644
index 0000000..955e586
--- /dev/null
+++ b/sdv/docker/sdvstate/internal/validator/kuberef/pod_health_check.py
@@ -0,0 +1,41 @@
+# Copyright 2020 University Of Delhi.
+#
+# 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.
+
+
+"""
+Pod Health Checks
+"""
+
+
+
+import logging
+
+from internal import checks
+from internal import store_result
+from tools.kube_utils import kube_api
+from tools.conf import settings
+
+
+def pod_health_check():
+ """
+ Check health of all pods and get logs of failed pods
+ """
+ logger = logging.getLogger(__name__)
+ api = kube_api()
+ namespace_list = settings.getValue('kuberef_namespace_list')
+
+ result = checks.pod_health_check(logger, api, namespace_list)
+
+ store_result(logger, result)
+ return result