mirror of
https://github.com/libvirt/libvirt.git
synced 2025-02-25 18:55:26 -06: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;
|
break;
|
||||||
|
|
||||||
case VIR_NETWORK_PORT_PLUG_TYPE_HOSTDEV_PCI:
|
case VIR_NETWORK_PORT_PLUG_TYPE_HOSTDEV_PCI:
|
||||||
virBufferAsprintf(buf, " managed='%s'>\n",
|
if (def->plug.hostdevpci.managed) {
|
||||||
def->plug.hostdevpci.managed ? "yes" : "no");
|
virBufferAsprintf(buf, " managed='%s'",
|
||||||
|
virTristateBoolTypeToString(def->plug.hostdevpci.managed));
|
||||||
|
}
|
||||||
|
virBufferAddLit(buf, ">\n");
|
||||||
virBufferAdjustIndent(buf, 2);
|
virBufferAdjustIndent(buf, 2);
|
||||||
if (def->plug.hostdevpci.driver)
|
if (def->plug.hostdevpci.driver)
|
||||||
virBufferEscapeString(buf, "<driver name='%s'/>\n",
|
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-bridge-mactbl");
|
||||||
DO_TEST("plug-direct");
|
DO_TEST("plug-direct");
|
||||||
DO_TEST("plug-hostdev-pci");
|
DO_TEST("plug-hostdev-pci");
|
||||||
|
DO_TEST("plug-hostdev-pci-unmanaged");
|
||||||
DO_TEST("plug-network");
|
DO_TEST("plug-network");
|
||||||
|
|
||||||
return ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE;
|
return ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE;
|
||||||
|
Loading…
Reference in New Issue
Block a user