X-Git-Url: https://gerrit.fd.io/r/gitweb?p=csit.git;a=blobdiff_plain;f=resources%2Flibraries%2Fpython%2FKubernetesUtils.py;h=77628b64d8e09b3f8601572bda9c070be5e5ed40;hp=5faa056ddc946d9f46d7c9be269946293ea6b5be;hb=fcaf06abdd27a3a6ef18de14ce3d1dab2c75a8c9;hpb=9a261ea61549fc6a5c23369d2e236b002dc35038 diff --git a/resources/libraries/python/KubernetesUtils.py b/resources/libraries/python/KubernetesUtils.py index 5faa056ddc..77628b64d8 100644 --- a/resources/libraries/python/KubernetesUtils.py +++ b/resources/libraries/python/KubernetesUtils.py @@ -243,6 +243,36 @@ class KubernetesUtils(object): KubernetesUtils.describe_kubernetes_resource_on_node(node, rtype) + @staticmethod + def get_kubernetes_logs_on_node(node, namespace='csit'): + """Get Kubernetes logs on node. + + :param node: DUT node. + :param namespace: Kubernetes namespace. + :type node: dict + :type namespace: str + """ + ssh = SSH() + ssh.connect(node) + + cmd = "for p in $(kubectl get pods -n {namespace} --no-headers"\ + " | cut -f 1 -d ' '); do echo $p; kubectl logs -n {namespace} $p; "\ + "done".format(namespace=namespace) + ssh.exec_command(cmd, timeout=120) + + @staticmethod + def get_kubernetes_logs_on_all_duts(nodes, namespace='csit'): + """Get Kubernetes logs on all DUTs. + + :param nodes: Topology nodes. + :param namespace: Kubernetes namespace. + :type nodes: dict + :type namespace: str + """ + for node in nodes.values(): + if node['type'] == NodeType.DUT: + KubernetesUtils.get_kubernetes_logs_on_node(node, namespace) + @staticmethod def reset_kubernetes_on_node(node): """Reset Kubernetes on node. @@ -288,7 +318,9 @@ class KubernetesUtils(object): if int(ret_code) == 0: ready = True for line in stdout.splitlines(): - if 'Running' not in line: + if 'Running' in line and '1/1' in line: + ready = True + else: ready = False if ready: break