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(a)redhat.com>
---
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