On Tue, Mar 23, 2010 at 07:35:22PM +0100, Matthias Bolte wrote:
2010/3/23 Chris Lalancette <clalance(a)redhat.com>:
> /* Return the number of snapshots for this domain */
> int virDomainSnapshotNum(virDomainPtr domain, unsigned int flags);
Shouldn't this be called virDomainNumOfSnapshots to be consistent with
the naming or other num-of functions?
Yeah that would be a bit nicer, not fundamental though :-)
>
> /* Get the names of all snapshots for this domain */
> int virDomainListSnapshotNames(virDomainPtr domain, char **names, int nameslen,
> unsigned int flags);
>
> /* Get a handle to a named snapshot */
> virDomainSnapshotPtr virDomainSnapshotLookupByName(virDomainPtr domain,
> const char *name,
> unsigned int flags);
>
> /* Set this snapshot as the current one for a domain, to be
> * used next time domain is started */
> int virDomainSnapshotActivate(virDomainSnapshotPtr snapshot,
> unsigned int flags);
This delayed semantic cannot be implemented for ESX. ESX can revert to
a snapshot immediately only. I think the same holds true for
VirtualBox.
Maybe I misunterstand this. What should happen if you call activate on
a running domain?
I guess we really need to use the flags there, and check for the flag
semantic in the driver.
In ESX we will need a VIR_DOMAIN_SNAPSHOT_ACTIVATE_NOW flag to be passed
In QEmu we will need a VIR_DOMAIN_SNAPSHOT_ACTIVATE_RESTART to be passed
Or we split that as two different entry points as the semantic is
fairly different. This may be a bit cleaner, for example if you think of
a virsh command,
virsh snap_activate --now foo snap1
virsh snap_activate --restart foo snap1
where the command without flags would be rejected because there is no
common semantic, versus something like
virsh snap_use foo snap1
virsh snap_restart foo snap1
where using snap_use on qemu would raise a unsupported or snap_restart
on ESX.
Semantic is so different, we can't use it without some flags or
have
virsh snap_activate foo snap1
fail while
virsh snap_activate --restart foo snap1
would work, that's disturbing.
So I really think we need 2 different entry point
virDomainSnapshotActivateNow
virDomainSnapshotActivateLater
for example (and still with flags)
> int virDomainSnapshotFree(virDomainSnapshotPtr snapshot);
Shouldn't we add something like virDomainSnapshotDestroy() too
assuming the semantic of Free is just to discard the libvirt object
but not remove the actual data.
Daniel
--
Daniel Veillard | libxml Gnome XML XSLT toolkit
http://xmlsoft.org/
daniel(a)veillard.com | Rpmfind RPM search engine
http://rpmfind.net/
http://veillard.com/ | virtualization library
http://libvirt.org/