On 03/05/2012 10:33 AM, Paolo Bonzini wrote: > The mode field lets a management application create the snapshot > destination outside QEMU. > > Right now, the only modes are "existing" and "absolute-paths". Mirroring > introduces "no-backing-file". In the future "relative-paths" could be > implemented too. > > Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> > --- > blockdev.c | 25 ++++++++++++++++--------- > qapi-schema.json | 21 ++++++++++++++++++++- > qmp-commands.hx | 10 ++++++++++ > 3 files changed, 46 insertions(+), 10 deletions(-) >
> > ## > +# @NewImageMode > +# > +# An enumeration that tells QEMU how to set the backing file path in > +# a new image file. > +# > +# @existing: QEMU should look for an existing image file. > +# > +# @absolute-paths: QEMU should create a new image with absolute paths > +# for the backing file. > +# > +# @no-backing-file: QEMU should create a new image with no backing file. Not present in this patch. Does it need to be rebased into the correct part of the series? > +# > +# Since: 1.1 > +## > +{ 'enum': 'NewImageMode' > + 'data': [ 'existing', 'absolute-paths' ] } > + > +## > # @BlockdevSnapshot > # > # @device: the name of the device to generate the snapshot from. > @@ -1127,7 +1145,8 @@ > # @format: #optional the format of the snapshot image, default is 'qcow2'. > ## > { 'type': 'BlockdevSnapshot', > - 'data': { 'device': 'str', 'snapshot-file': 'str', '*format': 'str' } } > + 'data': { 'device': 'str', 'snapshot-file': 'str', '*format': 'str', > + '*mode': 'NewImageMode' } } > > ## > # @BlockdevAction > diff --git a/qmp-commands.hx b/qmp-commands.hx > index fb4f1df..7c03b62 100644 > --- a/qmp-commands.hx > +++ b/qmp-commands.hx > @@ -705,6 +705,13 @@ A list of dictionaries is accepted, that contains the > actions to be performed. > For snapshots this is the device, the file to use for the new snapshot, > and the format. The default format, if not specified, is qcow2. > > +Each new snapshot defaults to being created by QEMU (wiping any > +contents if the file already exists), so this is mode of 'absolute-paths', which is the default if mode is not present, > but it is also possible to reuse > +an externally-created file. In the latter case, you should ensure that > +the new image file has the same contents as the current one; QEMU cannot > +perform any meaningful check. Typically this is achieved by using the > +current image file as the backing file for the new image. and this is mode 'existing'. Correct? If so, let's actually call that out in the wording. > + > Arguments: > > actions array: > @@ -715,6 +722,8 @@ actions array: > - "device": device name to snapshot (json-string) > - "snapshot-file": name of new image file (json-string) > - "format": format of new image (json-string, optional) > + - "mode": whether and how QEMU should create the snapshot file > + (NewImageMode, optional, default "absolute-paths") Well, this solves one of my two comments about the above wording, by calling out the default. -- Eric Blake ebl...@redhat.com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature