From dfc708750bb62cabd4617f3c0cf29beb27f28c28 Mon Sep 17 00:00:00 2001 From: Eric Blake Date: Thu, 26 Mar 2015 16:48:07 -0600 Subject: [PATCH] relaxng: allow : in /dev/disk/by-path names On IRC, Hydrar pointed a problem where 'virsh edit' failed on his domain created through an ISCSI pool managed by virt-manager, all because the XML included a block device with colons in the name. * docs/schemas/basictypes.rng (absFilePath): Add colon as safe. * tests/qemuxml2argvdata/qemuxml2argv-disk-iscsi.xml: New file. * tests/qemuxml2argvdata/qemuxml2argv-disk-iscsi.args: Likewise. * tests/qemuxml2argvtest.c (mymain): Test it. Signed-off-by: Eric Blake --- docs/schemas/basictypes.rng | 2 +- .../qemuxml2argv-disk-iscsi.args | 7 +++++ .../qemuxml2argv-disk-iscsi.xml | 28 +++++++++++++++++++ tests/qemuxml2argvtest.c | 1 + 4 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-iscsi.args create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-iscsi.xml diff --git a/docs/schemas/basictypes.rng b/docs/schemas/basictypes.rng index 0cd1c4e00f..f086ad2f3e 100644 --- a/docs/schemas/basictypes.rng +++ b/docs/schemas/basictypes.rng @@ -242,7 +242,7 @@ - /[a-zA-Z0-9_\.\+\-\\&"'<>/%,]+ + /[a-zA-Z0-9_\.\+\-\\&"'<>/%,:]+ diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-iscsi.args b/tests/qemuxml2argvdata/qemuxml2argv-disk-iscsi.args new file mode 100644 index 0000000000..b987a3878f --- /dev/null +++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-iscsi.args @@ -0,0 +1,7 @@ +LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test QEMU_AUDIO_DRV=none \ +/usr/bin/qemu -S -M \ +pc -m 214 -smp 1 -nographic -monitor unix:/tmp/test-monitor,server,nowait \ +-no-acpi -boot c -usb \ +-hda /dev/disk/by-path/ip-192.168.44.1:3260-iscsi-iqn.2011-02.lan.hdserver\ +:hydrar-desktop.win7vm-lun-0 -net none \ +-serial none -parallel none diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-iscsi.xml b/tests/qemuxml2argvdata/qemuxml2argv-disk-iscsi.xml new file mode 100644 index 0000000000..e4d9c97541 --- /dev/null +++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-iscsi.xml @@ -0,0 +1,28 @@ + + QEMUGuest1 + c7a5fdbd-edaf-9455-926a-d65c16db1809 + 219100 + 219100 + 1 + + hvm + + + + destroy + restart + destroy + + /usr/bin/qemu + + + + +
+ + + + + + + diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c index 3c2fbf1674..57ef053a9d 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c @@ -708,6 +708,7 @@ mymain(void) DO_TEST("hugepages-pages6", NONE); DO_TEST("nosharepages", QEMU_CAPS_MACHINE_OPT, QEMU_CAPS_MEM_MERGE); DO_TEST("disk-cdrom", NONE); + DO_TEST("disk-iscsi", NONE); DO_TEST("disk-cdrom-network-http", QEMU_CAPS_KVM, QEMU_CAPS_DEVICE, QEMU_CAPS_DRIVE); DO_TEST("disk-cdrom-network-https", QEMU_CAPS_KVM, QEMU_CAPS_DEVICE,