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

Daniel Veillard veillard at redhat.com
Tue Sep 27 07:28:51 UTC 2011


On Thu, Sep 22, 2011 at 02:34:57PM -0600, Eric Blake wrote:
> 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);

  yeah what I was afraid of when looking at 2/14 I think 
virBufferIndentAsprintf is better. One only has to concentrate
on reviewing the XML content, not any of the formatting.

  I assume the indent string "" here is used only to make this a no-op
untill all fits in place, I would rather see
    virBufferIndentAsprintf(buf, 0, "<currentMemory>%lu</currentMemory>\n",
                            def->mem.cur_balloon);
  than the above.

>      /* 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

  virBufferAsprintf(buf, "%*s ... can probably be changed rather
  mecanically

What do you think of introducing that new function instead ?

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