]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu: domain: Use virXMLFormatElement in qemuDomainObjPrivateXMLFormatJob
authorPeter Krempa <pkrempa@redhat.com>
Thu, 1 Mar 2018 17:16:38 +0000 (18:16 +0100)
committerPeter Krempa <pkrempa@redhat.com>
Tue, 13 Mar 2018 12:54:11 +0000 (13:54 +0100)
Modernize the code by using the clever formatter rather than checking
manually when to format the end of the element.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
src/qemu/qemu_domain.c

index c01fea49466e238cb167ff340f7e00017712691c..d02341fe5527e26bfb852e89c65de3b3cb3d4fac 100644 (file)
@@ -2057,11 +2057,13 @@ qemuDomainObjPrivateXMLFormatAllowReboot(virBufferPtr buf,
 }
 
 
-static void
+static int
 qemuDomainObjPrivateXMLFormatJob(virBufferPtr buf,
                                  virDomainObjPtr vm,
                                  qemuDomainObjPrivatePtr priv)
 {
+    virBuffer attrBuf = VIR_BUFFER_INITIALIZER;
+    virBuffer childBuf = VIR_BUFFER_INITIALIZER;
     qemuDomainJob job = priv->job.active;
 
     if (!qemuDomainTrackJob(job))
@@ -2069,37 +2071,34 @@ qemuDomainObjPrivateXMLFormatJob(virBufferPtr buf,
 
     if (job == QEMU_JOB_NONE &&
         priv->job.asyncJob == QEMU_ASYNC_JOB_NONE)
-        return;
+        return 0;
+
+    virBufferSetChildIndent(&childBuf, buf);
 
-    virBufferAsprintf(buf, "<job type='%s' async='%s'",
+    virBufferAsprintf(&attrBuf, " type='%s' async='%s'",
                       qemuDomainJobTypeToString(job),
                       qemuDomainAsyncJobTypeToString(priv->job.asyncJob));
+
     if (priv->job.phase) {
-        virBufferAsprintf(buf, " phase='%s'",
+        virBufferAsprintf(&attrBuf, " phase='%s'",
                           qemuDomainAsyncJobPhaseToString(priv->job.asyncJob,
                                                           priv->job.phase));
     }
-    if (priv->job.asyncJob != QEMU_ASYNC_JOB_MIGRATION_OUT) {
-        virBufferAddLit(buf, "/>\n");
-    } else {
+
+    if (priv->job.asyncJob == QEMU_ASYNC_JOB_MIGRATION_OUT) {
         size_t i;
         virDomainDiskDefPtr disk;
         qemuDomainDiskPrivatePtr diskPriv;
 
-        virBufferAddLit(buf, ">\n");
-        virBufferAdjustIndent(buf, 2);
-
         for (i = 0; i < vm->def->ndisks; i++) {
             disk = vm->def->disks[i];
             diskPriv = QEMU_DOMAIN_DISK_PRIVATE(disk);
-            virBufferAsprintf(buf, "<disk dev='%s' migrating='%s'/>\n",
-                              disk->dst,
-                              diskPriv->migrating ? "yes" : "no");
+            virBufferAsprintf(&childBuf, "<disk dev='%s' migrating='%s'/>\n",
+                              disk->dst, diskPriv->migrating ? "yes" : "no");
         }
-
-        virBufferAdjustIndent(buf, -2);
-        virBufferAddLit(buf, "</job>\n");
     }
+
+    return virXMLFormatElement(buf, "job", &attrBuf, &childBuf);
 }
 
 
@@ -2159,7 +2158,8 @@ qemuDomainObjPrivateXMLFormat(virBufferPtr buf,
     if (priv->lockState)
         virBufferAsprintf(buf, "<lockstate>%s</lockstate>\n", priv->lockState);
 
-    qemuDomainObjPrivateXMLFormatJob(buf, vm, priv);
+    if (qemuDomainObjPrivateXMLFormatJob(buf, vm, priv) < 0)
+        return -1;
 
     if (priv->fakeReboot)
         virBufferAddLit(buf, "<fakereboot/>\n");