On Mon, Aug 10, 2009 at 10:04 AM, Pritesh
Kothari<Pritesh.Kothari(a)sun.com> wrote:
so until there is a fully developed API which can cleanly save the
snapshot to
a file at given location, i guess the above method is likely to be near to what
is expected of virDomainSave().
I see that TakeSnapshot receives a name, not a path as virDomainSave desires.
As of now, the virDomainSave implementation in vbox does not follow to
heart it's description: it ignores the filename completely.
I was thinking of two implementations:
1. only allow simple names (e.g. no path separators) as a parameter
for vbox virDomainSave.
Pass that name to IConsole::takeSnapshot() and let vbox take care of
everything needed.
You can then use the name to enable virDomainRestore() -- which
currently is not implemented.
2. parse the filename given to virDomainSave and split it into dir+fname.
Change the snapshot folder of the vm
IMachine::COMSETTER(SnapshotFolder) to `dir' and take a snapshot with
the name=`fname'.
This means that for each snapshot we have to change the snapshot
folder. I'm not sure whether this works properly or not.
At restore time we do the same things: split the param to
virDomainRestore() into dir+fname, change the snapshot folder to `dir'
and restore the `fname' snapshot.
I'm not sure it the second is implementable: from what I tested, to
change the snapshot folder you need to modify the vm (vboxmanage
modifyvm $VMNAME --snapshotfolder $SNAPDIR) and that means that you
have to shut it down, which breaks the semantics of virDomainSave().
If 2. is not implementable, I think the first solution is better that
what we currently have, because it allows the user to use the vm and
restore it to a known previous state, which cannot currently be done.
--
.
..: Lucian