aboutsummaryrefslogtreecommitdiffstats
path: root/sdv/docker/sdvstate/internal/validator/kuberef
diff options
context:
space:
mode:
authorParth Yadav <parthyadav3105@gmail.com>2021-08-11 02:14:38 +0530
committerParth Yadav <parthyadav3105@gmail.com>2021-08-11 02:16:50 +0530
commit956ee6a2e76a31f2187d8e11ac2fbbd2c77bdb03 (patch)
tree3026616f7894a3c45260d3030ea463e5691303c5 /sdv/docker/sdvstate/internal/validator/kuberef
parent27cf386ac6a133b5c75d2dbe7864ec7166d74b09 (diff)
Adds Kuberef Validator
This patch adds Kuberef Validator and implements following checks for Kuberef Validator: * pod_health_check Signed-off-by: Parth Yadav<parthyadav3105@gmail.com> Change-Id: Ief2a75f5ea4a4e39a8c07002c29e2d732ca00151
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