[libvirt] [PATCH 1/2] snapshot: let virsh edit disk snapshots
Daniel Veillard
veillard at redhat.com
Fri Oct 7 14:13:51 UTC 2011
On Thu, Oct 06, 2011 at 05:18:33PM -0600, Eric Blake wrote:
> It was impossible for 'virsh snapshot-current dom name' to set name
> as the current snapshot, if name is a disk-only snapshot.
>
> Using strstr rather than full-blown xml parsing is safe, since the
> xml is assumed to be well-formed coming from libvirtd rather than
> arbitrary text coming from the user.
>
> * tools/virsh.c (cmdSnapshotCurrent, cmdSnapshotEdit): Pass
> disk_only flag when redefining a disk snapshot.
> ---
> tools/virsh.c | 5 +++++
> 1 files changed, 5 insertions(+), 0 deletions(-)
>
> diff --git a/tools/virsh.c b/tools/virsh.c
> index 48f2b8a..70a4078 100644
> --- a/tools/virsh.c
> +++ b/tools/virsh.c
> @@ -12869,6 +12869,9 @@ cmdSnapshotEdit(vshControl *ctl, const vshCmd *cmd)
> virDomainSnapshotFree(snapshot);
> snapshot = NULL;
>
> + if (strstr(doc, "<state>disk-snapshot</state>"))
> + define_flags |= VIR_DOMAIN_SNAPSHOT_CREATE_DISK_ONLY;
> +
ahum, but okay ... maybe a small comment in the code
> /* Create and open the temporary file. */
> tmp = editWriteToTempFile(ctl, doc);
> if (!tmp)
> @@ -12978,6 +12981,8 @@ cmdSnapshotCurrent(vshControl *ctl, const vshCmd *cmd)
> xml = virDomainSnapshotGetXMLDesc(snapshot, VIR_DOMAIN_XML_SECURE);
> if (!xml)
> goto cleanup;
> + if (strstr(xml, "<state>disk-snapshot</state>"))
> + flags |= VIR_DOMAIN_SNAPSHOT_CREATE_DISK_ONLY;
same,
> snapshot2 = virDomainSnapshotCreateXML(dom, xml, flags);
> if (snapshot2 == NULL)
> goto cleanup;
ACK,
Daniel
--
Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/
daniel at veillard.com | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library http://libvirt.org/
More information about the libvir-list
mailing list