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
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(