# Copyright 2016 The Kubernetes Authors.
#
# 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.

import os

from kubernetes import client, config
from kubernetes.client import configuration


def main():
    config_file = os.path.join(os.path.expanduser('~'), '.kube', 'config')
    contexts, active_context = config.list_kube_config_contexts(config_file)
    if not contexts:
        print("Cannot find any context in kube-config file.")
        return
    contexts = [context['name'] for context in contexts]
    active_context = active_context['name']
    for i, context in enumerate(contexts):
        format_str = "%d. %s"
        if context == active_context:
            format_str = "* " + format_str
        print(format_str % (i, context))
    context = input("Enter context number: ")
    context = int(context)
    if context not in range(len(contexts)):
        print(
            "Number out of range. Using default context %s." %
            active_context)
        context_name = active_context
    else:
        context_name = contexts[context]

    # Configs can be set in Configuration class directly or using helper
    # utility
    config.load_kube_config(config_file, context_name)

    print("Active host is %s" % configuration.host)

    v1 = client.CoreV1Api()
    print("Listing pods with their IPs:")
    ret = v1.list_pod_for_all_namespaces(watch=False)
    for item in ret.items:
        print(
            "%s\t%s\t%s" %
            (item.status.pod_ip,
             item.metadata.namespace,
             item.metadata.name))


if __name__ == '__main__':
    main()

# Copyright 2016 The Kubernetes Authors.
#
# 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.

import os

from kubernetes import client, config
from kubernetes.client import configuration


def main():
    config_file = os.path.join(os.path.expanduser('~'), '.kube', 'config')
    contexts, active_context = config.list_kube_config_contexts(config_file)
    if not contexts:
        print("Cannot find any context in kube-config file.")
        return
    contexts = [context['name'] for context in contexts]
    active_context = active_context['name']
    for i, context in enumerate(contexts):
        format_str = "%d. %s"
        if context == active_context:
            format_str = "* " + format_str
        print(format_str % (i, context))
    context = input("Enter context number: ")
    context = int(context)
    if context not in range(len(contexts)):
        print(
            "Number out of range. Using default context %s." %
            active_context)
        context_name = active_context
    else:
        context_name = contexts[context]

    # Configs can be set in Configuration class directly or using helper
    # utility
    config.load_kube_config(config_file, context_name)

    print("Active host is %s" % configuration.host)

    v1 = client.CoreV1Api()
    print("Listing pods with their IPs:")
    ret = v1.list_pod_for_all_namespaces(watch=False)
    for item in ret.items:
        print(
            "%s\t%s\t%s" %
            (item.status.pod_ip,
             item.metadata.namespace,
             item.metadata.name))


if __name__ == '__main__':
    main()

# Copyright 2016 The Kubernetes Authors. # # 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. # Configs can be set in Configuration class directly or using helper # utility