[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: [libvirt] [PATCHv4 31/51] snapshot: allow full domain xml in snapshot



On 09/01/2011 10:25 PM, Eric Blake wrote:
Just like VM saved state images (virsh save), snapshots MUST
track the inactive domain xml to detect any ABI incompatibilities.

The indentation is not perfect, but functionality comes before form.

@@ -1638,6 +1641,12 @@ qemuDomainSnapshotWriteMetadata(virDomainObjPtr vm,
                          _("failed to create snapshot file '%s'"), snapFile);
          goto cleanup;
      }
+    /* XXX need virsh snapshot-edit, before this makes sense:
+     * char *tmp;
+     * virAsprintf(&tmp, "snapshot-edit %s", vm->def->name);
+     * virEmitXMLWarning(fd, snapshot->def->name, tmp);
+     * VIR_FREE(tmp);
+     */

Turns out I've implemented snapshot-edit earlier in the series, so squashing this in:

diff --git i/docs/formatsnapshot.html.in w/docs/formatsnapshot.html.in
index 2fe9e4d..91799b4 100644
--- i/docs/formatsnapshot.html.in
+++ w/docs/formatsnapshot.html.in
@@ -72,7 +72,8 @@
         in <code>virDomainRevertToSnapshot()</code>.  Newer versions
         of libvirt store the entire
         inactive <a href="formatdomain.html">domain configuration</a>
-        at the time of the snapshot.  Readonly.
+        at the time of the snapshot (<span class="since">since
+        0.9.5</span>).  Readonly.
       </dd>
     </dl>

diff --git i/src/qemu/qemu_driver.c w/src/qemu/qemu_driver.c
index 17b97eb..a1557b1 100644
--- i/src/qemu/qemu_driver.c
+++ w/src/qemu/qemu_driver.c
@@ -1612,6 +1612,7 @@ qemuDomainSnapshotWriteMetadata(virDomainObjPtr vm,
     char *snapDir = NULL;
     char *snapFile = NULL;
     char uuidstr[VIR_UUID_STRING_BUFLEN];
+    char *tmp;

     virUUIDFormat(vm->def->uuid, uuidstr);
     newxml = virDomainSnapshotDefFormat(uuidstr, snapshot->def,
@@ -1641,12 +1642,14 @@ qemuDomainSnapshotWriteMetadata(virDomainObjPtr vm,
_("failed to create snapshot file '%s'"), snapFile);
         goto cleanup;
     }
-    /* XXX need virsh snapshot-edit, before this makes sense:
-     * char *tmp;
-     * virAsprintf(&tmp, "snapshot-edit %s", vm->def->name);
-     * virEmitXMLWarning(fd, snapshot->def->name, tmp);
-     * VIR_FREE(tmp);
-     */
+
+    if (virAsprintf(&tmp, "snapshot-edit %s", vm->def->name) < 0) {
+        virReportOOMError();
+        goto cleanup;
+    }
+    virEmitXMLWarning(fd, snapshot->def->name, tmp);
+    VIR_FREE(tmp);
+
     if (safewrite(fd, newxml, strlen(newxml)) != strlen(newxml)) {
virReportSystemError(errno, _("Failed to write snapshot data to %s"),
                              snapFile);


--
Eric Blake   eblake redhat com    +1-801-349-2682
Libvirt virtualization library http://libvirt.org


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]