The <inbound/> element to <bandwidth/> has several attributes from which two are mandatory. Well, from two at least one has to be present: @average or @floor or both. Instead of inventing crazy RNG schema, let's make all the attributes optional there and rely on our parsing code to correctly handle the situation. Signed-off-by: Michal Privoznik <mprivozn@xxxxxxxxxx> --- docs/schemas/networkcommon.rng | 8 ++- .../qemuxml2argv-net-bandwidth2.xml | 65 ++++++++++++++++++++++ tests/qemuxml2xmltest.c | 1 + 3 files changed, 71 insertions(+), 3 deletions(-) create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-net-bandwidth2.xml diff --git a/docs/schemas/networkcommon.rng b/docs/schemas/networkcommon.rng index cc8b1dc..09691dc 100644 --- a/docs/schemas/networkcommon.rng +++ b/docs/schemas/networkcommon.rng @@ -152,9 +152,11 @@ </define> <define name="bandwidth-attributes"> - <attribute name="average"> - <ref name="speed"/> - </attribute> + <optional> + <attribute name="average"> + <ref name="speed"/> + </attribute> + </optional> <optional> <attribute name="peak"> <ref name="speed"/> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-net-bandwidth2.xml b/tests/qemuxml2argvdata/qemuxml2argv-net-bandwidth2.xml new file mode 100644 index 0000000..10e15ee --- /dev/null +++ b/tests/qemuxml2argvdata/qemuxml2argv-net-bandwidth2.xml @@ -0,0 +1,65 @@ +<domain type='kvm'> + <name>f14-60</name> + <uuid>38644c45-5227-a936-3b38-bc4f72c355bb</uuid> + <memory unit='KiB'>1048576</memory> + <currentMemory unit='KiB'>1048576</currentMemory> + <vcpu placement='static'>2</vcpu> + <os> + <type arch='x86_64' machine='pc-0.13'>hvm</type> + <boot dev='cdrom'/> + <boot dev='hd'/> + <bootmenu enable='yes'/> + </os> + <features> + <acpi/> + <apic/> + <pae/> + </features> + <clock offset='utc'/> + <on_poweroff>destroy</on_poweroff> + <on_reboot>restart</on_reboot> + <on_crash>restart</on_crash> + <devices> + <emulator>/usr/bin/qemu-kvm</emulator> + <disk type='file' device='disk'> + <driver name='qemu' type='qcow2'/> + <source file='/var/lib/libvirt/images/f14-6.img'/> + <target dev='vda' bus='virtio'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/> + </disk> + <controller type='usb' index='0'/> + <controller type='virtio-serial' index='0'> + <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/> + </controller> + <controller type='pci' index='0' model='pci-root'/> + <interface type='network'> + <mac address='52:54:00:24:a5:9f'/> + <source network='default'/> + <bandwidth> + <inbound floor='200'/> + </bandwidth> + <model type='rtl8139'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/> + </interface> + <serial type='pty'> + <target port='0'/> + </serial> + <console type='pty'> + <target type='serial' port='0'/> + </console> + <input type='tablet' bus='usb'/> + <input type='mouse' bus='ps2'/> + <input type='keyboard' bus='ps2'/> + <graphics type='vnc' port='-1' autoport='yes'/> + <sound model='ac97'> + <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> + </sound> + <video> + <model type='vga' vram='16384' heads='1'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> + </video> + <memballoon model='virtio'> + <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/> + </memballoon> + </devices> +</domain> diff --git a/tests/qemuxml2xmltest.c b/tests/qemuxml2xmltest.c index 5a5812f..c615d8e 100644 --- a/tests/qemuxml2xmltest.c +++ b/tests/qemuxml2xmltest.c @@ -456,6 +456,7 @@ mymain(void) DO_TEST("sound"); DO_TEST("sound-device"); DO_TEST("net-bandwidth"); + DO_TEST("net-bandwidth2"); DO_TEST("serial-vc"); DO_TEST("serial-pty"); -- 2.0.5 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list