From: Paulo Vital <pvital(a)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(a)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)