[libvirt] [PATCH] xenconfig: fix conversion of <driver> to backendtype

Jim Fehlig jfehlig at suse.com
Thu Jun 16 18:35:34 UTC 2016


On 06/16/2016 05:40 AM, Joao Martins wrote:
> On 06/16/2016 06:11 AM, Jim Fehlig wrote:
>> When converting domXML to xen xl.cfg, backendtype should
>> not be emitted if <driver> is not specified. Moreover,
>> <driver name='file'/> should be converted to backendtype
>> qdisk, similar to handling of <driver> in libxlMakeDisk()
>> in libxl_conf.c.
>>
>> Prior to this change, connectDomainXMLToNative would
>> produce incorrect xl.cfg when the input domXML contained
>> <driver name='file'/>
>>
>> domXML:
>>
>>   <disk type="file" device="disk">
>>     <driver name="file"/>
>>     <source file="/image/file/path"/>
>>     <target dev="xvda" bus="xen"/>
>>   </disk>
>>
>> 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'
>>
>> Signed-off-by: Jim Fehlig <jfehlig at suse.com>
> FWIW looks good to me:
>
> Reviewed-by: Joao Martins <joao.m.martins at oracle.com>

Thanks. This fix is quite obvious and trivial, so I've pushed it now.

Regards,
Jim

>
>> ---
>>  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 5879c66..d524a82 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)
>>




More information about the libvir-list mailing list