mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-22 05:35:25 +00:00
conf: Format managed property of hostdev-pci ports correctly
The property is parsed using virTristateBoolTypeFromString() but
formatted as if it was a regular bool, which results in the
following incorrect conversion:
BOOL_ABSENT -> managed='no'
BOOL_YES -> managed='yes'
BOOL_NO -> managed='yes'
Use the virTristateBoolTypeToString() helper to ensure the
setting can survive a roundtrip conversion.
Fixes: 4b4a981d60
Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
parent
77c638c3c7
commit
06f5c092b8
@ -384,8 +384,11 @@ virNetworkPortDefFormatBuf(virBuffer *buf,
|
||||
break;
|
||||
|
||||
case VIR_NETWORK_PORT_PLUG_TYPE_HOSTDEV_PCI:
|
||||
virBufferAsprintf(buf, " managed='%s'>\n",
|
||||
def->plug.hostdevpci.managed ? "yes" : "no");
|
||||
if (def->plug.hostdevpci.managed) {
|
||||
virBufferAsprintf(buf, " managed='%s'",
|
||||
virTristateBoolTypeToString(def->plug.hostdevpci.managed));
|
||||
}
|
||||
virBufferAddLit(buf, ">\n");
|
||||
virBufferAdjustIndent(buf, 2);
|
||||
if (def->plug.hostdevpci.driver)
|
||||
virBufferEscapeString(buf, "<driver name='%s'/>\n",
|
||||
|
@ -0,0 +1,12 @@
|
||||
<networkport>
|
||||
<uuid>5d744f21-ba4a-4d6e-bdb2-30a35ff3207d</uuid>
|
||||
<owner>
|
||||
<name>memtest</name>
|
||||
<uuid>d54df46f-1ab5-4a22-8618-4560ef5fac2c</uuid>
|
||||
</owner>
|
||||
<mac address='52:54:00:7b:35:93'/>
|
||||
<plug type='hostdev-pci' managed='no'>
|
||||
<driver name='vfio'/>
|
||||
<address domain='0x0001' bus='0x02' slot='0x03' function='0x4'/>
|
||||
</plug>
|
||||
</networkport>
|
@ -85,6 +85,7 @@ mymain(void)
|
||||
DO_TEST("plug-bridge-mactbl");
|
||||
DO_TEST("plug-direct");
|
||||
DO_TEST("plug-hostdev-pci");
|
||||
DO_TEST("plug-hostdev-pci-unmanaged");
|
||||
DO_TEST("plug-network");
|
||||
|
||||
return ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE;
|
||||
|
Loading…
Reference in New Issue
Block a user