[libvirt] [PATCH 03/14] snapshot: indent domain xml when nesting, round 3

Eric Blake eblake at redhat.com
Thu Sep 22 20:34:57 UTC 2011


Pretty mechanical.  Also includes some long line breaks, as well
as relying on the fact that virBufferIndentEscapeString(buf, indent,
format, NULL) is a no-op.  I've marked all the sub-elements that
need indentation fixups in later patches.

* src/conf/domain_conf.c (virDomainDefFormatInternal): Indent all
parts of <domain> body generated here.
---
 src/conf/domain_conf.c |  259 ++++++++++++++++++++++++------------------------
 1 files changed, 130 insertions(+), 129 deletions(-)

diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 3e3be3c..64bc82d 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -10485,65 +10485,65 @@ virDomainDefFormatInternal(virDomainDefPtr def,
     virBufferAddLit(buf, ">\n");

     indent += 2;
-    /* XXX Fix indentation of the body */

-    virBufferEscapeString(buf, "  <name>%s</name>\n", def->name);
+    virBufferIndentEscapeString(buf, indent, "<name>%s</name>\n", def->name);

     uuid = def->uuid;
     virUUIDFormat(uuid, uuidstr);
-    virBufferAsprintf(buf, "  <uuid>%s</uuid>\n", uuidstr);
+    virBufferAsprintf(buf, "%*s<uuid>%s</uuid>\n", indent, "", uuidstr);

-    if (def->description)
-        virBufferEscapeString(buf, "  <description>%s</description>\n",
-                              def->description);
+    virBufferIndentEscapeString(buf, indent,
+                                "<description>%s</description>\n",
+                                def->description);

-    virBufferAsprintf(buf, "  <memory>%lu</memory>\n", def->mem.max_balloon);
-    virBufferAsprintf(buf, "  <currentMemory>%lu</currentMemory>\n",
-                      def->mem.cur_balloon);
+    virBufferAsprintf(buf, "%*s<memory>%lu</memory>\n",
+                      indent, "", def->mem.max_balloon);
+    virBufferAsprintf(buf, "%*s<currentMemory>%lu</currentMemory>\n",
+                      indent, "", def->mem.cur_balloon);

     /* add blkiotune only if there are any */
     if (def->blkio.weight) {
-        virBufferAsprintf(buf, "  <blkiotune>\n");
-        virBufferAsprintf(buf, "    <weight>%u</weight>\n",
-                          def->blkio.weight);
-        virBufferAsprintf(buf, "  </blkiotune>\n");
+        virBufferIndentAddLit(buf, indent, "<blkiotune>\n");
+        virBufferAsprintf(buf, "%*s<weight>%u</weight>\n",
+                          indent + 2, "", def->blkio.weight);
+        virBufferIndentAddLit(buf, indent, "</blkiotune>\n");
     }

     /* add memtune only if there are any */
     if (def->mem.hard_limit || def->mem.soft_limit || def->mem.min_guarantee ||
         def->mem.swap_hard_limit)
-        virBufferAsprintf(buf, "  <memtune>\n");
+        virBufferIndentAddLit(buf, indent, "<memtune>\n");
     if (def->mem.hard_limit) {
-        virBufferAsprintf(buf, "    <hard_limit>%lu</hard_limit>\n",
-                          def->mem.hard_limit);
+        virBufferAsprintf(buf, "%*s<hard_limit>%lu</hard_limit>\n",
+                          indent + 2, "", def->mem.hard_limit);
     }
     if (def->mem.soft_limit) {
-        virBufferAsprintf(buf, "    <soft_limit>%lu</soft_limit>\n",
-                          def->mem.soft_limit);
+        virBufferAsprintf(buf, "%*s<soft_limit>%lu</soft_limit>\n",
+                          indent + 2, "", def->mem.soft_limit);
     }
     if (def->mem.min_guarantee) {
-        virBufferAsprintf(buf, "    <min_guarantee>%lu</min_guarantee>\n",
-                          def->mem.min_guarantee);
+        virBufferAsprintf(buf, "%*s<min_guarantee>%lu</min_guarantee>\n",
+                          indent + 2, "", def->mem.min_guarantee);
     }
     if (def->mem.swap_hard_limit) {
-        virBufferAsprintf(buf, "    <swap_hard_limit>%lu</swap_hard_limit>\n",
-                          def->mem.swap_hard_limit);
+        virBufferAsprintf(buf, "%*s<swap_hard_limit>%lu</swap_hard_limit>\n",
+                          indent + 2, "", def->mem.swap_hard_limit);
     }
     if (def->mem.hard_limit || def->mem.soft_limit || def->mem.min_guarantee ||
         def->mem.swap_hard_limit)
-        virBufferAsprintf(buf, "  </memtune>\n");
+        virBufferIndentAddLit(buf, indent, "</memtune>\n");

     if (def->mem.hugepage_backed) {
-        virBufferAddLit(buf, "  <memoryBacking>\n");
-        virBufferAddLit(buf, "    <hugepages/>\n");
-        virBufferAddLit(buf, "  </memoryBacking>\n");
+        virBufferIndentAddLit(buf, indent, "<memoryBacking>\n");
+        virBufferIndentAddLit(buf, indent, "  <hugepages/>\n");
+        virBufferIndentAddLit(buf, indent, "</memoryBacking>\n");
     }

     for (n = 0 ; n < def->cpumasklen ; n++)
         if (def->cpumask[n] != 1)
             allones = 0;

-    virBufferAddLit(buf, "  <vcpu");
+    virBufferIndentAddLit(buf, indent, "<vcpu");
     if (!allones) {
         char *cpumask = NULL;
         if ((cpumask =
@@ -10558,22 +10558,22 @@ virDomainDefFormatInternal(virDomainDefPtr def,

     if (def->cputune.shares || def->cputune.vcpupin ||
         def->cputune.period || def->cputune.quota)
-        virBufferAddLit(buf, "  <cputune>\n");
+        virBufferIndentAddLit(buf, indent, "<cputune>\n");

     if (def->cputune.shares)
-        virBufferAsprintf(buf, "    <shares>%lu</shares>\n",
-                          def->cputune.shares);
+        virBufferAsprintf(buf, "%*s<shares>%lu</shares>\n",
+                          indent + 2, "", def->cputune.shares);
     if (def->cputune.period)
-        virBufferAsprintf(buf, "    <period>%llu</period>\n",
-                          def->cputune.period);
+        virBufferAsprintf(buf, "%*s<period>%llu</period>\n",
+                          indent + 2, "", def->cputune.period);
     if (def->cputune.quota)
-        virBufferAsprintf(buf, "    <quota>%lld</quota>\n",
-                          def->cputune.quota);
+        virBufferAsprintf(buf, "%*s<quota>%lld</quota>\n",
+                          indent + 2, "", def->cputune.quota);
     if (def->cputune.vcpupin) {
         int i;
         for (i = 0; i < def->cputune.nvcpupin; i++) {
-            virBufferAsprintf(buf, "    <vcpupin vcpu='%u' ",
-                              def->cputune.vcpupin[i]->vcpuid);
+            virBufferAsprintf(buf, "%*s<vcpupin vcpu='%u' ",
+                              indent + 2, "", def->cputune.vcpupin[i]->vcpuid);

             char *cpumask = NULL;
             cpumask = virDomainCpuSetFormat(def->cputune.vcpupin[i]->cpumask,
@@ -10592,43 +10592,43 @@ virDomainDefFormatInternal(virDomainDefPtr def,

     if (def->cputune.shares || def->cputune.vcpupin ||
         def->cputune.period || def->cputune.quota)
-        virBufferAddLit(buf, "  </cputune>\n");
-
-    if (def->numatune.memory.nodemask)
-        virBufferAddLit(buf, "  <numatune>\n");
+        virBufferIndentAddLit(buf, indent, "</cputune>\n");

     if (def->numatune.memory.nodemask) {
         char *nodemask = NULL;
+
+        virBufferIndentAddLit(buf, indent, "<numatune>\n");
         nodemask = virDomainCpuSetFormat(def->numatune.memory.nodemask,
                                          VIR_DOMAIN_CPUMASK_LEN);
         if (nodemask == NULL) {
-            virDomainReportError(VIR_ERR_INTERNAL_ERROR,
-                                 "%s", _("failed to format nodeset for NUMA memory tuning"));
+            virDomainReportError(VIR_ERR_INTERNAL_ERROR, "%s",
+                          _("failed to format nodeset for NUMA memory tuning"));
             goto cleanup;
         }

-        virBufferAsprintf(buf, "    <memory mode='%s' nodeset='%s'/>\n",
-                          virDomainNumatuneMemModeTypeToString(def->numatune.memory.mode),
+        virBufferAsprintf(buf, "%*s<memory mode='%s' nodeset='%s'/>\n",
+                          indent + 2, "",
+                          virDomainNumatuneMemModeTypeToString(def->numatune.
+                                                               memory.mode),
                           nodemask);
         VIR_FREE(nodemask);
+        virBufferIndentAddLit(buf, indent, "</numatune>\n");
     }

-    if (def->numatune.memory.nodemask)
-        virBufferAddLit(buf, "  </numatune>\n");
-
     if (def->sysinfo)
-        virDomainSysinfoDefFormat(buf, def->sysinfo);
+        virDomainSysinfoDefFormat(buf, def->sysinfo); /* XXX indent */

     if (def->os.bootloader) {
-        virBufferEscapeString(buf, "  <bootloader>%s</bootloader>\n",
-                              def->os.bootloader);
-        if (def->os.bootloaderArgs)
-            virBufferEscapeString(buf, "  <bootloader_args>%s</bootloader_args>\n",
-                                  def->os.bootloaderArgs);
+        virBufferIndentEscapeString(buf, indent,
+                                    "<bootloader>%s</bootloader>\n",
+                                    def->os.bootloader);
+        virBufferIndentEscapeString(buf, indent,
+                                    "<bootloader_args>%s</bootloader_args>\n",
+                                    def->os.bootloaderArgs);
     }
-    virBufferAddLit(buf, "  <os>\n");

-    virBufferAddLit(buf, "    <type");
+    virBufferIndentAddLit(buf, indent, "<os>\n");
+    virBufferIndentAddLit(buf, indent + 2, "<type");
     if (def->os.arch)
         virBufferAsprintf(buf, " arch='%s'", def->os.arch);
     if (def->os.machine)
@@ -10644,24 +10644,18 @@ virDomainDefFormatInternal(virDomainDefPtr def,
     else
         virBufferAsprintf(buf, ">%s</type>\n", def->os.type);

-    if (def->os.init)
-        virBufferEscapeString(buf, "    <init>%s</init>\n",
-                              def->os.init);
-    if (def->os.loader)
-        virBufferEscapeString(buf, "    <loader>%s</loader>\n",
-                              def->os.loader);
-    if (def->os.kernel)
-        virBufferEscapeString(buf, "    <kernel>%s</kernel>\n",
-                              def->os.kernel);
-    if (def->os.initrd)
-        virBufferEscapeString(buf, "    <initrd>%s</initrd>\n",
-                              def->os.initrd);
-    if (def->os.cmdline)
-        virBufferEscapeString(buf, "    <cmdline>%s</cmdline>\n",
-                              def->os.cmdline);
-    if (def->os.root)
-        virBufferEscapeString(buf, "    <root>%s</root>\n",
-                              def->os.root);
+    virBufferIndentEscapeString(buf, indent + 2, "<init>%s</init>\n",
+                                def->os.init);
+    virBufferIndentEscapeString(buf, indent + 2, "<loader>%s</loader>\n",
+                                def->os.loader);
+    virBufferIndentEscapeString(buf, indent + 2, "<kernel>%s</kernel>\n",
+                                def->os.kernel);
+    virBufferIndentEscapeString(buf, indent + 2, "<initrd>%s</initrd>\n",
+                                def->os.initrd);
+    virBufferIndentEscapeString(buf, indent + 2, "<cmdline>%s</cmdline>\n",
+                                def->os.cmdline);
+    virBufferIndentEscapeString(buf, indent + 2, "<root>%s</root>\n",
+                                def->os.root);

     if (!def->os.bootloader) {
         for (n = 0 ; n < def->os.nBootDevs ; n++) {
@@ -10673,21 +10667,24 @@ virDomainDefFormatInternal(virDomainDefPtr def,
                                      def->os.bootDevs[n]);
                 goto cleanup;
             }
-            virBufferAsprintf(buf, "    <boot dev='%s'/>\n", boottype);
+            virBufferAsprintf(buf, "%*s<boot dev='%s'/>\n",
+                              indent + 2, "", boottype);
         }

         if (def->os.bootmenu != VIR_DOMAIN_BOOT_MENU_DEFAULT) {
             const char *enabled = (def->os.bootmenu ==
                                    VIR_DOMAIN_BOOT_MENU_ENABLED ? "yes"
                                                                 : "no");
-            virBufferAsprintf(buf, "    <bootmenu enable='%s'/>\n", enabled);
+            virBufferAsprintf(buf, "%*s<bootmenu enable='%s'/>\n",
+                              indent + 2, "", enabled);
         }

         if (def->os.bios.useserial) {
             const char *useserial = (def->os.bios.useserial ==
                                      VIR_DOMAIN_BIOS_USESERIAL_YES ? "yes"
                                                                    : "no");
-            virBufferAsprintf(buf, "    <bios useserial='%s'/>\n", useserial);
+            virBufferAsprintf(buf, "%*s<bios useserial='%s'/>\n",
+                              indent + 2, "", useserial);
         }
     }

@@ -10700,14 +10697,15 @@ virDomainDefFormatInternal(virDomainDefPtr def,
                          _("unexpected smbios mode %d"), def->os.smbios_mode);
             goto cleanup;
         }
-        virBufferAsprintf(buf, "    <smbios mode='%s'/>\n", mode);
+        virBufferAsprintf(buf, "%*s<smbios mode='%s'/>\n",
+                          indent + 2, "", mode);
     }

-    virBufferAddLit(buf, "  </os>\n");
+    virBufferIndentAddLit(buf, indent, "</os>\n");

     if (def->features) {
         int i;
-        virBufferAddLit(buf, "  <features>\n");
+        virBufferIndentAddLit(buf, indent, "<features>\n");
         for (i = 0 ; i < VIR_DOMAIN_FEATURE_LAST ; i++) {
             if (def->features & (1 << i)) {
                 const char *name = virDomainFeatureTypeToString(i);
@@ -10716,20 +10714,21 @@ virDomainDefFormatInternal(virDomainDefPtr def,
                                          _("unexpected feature %d"), i);
                     goto cleanup;
                 }
-                virBufferAsprintf(buf, "    <%s/>\n", name);
+                virBufferAsprintf(buf, "%*s<%s/>\n", indent + 2, "", name);
             }
         }
-        virBufferAddLit(buf, "  </features>\n");
+        virBufferIndentAddLit(buf, indent, "</features>\n");
     }

-    if (virCPUDefFormatBuf(buf, def->cpu, "  ", 0) < 0)
+    if (virCPUDefFormatBuf(buf, def->cpu, "  ", 0) < 0) /* XXX indent */
         goto cleanup;

-    virBufferAsprintf(buf, "  <clock offset='%s'",
+    virBufferAsprintf(buf, "%*s<clock offset='%s'", indent, "",
                       virDomainClockOffsetTypeToString(def->clock.offset));
     switch (def->clock.offset) {
     case VIR_DOMAIN_CLOCK_OFFSET_VARIABLE:
-        virBufferAsprintf(buf, " adjustment='%lld'", def->clock.data.adjustment);
+        virBufferAsprintf(buf, " adjustment='%lld'",
+                          def->clock.data.adjustment);
         break;
     case VIR_DOMAIN_CLOCK_OFFSET_TIMEZONE:
         virBufferEscapeString(buf, " timezone='%s'", def->clock.data.timezone);
@@ -10740,67 +10739,67 @@ virDomainDefFormatInternal(virDomainDefPtr def,
     } else {
         virBufferAddLit(buf, ">\n");
         for (n = 0; n < def->clock.ntimers; n++) {
-            if (virDomainTimerDefFormat(buf, def->clock.timers[n]) < 0)
+            if (virDomainTimerDefFormat(buf, def->clock.timers[n]) < 0) /* XXX indent */
                 goto cleanup;
         }
-        virBufferAddLit(buf, "  </clock>\n");
+        virBufferIndentAddLit(buf, indent, "</clock>\n");
     }

     if (virDomainLifecycleDefFormat(buf, def->onPoweroff,
                                     "on_poweroff",
-                                    virDomainLifecycleTypeToString) < 0)
+                                    virDomainLifecycleTypeToString) < 0) /* XXX indent */
         goto cleanup;
     if (virDomainLifecycleDefFormat(buf, def->onReboot,
                                     "on_reboot",
-                                    virDomainLifecycleTypeToString) < 0)
+                                    virDomainLifecycleTypeToString) < 0) /* XXX indent */
         goto cleanup;
     if (virDomainLifecycleDefFormat(buf, def->onCrash,
                                     "on_crash",
-                                    virDomainLifecycleCrashTypeToString) < 0)
+                                    virDomainLifecycleCrashTypeToString) < 0) /* XXX indent */
         goto cleanup;

-    virBufferAddLit(buf, "  <devices>\n");
+    virBufferIndentAddLit(buf, indent, "<devices>\n");
+    indent += 2;

-    if (def->emulator)
-        virBufferEscapeString(buf, "    <emulator>%s</emulator>\n",
-                              def->emulator);
+    virBufferIndentEscapeString(buf, indent, "<emulator>%s</emulator>\n",
+                                def->emulator);

     for (n = 0 ; n < def->ndisks ; n++)
-        if (virDomainDiskDefFormat(buf, def->disks[n], flags) < 0)
+        if (virDomainDiskDefFormat(buf, def->disks[n], flags) < 0)  /* XXX indent */
             goto cleanup;

     for (n = 0 ; n < def->ncontrollers ; n++)
-        if (virDomainControllerDefFormat(buf, def->controllers[n], flags) < 0)
+        if (virDomainControllerDefFormat(buf, def->controllers[n], flags) < 0) /* XXX indent */
             goto cleanup;

     for (n = 0 ; n < def->nleases ; n++)
-        if (virDomainLeaseDefFormat(buf, def->leases[n]) < 0)
+        if (virDomainLeaseDefFormat(buf, def->leases[n]) < 0) /* XXX indent */
             goto cleanup;

     for (n = 0 ; n < def->nfss ; n++)
-        if (virDomainFSDefFormat(buf, def->fss[n], flags) < 0)
+        if (virDomainFSDefFormat(buf, def->fss[n], flags) < 0) /* XXX indent */
             goto cleanup;


     for (n = 0 ; n < def->nnets ; n++)
-        if (virDomainNetDefFormat(buf, def->nets[n], flags) < 0)
+        if (virDomainNetDefFormat(buf, def->nets[n], flags) < 0) /* XXX indent */
             goto cleanup;

     for (n = 0 ; n < def->nsmartcards ; n++)
-        if (virDomainSmartcardDefFormat(buf, def->smartcards[n], flags) < 0)
+        if (virDomainSmartcardDefFormat(buf, def->smartcards[n], flags) < 0) /* XXX indent */
             goto cleanup;

     for (n = 0 ; n < def->nserials ; n++)
-        if (virDomainChrDefFormat(buf, def->serials[n], flags) < 0)
+        if (virDomainChrDefFormat(buf, def->serials[n], flags) < 0) /* XXX indent */
             goto cleanup;

     for (n = 0 ; n < def->nparallels ; n++)
-        if (virDomainChrDefFormat(buf, def->parallels[n], flags) < 0)
+        if (virDomainChrDefFormat(buf, def->parallels[n], flags) < 0) /* XXX indent */
             goto cleanup;

     /* If there's a PV console that's preferred.. */
     if (def->console) {
-        if (virDomainChrDefFormat(buf, def->console, flags) < 0)
+        if (virDomainChrDefFormat(buf, def->console, flags) < 0) /* XXX indent */
             goto cleanup;
     } else if (def->nserials != 0) {
         /* ..else for legacy compat duplicate the first serial device as a
@@ -10808,17 +10807,17 @@ virDomainDefFormatInternal(virDomainDefPtr def,
         virDomainChrDef console;
         memcpy(&console, def->serials[0], sizeof(console));
         console.deviceType = VIR_DOMAIN_CHR_DEVICE_TYPE_CONSOLE;
-        if (virDomainChrDefFormat(buf, &console, flags) < 0)
+        if (virDomainChrDefFormat(buf, &console, flags) < 0) /* XXX indent */
             goto cleanup;
     }

     for (n = 0 ; n < def->nchannels ; n++)
-        if (virDomainChrDefFormat(buf, def->channels[n], flags) < 0)
+        if (virDomainChrDefFormat(buf, def->channels[n], flags) < 0) /* XXX indent */
             goto cleanup;

     for (n = 0 ; n < def->ninputs ; n++)
         if (def->inputs[n]->bus == VIR_DOMAIN_INPUT_BUS_USB &&
-            virDomainInputDefFormat(buf, def->inputs[n], flags) < 0)
+            virDomainInputDefFormat(buf, def->inputs[n], flags) < 0) /* XXX indent */
             goto cleanup;

     if (def->ngraphics > 0) {
@@ -10830,41 +10829,42 @@ virDomainDefFormatInternal(virDomainDefPtr def,
             { .alias = NULL },
         };

-        if (virDomainInputDefFormat(buf, &autoInput, flags) < 0)
+        if (virDomainInputDefFormat(buf, &autoInput, flags) < 0) /* XXX indent */
             goto cleanup;

         for (n = 0 ; n < def->ngraphics ; n++)
-            if (virDomainGraphicsDefFormat(buf, def->graphics[n], flags) < 0)
+            if (virDomainGraphicsDefFormat(buf, def->graphics[n], flags) < 0) /* XXX indent */
                 goto cleanup;
     }

     for (n = 0 ; n < def->nsounds ; n++)
-        if (virDomainSoundDefFormat(buf, def->sounds[n], flags) < 0)
+        if (virDomainSoundDefFormat(buf, def->sounds[n], flags) < 0) /* XXX indent */
             goto cleanup;

     for (n = 0 ; n < def->nvideos ; n++)
-        if (virDomainVideoDefFormat(buf, def->videos[n], flags) < 0)
+        if (virDomainVideoDefFormat(buf, def->videos[n], flags) < 0) /* XXX indent */
             goto cleanup;

     for (n = 0 ; n < def->nhostdevs ; n++)
-        if (virDomainHostdevDefFormat(buf, def->hostdevs[n], flags) < 0)
+        if (virDomainHostdevDefFormat(buf, def->hostdevs[n], flags) < 0) /* XXX indent */
             goto cleanup;

     for (n = 0 ; n < def->nredirdevs ; n++)
-        if (virDomainRedirdevDefFormat(buf, def->redirdevs[n], flags) < 0)
+        if (virDomainRedirdevDefFormat(buf, def->redirdevs[n], flags) < 0) /* XXX indent */
             goto cleanup;

     for (n = 0 ; n < def->nhubs ; n++)
-        if (virDomainHubDefFormat(buf, def->hubs[n], flags) < 0)
+        if (virDomainHubDefFormat(buf, def->hubs[n], flags) < 0) /* XXX indent */
             goto cleanup;

     if (def->watchdog)
-        virDomainWatchdogDefFormat (buf, def->watchdog, flags);
+        virDomainWatchdogDefFormat (buf, def->watchdog, flags); /* XXX indent */

     if (def->memballoon)
-        virDomainMemballoonDefFormat (buf, def->memballoon, flags);
+        virDomainMemballoonDefFormat (buf, def->memballoon, flags); /* XXX indent */

-    virBufferAddLit(buf, "  </devices>\n");
+    indent -= 2;
+    virBufferIndentAddLit(buf, indent, "</devices>\n");

     if (def->seclabel.model) {
         const char *sectype = virDomainSeclabelTypeToString(def->seclabel.type);
@@ -10876,29 +10876,30 @@ virDomainDefFormatInternal(virDomainDefPtr def,
             (flags & VIR_DOMAIN_XML_INACTIVE)) {
             /* This is the default for inactive xml, so nothing to output.  */
         } else {
-            virBufferAsprintf(buf, "  <seclabel type='%s' model='%s' relabel='%s'>\n",
+            virBufferAsprintf(buf, "%*s<seclabel type='%s' model='%s' "
+                              "relabel='%s'>\n", indent, "",
                               sectype, def->seclabel.model,
                               def->seclabel.norelabel ? "no" : "yes");
-            if (def->seclabel.label)
-                virBufferEscapeString(buf, "    <label>%s</label>\n",
-                                      def->seclabel.label);
-            if (!def->seclabel.norelabel && def->seclabel.imagelabel)
-                virBufferEscapeString(buf, "    <imagelabel>%s</imagelabel>\n",
-                                      def->seclabel.imagelabel);
-            if (def->seclabel.baselabel &&
-                (def->seclabel.type == VIR_DOMAIN_SECLABEL_DYNAMIC))
-                virBufferEscapeString(buf, "    <baselabel>%s</baselabel>\n",
-                                      def->seclabel.baselabel);
-            virBufferAddLit(buf, "  </seclabel>\n");
+            virBufferIndentEscapeString(buf, indent + 2,
+                                        "<label>%s</label>\n",
+                                        def->seclabel.label);
+            if (!def->seclabel.norelabel)
+                virBufferIndentEscapeString(buf, indent + 2,
+                                            "<imagelabel>%s</imagelabel>\n",
+                                            def->seclabel.imagelabel);
+            if (def->seclabel.type == VIR_DOMAIN_SECLABEL_DYNAMIC)
+                virBufferIndentEscapeString(buf, indent + 2,
+                                            "<baselabel>%s</baselabel>\n",
+                                            def->seclabel.baselabel);
+            virBufferIndentAddLit(buf, indent, "</seclabel>\n");
         }
     }

     if (def->namespaceData && def->ns.format) {
-        if ((def->ns.format)(buf, def->namespaceData) < 0)
+        if ((def->ns.format)(buf, def->namespaceData) < 0) /* XXX indent */
             goto cleanup;
     }

-    /* XXX Fix indentation of body prior to here */
     indent -= 2;

     virBufferIndentAddLit(buf, indent, "</domain>\n");
-- 
1.7.4.4




More information about the libvir-list mailing list