δΊ 2013-4-11 1:33, Pavel Hrdina ει:
On 10.4.2013 19:15, Eric Blake wrote:
On 04/10/2013 08:05 AM, Pavel Hrdina wrote:
Here is another proposal how to handle vm snapshots:
QMP vm-snapshot-save:
- { 'command': 'vm-snapshot-save',
'data': { 'name': 'str' },
'returns': 'SnapshotInfo' }
- vm-snapshot-save returns an error if there is an existing
snapshot with the same name
- you cannot provide an id for a new snapshot
- on success all information about created snapshot will be
returned
QMP vm-snapshot-load
- { 'command': 'vm-snapshot-load',
'data': { '*name': 'str', '*id': 'int' },
'returns': 'SnapshotInfo' }
- one of the name or id must be provided
- if both are provided they will match only the snapshot with the
same name and id
- returns SnapshotInfo only if the snapshot exists.
QMP vm-snapshot-delete:
- { 'command': 'vm-snapshot-delete',
'data': { '*name': 'str', '*id': 'int' },
'returns': 'SnapshotInfo' }
- same rules as vm-snapshot-load
Missing some form of query-snapshots to list all consistent snapshots
that can be loaded or deleted (or is that another series?)
Yes, there is another series for that.
http://lists.nongnu.org/archive/html/qemu-devel/2013-04/msg00196.html
Also, while load can only take a consistent snapshot, it might make
sense to expose two levels of delete - one that deletes consistent
snapshots, and one that deletes a snapshot for a given block device
regardless of whether it is consistent across all devices in use by
the VM.
I think that Wenchao also works on it. He posted some patches for block
snapshots about month ago.
yep, the latest version is at
http://lists.nongnu.org/archive/html/qemu-devel/2013-04/msg02525.html
which expose block'image info to management stack. Luckily the two
serial does not conflict each other in main part:), only for
bdrv_snapshot_find() function.
HMP savevm:
- args_type = "force:-f,name:s?",
- if the name is not provided the HMP command will generates new
one for QMP command
- if there is already a snapshot with provided or generated name
it will fails
- there will be an optional -f parameter to force saving requested
snapshot and it will internally use vm-snapshot-delete and then
vm-snapshot-save
- all information about created snapshot will be printed
HMP loadvm:
- args_type = "name:s?,id:i?",
- follow the same behavior as the QMP command
Except that with HMP, arguments are positional. You can't provide 'id'
in isolation; by listing id:i? second, the parser requires that the
first argument encountered is a name.
I think a better interface might be:
HMP loadvm:
- args_type = "id:-i,name:s?'
If just name is given, first do a tag lookup; if that fails do an id
lookup. If the -i flag is given, skip the tag lookup just do an id
lookup.
I didn't realize that, thanks for pointing this out.
HMP delvm:
- args_type = "name:s?,id:i?"
- same rules as loadvm
Same comment as for loadvm.
--
Best Regards
Wenchao Xia