From e33cd67a9b51e8fcb4e084f40f500057b30b2786 Mon Sep 17 00:00:00 2001 From: Jim Fehlig Date: Wed, 15 Jun 2016 23:09:36 -0600 Subject: [PATCH] xenconfig: fix conversion of to backendtype When converting domXML to xen xl.cfg, backendtype should not be emitted if is not specified. Moreover, should be converted to backendtype qdisk, similar to handling of in libxlMakeDisk() in libxl_conf.c. Prior to this change, connectDomainXMLToNative would produce incorrect xl.cfg when the input domXML contained domXML: virsh domxml-to-native xen-xl domXML disk = [ "format=raw,vdev=xvda,access=rw,backendtype=target=/image/file/path" ] xl create xl.cfg config parsing error in disk specification: unknown value for backendtype: near `target=/image/file/path' in `format=raw,vdev=xvda,access=rw,backendtype=target=/image/file/path' --- src/xenconfig/xen_xl.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/xenconfig/xen_xl.c b/src/xenconfig/xen_xl.c index 5879c66e8c..d524a8241b 100644 --- a/src/xenconfig/xen_xl.c +++ b/src/xenconfig/xen_xl.c @@ -857,13 +857,15 @@ xenFormatXLDisk(virConfValuePtr list, virDomainDiskDefPtr disk) } /* backendtype */ - virBufferAddLit(&buf, "backendtype="); - if (STREQ_NULLABLE(driver, "qemu")) - virBufferAddLit(&buf, "qdisk,"); - else if (STREQ_NULLABLE(driver, "tap")) - virBufferAddLit(&buf, "tap,"); - else if (STREQ_NULLABLE(driver, "phy")) - virBufferAddLit(&buf, "phy,"); + if (driver) { + virBufferAddLit(&buf, "backendtype="); + if (STREQ(driver, "qemu") || STREQ(driver, "file")) + virBufferAddLit(&buf, "qdisk,"); + else if (STREQ(driver, "tap")) + virBufferAddLit(&buf, "tap,"); + else if (STREQ(driver, "phy")) + virBufferAddLit(&buf, "phy,"); + } /* devtype */ if (disk->device == VIR_DOMAIN_DISK_DEVICE_CDROM) -- 2.39.5