]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemuMigrationCookieXMLFormat: Extract formatting of NBD
authorPeter Krempa <pkrempa@redhat.com>
Wed, 30 Sep 2020 13:54:39 +0000 (15:54 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Mon, 5 Oct 2020 13:58:52 +0000 (15:58 +0200)
Move the code into 'qemuMigrationCookieNBDXMLFormat' and use modern XML
formatting code patterns.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
src/qemu/qemu_migration_cookie.c

index 442731933f46b5eb24058355279f02239d6f9b3b..2846ebb37c65c079f42dc186a94c1e94ec38416c 100644 (file)
@@ -755,6 +755,26 @@ qemuMigrationCookieCapsXMLFormat(virBufferPtr buf,
 }
 
 
+static void
+qemuMigrationCookieNBDXMLFormat(qemuMigrationCookieNBDPtr nbd,
+                                virBufferPtr buf)
+{
+    g_auto(virBuffer) attrBuf = VIR_BUFFER_INITIALIZER;
+    g_auto(virBuffer) childBuf = VIR_BUFFER_INIT_CHILD(buf);
+    size_t i;
+
+    if (nbd->port)
+        virBufferAsprintf(buf, " port='%d'", nbd->port);
+
+    for (i = 0; i < nbd->ndisks; i++) {
+        virBufferEscapeString(&childBuf, "<disk target='%s'", nbd->disks[i].target);
+        virBufferAsprintf(&childBuf, " capacity='%llu'/>\n", nbd->disks[i].capacity);
+    }
+
+    virXMLFormatElement(buf, "nbd", &attrBuf, &childBuf);
+}
+
+
 static int
 qemuMigrationCookieXMLFormat(virQEMUDriverPtr driver,
                              virQEMUCapsPtr qemuCaps,
@@ -811,25 +831,8 @@ qemuMigrationCookieXMLFormat(virQEMUDriverPtr driver,
     if ((mig->flags & QEMU_MIGRATION_COOKIE_NETWORK) && mig->network)
         qemuMigrationCookieNetworkXMLFormat(buf, mig->network);
 
-    if ((mig->flags & QEMU_MIGRATION_COOKIE_NBD) && mig->nbd) {
-        virBufferAddLit(buf, "<nbd");
-        if (mig->nbd->port)
-            virBufferAsprintf(buf, " port='%d'", mig->nbd->port);
-        if (mig->nbd->ndisks) {
-            virBufferAddLit(buf, ">\n");
-            virBufferAdjustIndent(buf, 2);
-            for (i = 0; i < mig->nbd->ndisks; i++) {
-                virBufferEscapeString(buf, "<disk target='%s'",
-                                      mig->nbd->disks[i].target);
-                virBufferAsprintf(buf, " capacity='%llu'/>\n",
-                                  mig->nbd->disks[i].capacity);
-            }
-            virBufferAdjustIndent(buf, -2);
-            virBufferAddLit(buf, "</nbd>\n");
-        } else {
-            virBufferAddLit(buf, "/>\n");
-        }
-    }
+    if ((mig->flags & QEMU_MIGRATION_COOKIE_NBD) && mig->nbd)
+        qemuMigrationCookieNBDXMLFormat(mig->nbd, buf);
 
     if (mig->flags & QEMU_MIGRATION_COOKIE_STATS && mig->jobInfo)
         qemuMigrationCookieStatisticsXMLFormat(buf, mig->jobInfo);