On 07/17/2013 12:28 PM, Geoff Hickey wrote:ACK and pushed.
> Add support for creating disk-only (no memory) snapshots in esx, and
> for quiescing the VM before taking the snapshot. The VMware API
> supports these operations directly, so adding support to libvirt is
> just a matter of setting the flags correctly when calling
> VMware. VIR_DOMAIN_SNAPSHOT_CREATE_DISK_ONLY and
> VIR_DOMAIN_SNAPSHOT_CREATE_QUIESCE are now valid flags for esx.
> ---
> src/esx/esx_driver.c | 14 ++++++++++----
> 1 files changed, 10 insertions(+), 4 deletions(-)
Comment is a bit misleading; I reworded it slightly to emphasize that
>
> diff --git a/src/esx/esx_driver.c b/src/esx/esx_driver.c
> index fbe43c2..d69576d 100644
> --- a/src/esx/esx_driver.c
> +++ b/src/esx/esx_driver.c
> @@ -4209,9 +4209,14 @@ esxDomainSnapshotCreateXML(virDomainPtr domain, const char *xmlDesc,
> esxVI_TaskInfoState taskInfoState;
> char *taskInfoErrorMessage = NULL;
> virDomainSnapshotPtr snapshot = NULL;
> + bool diskOnly = (flags & VIR_DOMAIN_SNAPSHOT_CREATE_DISK_ONLY) != 0;
> + bool quiesce = (flags & VIR_DOMAIN_SNAPSHOT_CREATE_QUIESCE) != 0;
>
> - /* ESX has no snapshot metadata, so this flag is trivial. */
> - virCheckFlags(VIR_DOMAIN_SNAPSHOT_CREATE_NO_METADATA, NULL);
> + /* ESX supports disk-only and quiesced snapshots, but has no snapshot *
> + * metadata. */
the flag is accepted and trivial because it is libvirt that tracks no
metadata.
Hmm, the ESX driver is missing support for virDomainListAllSnapshots,
along with its ability to filter based on whether a snapshot was
disk-only or included memory. Is that something you are interested in
tackling as a followup?
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org