[virt-tools-list] [PATCH] virt-convert: decompress the .gz files before converting
Lin Ma
lma at suse.com
Wed Feb 24 02:55:31 UTC 2016
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 at suse.com>
---
virtconv/formats.py | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/virtconv/formats.py b/virtconv/formats.py
index a7f88cb..ab37e10 100644
--- a/virtconv/formats.py
+++ b/virtconv/formats.py
@@ -275,12 +275,22 @@ 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
+ _run_cmd(decompress_cmd)
_run_cmd(cmd)
def convert_disks(self, disk_format, destdir=None, dry=False):
--
2.6.3
More information about the virt-tools-list
mailing list