[libvirt] [PATCH v2 10/14] libxl: support domain config modification in virDomainRestoreFlags

Marek Marczykowski-Górecki marmarek at invisiblethingslab.com
Thu Jun 20 21:39:08 UTC 2013


On 20.06.2013 23:25, Jim Fehlig wrote:
> Marek Marczykowski-Górecki wrote:
>> Signed-off-by: Marek Marczykowski-Górecki <marmarek at invisiblethingslab.com>
>> ---
>>  src/libxl/libxl_driver.c | 18 +++++++++++++-----
>>  1 file changed, 13 insertions(+), 5 deletions(-)
>>
>> diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c
>> index 8dec70b..7b50853 100644
>> --- a/src/libxl/libxl_driver.c
>> +++ b/src/libxl/libxl_driver.c
>> @@ -2306,11 +2306,6 @@ libxlDomainRestoreFlags(virConnectPtr conn, const char *from,
>>      int ret = -1;
>>  
>>      virCheckFlags(VIR_DOMAIN_SAVE_PAUSED, -1);
>> -    if (dxml) {
>> -        virReportError(VIR_ERR_ARGUMENT_UNSUPPORTED, "%s",
>> -                       _("xml modification unsupported"));
>> -        return -1;
>> -    }
>>  
>>      libxlDriverLock(driver);
>>  
>> @@ -2318,6 +2313,19 @@ libxlDomainRestoreFlags(virConnectPtr conn, const char *from,
>>      if (fd < 0)
>>          goto cleanup;
>>  
>> +    if (dxml) {
>>   
> 
> What kind of changes are supported in dxml?  I tried passing xml that
> contained another vif, which caused libxl to fail the restore

What I use it for is (and is working):
- change name (use the same savefile to create many VMs)
- change IP
- change backend disk image

> libxl: error: libxl_device.c:878:device_backend_callback: unable to add
> device with path /local/domain/0/backend/vif/25/0
> 
>> +        virDomainDefPtr def2 = NULL;
>> +
>> +        if (!(def2 = virDomainDefParseString(dxml, driver->caps, driver->xmlopt,
>> +                                        1 << VIR_DOMAIN_VIRT_XEN,
>> +                                        VIR_DOMAIN_XML_INACTIVE))) {
>> +            goto cleanup;
>> +        }
>> +        virDomainDefFree(def);
>> +        def = def2;
>>   
> 
> But we've already thrown away the original config and replaced it with
> config that subsequently fails.
> 
> The qemu driver calls virDomainDefCheckABIStability to ensure the new
> config is compatible, and IMO we should do the same here.

I'll take a look at it after my vacation (10.07)...


> 
> Regards,
> Jim
> 
>> +    }
>> +
>> +
>>      if (!(vm = virDomainObjListAdd(driver->domains, def,
>>                                     driver->xmlopt,
>>                                     VIR_DOMAIN_OBJ_LIST_ADD_LIVE |
>>   


-- 
Best Regards,
Marek Marczykowski-Górecki
Invisible Things Lab

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 555 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20130620/5bf40d31/attachment-0001.sig>


More information about the libvir-list mailing list