On Mon, 6 Feb 2017 15:25:53 +0000
"Richard W.M. Jones" <rjones(a)redhat.com> wrote:
On Mon, Feb 06, 2017 at 11:06:46AM +0300, Roman Kagan wrote:
> On Sat, Feb 04, 2017 at 03:10:44PM +0100, Tomáš Golembiovský wrote:
> > The function returns version of qemu-img as a tuple (major, minor), or
> > the value (0,9) in case there was an error detecting the version.
>
> Depending on QEMU version is extremly unreliable. Vendors often stick
> with fairly old versions but backport important features (you at RedHat
> know that, don't you ;) So it's not unlikely that e.g. a number of
> future RHEV/RHEL releases won't use this new feature even though the
> included QEMU already supports it.
>
> IMO a simpler and more reliable check is to construct a command line for
> qemu-img that is lightweight to execute and succeeds if the option is
> supported or fails otherwise.
>
> [ sorry for being so late with this ]
Good point. I didn't think this through.
Yes, I agree. My quick testing shows that the following command
should be sufficent to test for the "offset" parameter:
$ truncate -s1024 /tmp/test2
$ qemu-img create /tmp/test -f qcow2 -b
'json:{"offset":512,"file":{"filename":"/tmp/test2"}}'
On RHEL 7.3 it fails with:
qemu-img: /tmp/test: Block format 'raw' used by device '' doesn't
support the option 'offset'
and return code 1.
(Obviously we'd have to use real temporary files)
No we don't. Something like this also works:
qemu-img info 'json:{ "offset": 0, "file": {
"filename": "/dev/null" } }'
Tomas
I'll see if I can make a patch ...
Rich.
--
Richard Jones, Virtualization Group, Red Hat
http://people.redhat.com/~rjones
Read my programming and virtualization blog:
http://rwmj.wordpress.com
libguestfs lets you edit virtual machines. Supports shell scripting,
bindings from many languages.
http://libguestfs.org
--
Tomáš Golembiovský <tgolembi(a)redhat.com>