X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=utils%2Fk8s_setup%2Fk8s_utils.py;h=a89889f3fedfcf7389bc0f7bbfb964df90345a35;hb=eacf878ec5372a6db4596c9cbc78ef96bf2453b9;hp=7195bf23a37ab13d661beccf7bcfbbf4d62ddac9;hpb=480c3c51a0a2bcc67ac5ca1d96cb63153bf9fff8;p=bottlenecks.git diff --git a/utils/k8s_setup/k8s_utils.py b/utils/k8s_setup/k8s_utils.py index 7195bf23..a89889f3 100644 --- a/utils/k8s_setup/k8s_utils.py +++ b/utils/k8s_setup/k8s_utils.py @@ -9,25 +9,29 @@ ############################################################################## import os +import commands +import json import utils.logger as log from kubernetes import client, watch LOG = log.Logger(__name__).getLogger() INSTALLER_TYPE = os.getenv("INSTALLER_TYPE") +K8S_UTILS = "/home/opnfv/bottlenecks/utils/k8s_setup" -def get_config_path(INSTALLER_TYPE=None, CONFIG_PATH="/tmp/k8s_config"): +def get_config_path(INSTALLER_TYPE=None, K8S_CONFIG_PATH="/tmp/k8s_config"): if INSTALLER_TYPE: - CMD = "bash k8s_config_pre.sh -i " + INSTALLER_TYPE + \ - " -c " + CONFIG_PATH + CMD = "bash " + K8S_UTILS + "/k8s_config_pre.sh -i " \ + + INSTALLER_TYPE + \ + " -c " + K8S_CONFIG_PATH LOG.info("Executing command: " + CMD) - CONFIG_PATH = os.popen(CMD) + os.popen(CMD) else: - if not os.path.exists(CONFIG_PATH): + if not os.path.exists(K8S_CONFIG_PATH): raise Exception("Must at least specify the path \ of k8s config!") - return CONFIG_PATH + return K8S_CONFIG_PATH def get_core_api(version='v1'): @@ -35,10 +39,39 @@ def get_core_api(version='v1'): API = client.CoreV1Api() LOG.info(API) else: - raise Exception("Must input a validate verison!") + raise Exception("Must input a valid verison!") return API +def get_apps_api(version='v1'): + if version.lower() == 'v1': + API = client.AppsV1Api() + LOG.info(API) + else: + raise Exception("Must input a valid verison!") + return API + + +def get_namespace_status(namespace): + CMD = ("kubectl get ns | grep %s" % namespace) + namespace_existed = commands.getstatusoutput(CMD) + return namespace_existed + + +def get_deployment_status(name, namespace): + CMD = ("kubectl get deployment --namespace={} | grep {}".format( + namespace, name)) + deployment_existed = commands.getstatusoutput(CMD) + return deployment_existed + + +def get_available_pods(name, namespace): + CMD = ("kubectl get deployment --namespace={} | grep {}".format( + namespace, name) + " | awk '{print $5}'") + available_pods = commands.getstatusoutput(CMD) + return int(available_pods[1]) + + def watch_namespace(namespace, count=3, stop=None, request_timeout=0): w = watch.Watch() LOG.debug("Watch object generated: {}".format(w)) @@ -54,3 +87,9 @@ def watch_namespace(namespace, count=3, stop=None, request_timeout=0): if not count: LOG.info("Ended.\n") w.stop() + + +def write_json(data, file_name): + with open(file_name, "a") as f: + f.write(json.dumps(data, f)) + f.write("\n")