qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Fam Zheng <famz@redhat.com>
To: "Alex Bennée" <alex.bennee@linaro.org>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH 5/6] tests/docker/docker.py: expand images command
Date: Mon, 31 Oct 2016 10:28:36 +0800	[thread overview]
Message-ID: <20161031022836.GH30303@lemon> (raw)
In-Reply-To: <20161028163339.31096-6-alex.bennee@linaro.org>

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 <alex.bennee@linaro.org>
> ---
>  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
> 

  reply	other threads:[~2016-10-31  2:28 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-10-28 16:33 [Qemu-devel] [PATCH 0/6] Expand the building of qemu-user docker images Alex Bennée
2016-10-28 16:33 ` [Qemu-devel] [PATCH 1/6] tests/docker/Makefile.include: fix diff-index call Alex Bennée
2016-10-31  2:19   ` Fam Zheng
2016-10-31 11:55     ` Alex Bennée
2016-11-01 10:02     ` Alex Bennée
2016-11-01 10:38       ` Fam Zheng
2016-11-01 11:41         ` Alex Bennée
2016-10-28 16:33 ` [Qemu-devel] [PATCH 2/6] tests/docker/test-user: a simple linux-user test Alex Bennée
2016-10-31  2:20   ` Fam Zheng
2016-10-28 16:33 ` [Qemu-devel] [PATCH 3/6] tests/docker: add optional libs to travis.docker Alex Bennée
2016-10-31  2:23   ` Fam Zheng
2016-10-28 16:33 ` [Qemu-devel] [PATCH 4/6] tests/docker/Makefile: Add a rule for Debian user images Alex Bennée
2016-10-28 16:33 ` [Qemu-devel] [PATCH 5/6] tests/docker/docker.py: expand images command Alex Bennée
2016-10-31  2:28   ` Fam Zheng [this message]
2016-10-28 16:33 ` [Qemu-devel] [PATCH 6/6] tests/docker/Makefile.include: expand docker help text Alex Bennée
2016-10-31  2:34   ` Fam Zheng
2016-10-31  2:41 ` [Qemu-devel] [PATCH 0/6] Expand the building of qemu-user docker images Fam Zheng
2016-10-31 11:40   ` Alex Bennée
2016-10-31 13:39     ` Fam Zheng

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20161031022836.GH30303@lemon \
    --to=famz@redhat.com \
    --cc=alex.bennee@linaro.org \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).