diff options
Diffstat (limited to 'sdv/docker/sdvstate/internal/validator/kuberef/kubevirt_health_check.py')
-rw-r--r-- | sdv/docker/sdvstate/internal/validator/kuberef/kubevirt_health_check.py | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/sdv/docker/sdvstate/internal/validator/kuberef/kubevirt_health_check.py b/sdv/docker/sdvstate/internal/validator/kuberef/kubevirt_health_check.py new file mode 100644 index 0000000..08bb3c7 --- /dev/null +++ b/sdv/docker/sdvstate/internal/validator/kuberef/kubevirt_health_check.py @@ -0,0 +1,44 @@ +""" +Kubevirt Check +Checks the existence and health of kubevirt +""" + +import logging +from tools.kube_utils import kube_api +from internal.checks.pod_health_check import pod_status, get_logs +from internal.store_result import store_result + +def kubevirt_check(): + """ + Checks for existence kubevirt namespace and checks health of the pods within + + """ + k8s_api = kube_api() + namespaces = k8s_api.list_namespace() + ns_names = [] + for nspace in namespaces.items: + ns_names.append(nspace.metadata.name) + + result = {'category': 'platform', + 'case_name': 'kubevirt_check', + 'criteria': 'pass', + 'details': [] + } + + logger = logging.getLogger(__name__) + + if 'kubevirt' in ns_names: + result['criteria'] = 'pass' + result['details'].append(ns_names) + pod_list = k8s_api.list_namespaced_pod('kubevirt') + for pod in pod_list.items: + pod_stats = pod_status(logger, pod) + if pod_stats['criteria'] == 'fail': + pod_stats['logs'] = get_logs(k8s_api, pod) + result['criteria'] = 'fail' + result['details'].append(pod_stats) + else: + result['criteria'] = 'fail' + + store_result(logger, result) + return result |