from docker import AutoVersionClient
from docker.errors import APIError
from openshift_tools.monitoring.zagg_sender import ZaggSender

ZBX_KEY = "docker.container.existing.dns.resolution.failed"
CMD_NOT_FOUND = -1

if __name__ == "__main__":
    cli = AutoVersionClient(base_url='unix://var/run/docker.sock', timeout=120)
    bad_dns_count = 0

    for ctr in cli.containers():
        try:
            exec_id = cli.exec_create(container=ctr['Id'], cmd="getent hosts redhat.com")
            results = cli.exec_start(exec_id=exec_id)
            exit_code = cli.exec_inspect(exec_id)['ExitCode']
        except APIError:
            # could race from getting a container list and the container exiting
            # before we can exec on it, so just ignore exited containers
            continue

        if exit_code == CMD_NOT_FOUND:
            continue

        print "Container: " + ctr['Image']
        print results
        print "Exit Code: " + str(exit_code) + "\n"

        if exit_code != 0:
            bad_dns_count += 1
Exemplo n.º 2
0
from docker.errors import APIError
from openshift_tools.monitoring.zagg_sender import ZaggSender

ZBX_KEY = "docker.container.existing.dns.resolution.failed"
CMD_NOT_FOUND = -1

if __name__ == "__main__":
    cli = AutoVersionClient(base_url='unix://var/run/docker.sock', timeout=120)
    bad_dns_count = 0

    for ctr in cli.containers():
        print "Container: {} {}".format(ctr['Id'], ctr['Image'])
        try:
            exec_id = cli.exec_create(container=ctr['Id'], cmd="getent hosts redhat.com")
            results = cli.exec_start(exec_id=exec_id)
            exit_code = cli.exec_inspect(exec_id)['ExitCode']
        except APIError:
            # could race from getting a container list and the container exiting
            # before we can exec on it, so just ignore exited containers
            continue

        if exit_code == CMD_NOT_FOUND:
            continue

        print results
        print "Exit Code: " + str(exit_code)

        if exit_code != 0:
            bad_dns_count += 1
            ctr_data = cli.inspect_container(ctr['Id'])
            print "Additional info: Namespace: {} Name: {} IP: {}".format(