From 15d87494e957015bc6024f6cafbac3cbd8b1a494 Mon Sep 17 00:00:00 2001 From: Serhii Turivnyi Date: Dec 01 2017 14:36:27 +0000 Subject: Stick to the pep8 style docker inventory --- diff --git a/inventory/standard-inventory-docker b/inventory/standard-inventory-docker index b8d625d..b6035d9 100755 --- a/inventory/standard-inventory-docker +++ b/inventory/standard-inventory-docker @@ -7,21 +7,24 @@ import os import shutil import shlex import signal -import socket import subprocess import sys import tempfile import time -import traceback import distutils.util -def main(argv): - parser = argparse.ArgumentParser(description="Inventory for a container image in a registry") + +def main(): + parser = argparse.ArgumentParser( + description="Inventory for a container image in a registry") parser.add_argument("--list", action="store_true", help="Verbose output") parser.add_argument('--host', help="Get host variables") - parser.add_argument('--docker-extra-args', help="Extra docker arguments for launching container", + parser.add_argument('--docker-extra-args', + help="Extra docker arguments for launching container", default=os.environ.get("TEST_DOCKER_EXTRA_ARGS", "")) - parser.add_argument("subjects", nargs="*", default=shlex.split(os.environ.get("TEST_SUBJECTS", ""))) + parser.add_argument("subjects", nargs="*", + default=shlex.split( + os.environ.get("TEST_SUBJECTS", ""))) opts = parser.parse_args() try: @@ -31,14 +34,15 @@ def main(argv): data = list(opts.subjects, opts.docker_extra_args) sys.stdout.write(json.dumps(data, indent=4, separators=(',', ': '))) except RuntimeError as ex: - sys.stderr.write("{0}: {1}\n".format(os.path.basename(sys.argv[0]), str(ex))) + sys.stderr.write("{}: {}\n".format(os.path.basename(sys.argv[0]), + str(ex))) return 1 - return 0 + def list(subjects, docker_extra_args): - hosts = [ ] - variables = { } + hosts = [] + variables = {} for subject in subjects: if subject.startswith("docker:"): image = subject[7:] @@ -46,7 +50,9 @@ def list(subjects, docker_extra_args): if vars: hosts.append(name) variables[name] = vars - return { "localhost": { "hosts": hosts, "vars": { } }, "subjects": { "hosts": hosts, "vars": { } }, "_meta": { "hostvars": variables } } + return {"localhost": {"hosts": hosts, "vars": {}}, "subjects": + {"hosts": hosts, "vars": {}}, "_meta": {"hostvars": variables}} + def host(image, docker_extra_args): null = open(os.devnull, 'w') @@ -61,39 +67,37 @@ def host(image, docker_extra_args): directory = tempfile.mkdtemp(prefix="inventory-docker") cidfile = os.path.join(directory, "cid") - # Determine if container should be kept available for diagnosis after completion + # Determine if container should be kept available for diagnosis after + # completion try: diagnose = distutils.util.strtobool(os.getenv("TEST_DEBUG", "0")) except ValueError: diagnose = 0 - # Check for any additional arguments to include when starting docker container + # Check for any additional arguments to include when starting docker + # container try: extra_arg_list = shlex.split(docker_extra_args) except ValueError: raise RuntimeError("Could not parse DOCKER_EXTRA_ARGS") - sys.stderr.write("Launching Docker container for {0}\n".format(image)) + sys.stderr.write("Launching Docker container for {}\n".format(image)) # Make sure the docker service is running - cmd = [ - "/usr/sbin/service", "docker", "start" - ] + cmd = ["/usr/sbin/service", "docker", "start"] try: subprocess.check_call(cmd, stdout=sys.stderr.fileno()) - except subprocess.CalledProcessError as ex: + except subprocess.CalledProcessError: raise RuntimeError("Could not start docker service") # And launch the actual container - cmd = [ - "/usr/bin/docker", "run", "--detach", "--cidfile={0}".format(cidfile), - ] + extra_arg_list + [ - "--entrypoint=/bin/sh", image, "-c", "sleep 1000000" - ] + cmd = ["/usr/bin/docker", "run", "--detach", + "--cidfile={}".format(cidfile)] + extra_arg_list + [ + "--entrypoint=/bin/sh", image, "-c", "sleep 1000000"] try: subprocess.check_call(cmd, stdout=sys.stderr.fileno()) - except subprocess.CalledProcessError as ex: - raise RuntimeError("Could not start container image: {0}".format(image)) + except subprocess.CalledProcessError: + raise RuntimeError("Could not start container image: {}".format(image)) # Read out the container environment variable for x in range(1, 90): @@ -101,28 +105,28 @@ def host(image, docker_extra_args): break time.sleep(1) else: - raise RuntimeError("Could not find container file for launched container") + raise RuntimeError( + "Could not find container file for launched container") with open(cidfile, "r") as f: name = f.read().strip() # Now install the necessary stuff in the container :S - install = [ - "/usr/bin/docker", "exec", "--user=root", name, "/usr/bin/yum", "-y", "install", - "python2", "python2-dnf", "libselinux-python" - ] + install = ["/usr/bin/docker", "exec", "--user=root", name, + "/usr/bin/yum", "-y", "install", + "python2", "python2-dnf", "libselinux-python"] try: subprocess.check_call(install, stdout=sys.stderr.fileno()) - except subprocess.CalledProcessError as ex: - raise RuntimeError("Could not install Ansible dependencies in launched container") + except subprocess.CalledProcessError: + raise RuntimeError( + "Could not install Ansible dependencies in launched container") # Directory to place artifacts - artifacts = os.environ.get("TEST_ARTIFACTS", os.path.join(os.getcwd(), "artifacts")) + artifacts = os.environ.get("TEST_ARTIFACTS", os.path.join(os.getcwd(), + "artifacts")) # The variables - variables = { - "ansible_connection": "docker", - } + variables = {"ansible_connection": "docker"} # Process of our parent ppid = os.getppid() @@ -151,14 +155,16 @@ def host(image, docker_extra_args): try: os.kill(ppid, 0) except OSError: - break # Either of the processes no longer exist + break # Either of the processes no longer exist if diagnose: sys.stderr.write("\n") - sys.stderr.write("DIAGNOSE: docker exec -it {0} /bin/bash\n".format(name)) - sys.stderr.write("DIAGNOSE: kill {0} # when finished\n".format(os.getpid())) + sys.stderr.write( + "DIAGNOSE: docker exec -it {} /bin/bash\n".format(name)) + sys.stderr.write( + "DIAGNOSE: kill {} # when finished\n".format(os.getpid())) - def _signal_handler(*args): + def _signal_handler(): sys.stderr.write("\nDIAGNOSE ending...\n") signal.signal(signal.SIGTERM, _signal_handler) @@ -170,16 +176,17 @@ def host(image, docker_extra_args): except OSError as exc: if exc.errno != errno.EEXIST or not os.path.isdir(artifacts): raise - log = os.path.join(artifacts, "{0}.log".format(os.path.basename(image))) + log = os.path.join(artifacts, "{}.log".format(os.path.basename(image))) # Kill the container with open(log, "w") as f: - subprocess.call(["/usr/bin/docker", "logs", name ], stdout=f.fileno()) - subprocess.call(["/usr/bin/docker", "kill", name ], stdout=null.fileno()) - subprocess.call(["/usr/bin/docker", "rm", "-f", name ], stdout=null) + subprocess.call(["/usr/bin/docker", "logs", name], stdout=f.fileno()) + subprocess.call(["/usr/bin/docker", "kill", name], stdout=null.fileno()) + subprocess.call(["/usr/bin/docker", "rm", "-f", name], stdout=null) shutil.rmtree(directory) sys.exit(0) + if __name__ == '__main__': - sys.exit(main(sys.argv)) + sys.exit(main())