[Kimchi-devel] [PATCH] [Kimchi 5/5] fix 2 test_vm_lifecycle testcase
Aline Manera
alinefm at linux.vnet.ibm.com
Mon Dec 7 13:55:31 UTC 2015
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?
> 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)
More information about the Kimchi-devel
mailing list