All of lore.kernel.org
 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.