On 03/07/2016 05:39 AM, Lin Ma wrote: > The OVF specification v1.1.0(page 15) indicates that "Each file > referenced by a File element may be compressed using gzip > (see RFC1952)." > > In this case the .gz files should be decompressed first before > converting through qemu-img. > > Signed-off-by: Lin Ma <lma@xxxxxxxx> > --- > virtconv/formats.py | 13 +++++++++++++ > 1 file changed, 13 insertions(+) > > diff --git a/virtconv/formats.py b/virtconv/formats.py > index a7f88cb..6fa6215 100644 > --- a/virtconv/formats.py > +++ b/virtconv/formats.py > @@ -263,6 +263,8 @@ class VirtConverter(object): > """ > binnames = ["qemu-img", "kvm-img"] > > + decompress_cmd = None > + > if _is_test(): > executable = "/usr/bin/qemu-img" > else: > @@ -275,12 +277,23 @@ class VirtConverter(object): > raise RuntimeError(_("None of %s tools found.") % binnames) > > base = os.path.basename(absin) > + ext = os.path.splitext(base)[1] > + if (ext and ext[1:] == "gz"): > + if not find_executable("gzip"): > + raise RuntimeError("'gzip' is needed to decompress the file, " > + "but not found.") > + decompress_cmd = ["gzip", "-d", absin] > + base = os.path.splitext(base)[0] > + absin = absin[0:-3] > + self.print_cb("Running %s" % " ".join(decompress_cmd)) > cmd = [executable, "convert", "-O", disk_format, base, absout] > self.print_cb("Running %s" % " ".join(cmd)) > if dry: > return > > cmd[4] = absin > + if decompress_cmd is not None: > + _run_cmd(decompress_cmd) > _run_cmd(cmd) > > def convert_disks(self, disk_format, destdir=None, dry=False): > python setup.py test --coverage, then coverage annotate -d covdir, then look in covdir/virtconv_formats.py,cover: > base = os.path.basename(absin) > ext = os.path.splitext(base)[1] > if (ext and ext[1:] == "gz"): ! if not find_executable("gzip"): ! raise RuntimeError("'gzip' is needed to decompress the file, " ! "but not found.") ! decompress_cmd = ["gzip", "-d", absin] ! base = os.path.splitext(base)[0] ! absin = absin[0:-3] ! self.print_cb("Running %s" % " ".join(decompress_cmd)) > cmd = [executable, "convert", "-O", disk_format, base, absout] > self.print_cb("Running %s" % " ".join(cmd)) > if dry: > That means the test suite still isn't testing the newly added code, so something is missing from the test case - Cole _______________________________________________ virt-tools-list mailing list virt-tools-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/virt-tools-list