[libvirt] [sandbox PATCH 01/11] Add virt-sandbox-image

Daniel P. Berrange berrange at redhat.com
Thu Jul 30 10:39:36 UTC 2015


On Thu, Jul 23, 2015 at 03:57:27PM +0000, Eren Yagdiran wrote:
> From: Daniel P Berrange <berrange at redhat.com>
> 
> virt-sandbox-image.py is a python script that lets you download Docker
> images easily. It is a proof of concept code and consumes Docker Rest API.
> ---
>  po/POTFILES.in                           |   1 +
>  virt-sandbox-image/virt-sandbox-image.py | 397 +++++++++++++++++++++++++++++++
>  2 files changed, 398 insertions(+)
>  create mode 100644 virt-sandbox-image/virt-sandbox-image.py
> 
> diff --git a/po/POTFILES.in b/po/POTFILES.in
> index afcb050..7204112 100644
> --- a/po/POTFILES.in
> +++ b/po/POTFILES.in
> @@ -11,3 +11,4 @@ libvirt-sandbox/libvirt-sandbox-context-interactive.c
>  libvirt-sandbox/libvirt-sandbox-init-common.c
>  libvirt-sandbox/libvirt-sandbox-rpcpacket.c
>  libvirt-sandbox/libvirt-sandbox-util.c
> +virt-sandbox-image/virt-sandbox-image.py

This should really live in the 'bin/' directory and not have any
.py suffix


> +def get_url(server, path, headers):
> +    url = "https://" + server + path
> +    debug("  Fetching %s..." % url)
> +    

There is trailng whitespace here that can be chomped

> +def save_data(server, path, headers, dest, checksum=None, datalen=None):
> +    try:
> +        res = get_url(server, path, headers)
> +
> +        csum = None
> +        if checksum is not None:
> +            csum = hashlib.sha256()
> +
> +        pattern = [".", "o", "O", "o"]
> +        patternIndex = 0
> +        donelen = 0
> +
> +        with open(dest, "w") as f:
> +            while 1:
> +                buf = res.read(1024*64)
> +                if not buf:
> +                    break
> +                if csum is not None:
> +                    csum.update(buf)
> +                f.write(buf)
> +
> +                if datalen is not None:
> +                    donelen = donelen + len(buf)
> +                    debug("\x1b[s%s (%5d Kb of %5d Kb)\x1b8" % (
> +                        pattern[patternIndex], (donelen/1024), (datalen/1024)
> +                    ))
> +                    patternIndex = (patternIndex + 1) % 4
> +
> +        debug("\x1b[K")
> +        if csum is not None:
> +            csumstr = "sha256:" + csum.hexdigest()
> +            if csumstr != checksum:
> +                debug("FAIL checksum '%s' does not match '%s'" % (csumstr, checksum))
> +                os.remove(dest)
> +                raise IOError("Checksum '%s' for data does not match '%s'" % (csumstr, checksum))
> +    

And here and a few other places.


Regards,
Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|




More information about the libvir-list mailing list