[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 5/6] tests/docker/docker.py: expand images comma
From: |
Fam Zheng |
Subject: |
Re: [Qemu-devel] [PATCH 5/6] tests/docker/docker.py: expand images command |
Date: |
Mon, 31 Oct 2016 10:28:36 +0800 |
User-agent: |
Mutt/1.7.1 (2016-10-04) |
On Fri, 10/28 17:33, Alex Bennée wrote:
> Modern docker cli commands can filter by repository but as we want to
> work on all instances do this by hand in python:
>
> /tests/docker/docker.py images --repo qemu
>
> Will return a space delimited list for the benefit of our Makefile
> recipes.
>
> Signed-off-by: Alex Bennée <address@hidden>
> ---
> tests/docker/docker.py | 27 ++++++++++++++++++++++-----
> 1 file changed, 22 insertions(+), 5 deletions(-)
>
> diff --git a/tests/docker/docker.py b/tests/docker/docker.py
> index 37d8319..03c0238 100755
> --- a/tests/docker/docker.py
> +++ b/tests/docker/docker.py
> @@ -105,12 +105,15 @@ class Docker(object):
> signal.signal(signal.SIGTERM, self._kill_instances)
> signal.signal(signal.SIGHUP, self._kill_instances)
>
> - def _do(self, cmd, quiet=True, infile=None, **kwargs):
> + def _do(self, cmd, quiet=True, infile=None, output=False, **kwargs):
> if quiet:
> kwargs["stdout"] = DEVNULL
> if infile:
> kwargs["stdin"] = infile
> - return subprocess.call(self._command + cmd, **kwargs)
> + if output:
> + return subprocess.check_output(self._command + cmd, **kwargs)
> + else:
> + return subprocess.call(self._command + cmd, **kwargs)
>
> def _do_kill_instances(self, only_known, only_active=True):
> cmd = ["ps", "-q"]
> @@ -188,8 +191,8 @@ class Docker(object):
> self._instances.remove(label)
> return ret
>
> - def command(self, cmd, argv, quiet):
> - return self._do([cmd] + argv, quiet=quiet)
> + def command(self, cmd, argv, quiet, output=False):
> + return self._do([cmd] + argv, quiet=quiet, output=output)
>
> class SubCommand(object):
> """A SubCommand template base class"""
> @@ -325,8 +328,22 @@ class CleanCommand(SubCommand):
> class ImagesCommand(SubCommand):
> """Run "docker images" command"""
> name = "images"
> + def args(self, parser):
> + parser.add_argument("--repo",
> + help="List images in the given repository")
> +
> def run(self, args, argv):
> - return Docker().command("images", argv, args.quiet)
> + if args.repo:
> + images=[]
> + image_re = re.compile(r"^"+re.escape(args.repo)+r"\s+(\S*)")
> + output = Docker().command("images", argv, args.quiet,
> output=True)
> + for line in output.split("\n"):
> + search = image_re.search(line)
> + if search:
> + images.append(search.group(1))
> + print ' '.join(map(str,images))
s/,/, /
Otherwise looks good.
> + else:
> + return Docker().command("images", argv, args.quiet)
>
> def main():
> parser = argparse.ArgumentParser(description="A Docker helper",
> --
> 2.10.1
>
- [Qemu-devel] [PATCH 0/6] Expand the building of qemu-user docker images, Alex Bennée, 2016/10/28
- [Qemu-devel] [PATCH 1/6] tests/docker/Makefile.include: fix diff-index call, Alex Bennée, 2016/10/28
- [Qemu-devel] [PATCH 6/6] tests/docker/Makefile.include: expand docker help text, Alex Bennée, 2016/10/28
- [Qemu-devel] [PATCH 4/6] tests/docker/Makefile: Add a rule for Debian user images, Alex Bennée, 2016/10/28
- [Qemu-devel] [PATCH 5/6] tests/docker/docker.py: expand images command, Alex Bennée, 2016/10/28
- Re: [Qemu-devel] [PATCH 5/6] tests/docker/docker.py: expand images command,
Fam Zheng <=
- [Qemu-devel] [PATCH 3/6] tests/docker: add optional libs to travis.docker, Alex Bennée, 2016/10/28
- [Qemu-devel] [PATCH 2/6] tests/docker/test-user: a simple linux-user test, Alex Bennée, 2016/10/28
- Re: [Qemu-devel] [PATCH 0/6] Expand the building of qemu-user docker images, Fam Zheng, 2016/10/30