[Kimchi-devel] [PATCH] [Kimchi 5/5] fix 2 test_vm_lifecycle testcase

Aline Manera alinefm at linux.vnet.ibm.com
Mon Dec 7 14:02:19 UTC 2015



On 07/12/2015 11:55, Aline Manera wrote:
>
>
> On 05/12/2015 17:22, pvital at linux.vnet.ibm.com wrote:
>> From: Paulo Vital <pvital at linux.vnet.ibm.com>
>>
>> The vmsnapshot_revert() updates the name in the VM XML to the 
>> previous VM name
>> (kimchi-vm), but the domain name used by libvirt to lookup this 
>> VM/domain, is
>> the updated name (kimchi-vm-new) as proved here:
>> https://paste.fedoraproject.org/296617/49064913/. In addition, if 
>> libvirtd is
>> restarted, the name displayed in the  'virsh list --all' command is 
>> the updated
>> name.
>
> What is the impact for the Kimchi user while doing the snapshot revert 
> via UI?
> After reverting a snapshot which changes the VM name, will the user 
> continue to be able to manage the VM after that?

The revert() action should return the right VM resource and the test 
could be able to get the new resource name to work with.
The same flow while doing it using the UI

>
>> This patch changed the name of the VM used to test the lifecycle.
>>
>> Signed-off-by: Paulo Vital <pvital at linux.vnet.ibm.com>
>> ---
>>   tests/test_model.py | 42 +++++++++++++++++++++++++-----------------
>>   1 file changed, 25 insertions(+), 17 deletions(-)
>>
>> diff --git a/tests/test_model.py b/tests/test_model.py
>> index 338f04d..d6d5530 100644
>> --- a/tests/test_model.py
>> +++ b/tests/test_model.py
>> @@ -157,7 +157,7 @@ class ModelTests(unittest.TestCase):
>>               params = {'name': 'kimchi-vm',
>>                         'template': '/plugins/kimchi/templates/test'}
>>               task = inst.vms_create(params)
>> -            rollback.prependDefer(inst.vm_delete, 'kimchi-vm')
>> +            rollback.prependDefer(inst.vm_delete, 'kimchi-vm-new')
>>               inst.task_wait(task['id'], 10)
>>               task = inst.task_lookup(task['id'])
>>               self.assertEquals('finished', task['status'])
>> @@ -204,7 +204,7 @@ class ModelTests(unittest.TestCase):
>>               task = inst.vmsnapshots_create(u'kimchi-vm')
>>               snap_name = task['target_uri'].split('/')[-1]
>>               rollback.prependDefer(inst.vmsnapshot_delete,
>> -                                  u'kimchi-vm', snap_name)
>> +                                  u'kimchi-vm-new', snap_name)
>>               inst.task_wait(task['id'])
>>               task = inst.task_lookup(task['id'])
>>               self.assertEquals('finished', task['status'])
>> @@ -227,34 +227,42 @@ class ModelTests(unittest.TestCase):
>>               result = inst.vmsnapshot_revert(u'kimchi-vm-new', 
>> params['name'])
>>               self.assertEquals(result, [u'kimchi-vm', snap['name']])
>>
>> -            vm = inst.vm_lookup(u'kimchi-vm')
>> +            # The vmsnapshot_revert() updates the name in the VM XML 
>> to the
>> +            # previous VM name (kimchi-vm), but the domain name used 
>> by libvirt
>> +            # to lookup this VM/domain, is the updated name 
>> (kimchi-vm-new) as
>> +            # proved here: 
>> https://paste.fedoraproject.org/296617/49064913/.
>> +            # In addition, if libvirtd is restarted, the name 
>> displayed in the
>> +            # 'virsh list --all' cmd is the updated name.
>> +            vm = inst.vm_lookup(u'kimchi-vm-new')
>>               self.assertEquals(vm['state'], snap['state'])
>>
>> -            current_snap = inst.currentvmsnapshot_lookup(u'kimchi-vm')
>> +            current_snap = 
>> inst.currentvmsnapshot_lookup(u'kimchi-vm-new')
>>               self.assertEquals(params['name'], current_snap['name'])
>>
>>               self.assertRaises(NotFoundError, inst.vmsnapshot_delete,
>> -                              u'kimchi-vm', u'foobar')
>> +                              u'kimchi-vm-new', u'foobar')
>>
>>               # suspend and resume the VM
>> -            info = inst.vm_lookup(u'kimchi-vm')
>> +            info = inst.vm_lookup(u'kimchi-vm-new')
>>               self.assertEquals(info['state'], 'shutoff')
>> -            self.assertRaises(InvalidOperation, inst.vm_suspend, 
>> u'kimchi-vm')
>> -            inst.vm_start(u'kimchi-vm')
>> -            info = inst.vm_lookup(u'kimchi-vm')
>> +            self.assertRaises(InvalidOperation, inst.vm_suspend,
>> +                              u'kimchi-vm-new')
>> +            inst.vm_start(u'kimchi-vm-new')
>> +            info = inst.vm_lookup(u'kimchi-vm-new')
>>               self.assertEquals(info['state'], 'running')
>> -            inst.vm_suspend(u'kimchi-vm')
>> -            info = inst.vm_lookup(u'kimchi-vm')
>> +            inst.vm_suspend(u'kimchi-vm-new')
>> +            info = inst.vm_lookup(u'kimchi-vm-new')
>>               self.assertEquals(info['state'], 'paused')
>> -            self.assertRaises(InvalidParameter, inst.vm_update, 
>> u'kimchi-vm',
>> -                              {'name': 'foo'})
>> -            inst.vm_resume(u'kimchi-vm')
>> -            info = inst.vm_lookup(u'kimchi-vm')
>> +            self.assertRaises(InvalidParameter, inst.vm_update,
>> +                              u'kimchi-vm-new', {'name': 'foo'})
>> +            inst.vm_resume(u'kimchi-vm-new')
>> +            info = inst.vm_lookup(u'kimchi-vm-new')
>>               self.assertEquals(info['state'], 'running')
>> -            self.assertRaises(InvalidOperation, inst.vm_resume, 
>> u'kimchi-vm')
>> +            self.assertRaises(InvalidOperation, inst.vm_resume,
>> +                              u'kimchi-vm-new')
>>               # leave the VM suspended to make sure a paused VM can be
>>               # deleted correctly
>> -            inst.vm_suspend(u'kimchi-vm')
>> +            inst.vm_suspend(u'kimchi-vm-new')
>>
>>           vms = inst.vms_get_list()
>>           self.assertFalse('kimchi-vm' in vms)
>
> _______________________________________________
> Kimchi-devel mailing list
> Kimchi-devel at ovirt.org
> http://lists.ovirt.org/mailman/listinfo/kimchi-devel
>




More information about the Kimchi-devel mailing list