Re: [PATCH 3/4] cpu: Format <cpu/> properly

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

 



On Thu, Feb 19, 2015 at 02:13:44PM +0100, Michal Privoznik wrote:
Well, not that we are not formatting invalid XML, rather than not as
beautiful as we can:

 <cpu mode='host-passthrough'>
 </cpu>

If there are no children, let's use the singleton element.


Is there any purpose behind this or is this just for the sake of
looking good?

ACK anyway (after the requisite 1/4 is fixed).

Signed-off-by: Michal Privoznik <mprivozn@xxxxxxxxxx>
---
src/conf/cpu_conf.c                                   | 19 +++++++++++++------
.../qemuxml2argv-cpu-host-kvmclock.xml                |  3 +--
2 files changed, 14 insertions(+), 8 deletions(-)

diff --git a/src/conf/cpu_conf.c b/src/conf/cpu_conf.c
index 9a430ef..1a35185 100644
--- a/src/conf/cpu_conf.c
+++ b/src/conf/cpu_conf.c
@@ -556,6 +556,8 @@ virCPUDefFormatBufFull(virBufferPtr buf,
                       bool updateCPU)
{
    int ret = -1;
+    virBuffer childrenBuf = VIR_BUFFER_INITIALIZER;
+    int indent = virBufferGetIndent(buf, false);

    if (!def)
        return 0;
@@ -585,20 +587,25 @@ virCPUDefFormatBufFull(virBufferPtr buf,
            virBufferAsprintf(buf, " match='%s'", tmp);
        }
    }
-    virBufferAddLit(buf, ">\n");
-    virBufferAdjustIndent(buf, 2);

+    virBufferAdjustIndent(&childrenBuf, indent + 2);
    if (def->arch)
-        virBufferAsprintf(buf, "<arch>%s</arch>\n",
+        virBufferAsprintf(&childrenBuf, "<arch>%s</arch>\n",
                          virArchToString(def->arch));
-    if (virCPUDefFormatBuf(buf, def, updateCPU) < 0)
+    if (virCPUDefFormatBuf(&childrenBuf, def, updateCPU) < 0)
        goto cleanup;
-    virBufferAdjustIndent(buf, -2);

-    virBufferAddLit(buf, "</cpu>\n");
+    if (virBufferUse(&childrenBuf)) {
+        virBufferAddLit(buf, ">\n");
+        virBufferAddBuffer(buf, &childrenBuf);
+        virBufferAddLit(buf, "</cpu>\n");
+    } else {
+        virBufferAddLit(buf, "/>\n");
+    }

    ret = 0;
 cleanup:
+    virBufferFreeAndReset(&childrenBuf);
    return ret;
}

diff --git a/tests/qemuxml2argvdata/qemuxml2argv-cpu-host-kvmclock.xml b/tests/qemuxml2argvdata/qemuxml2argv-cpu-host-kvmclock.xml
index 89153a5..8954278 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-cpu-host-kvmclock.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-cpu-host-kvmclock.xml
@@ -8,8 +8,7 @@
    <type arch='x86_64' machine='pc'>hvm</type>
    <boot dev='network'/>
  </os>
-  <cpu mode='host-passthrough'>
-  </cpu>
+  <cpu mode='host-passthrough'/>
  <clock offset='utc'>
    <timer name='kvmclock' present='no'/>
  </clock>
--
2.0.5

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list

Attachment: pgpw9NV7JO5oJ.pgp
Description: PGP signature

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list

[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]