[Kimchi-devel] [PATCH 2/2] Revert "snapshot: Clone snapshots when cloning a VM"
Crístian Viana
vianac at linux.vnet.ibm.com
Tue Nov 25 19:06:11 UTC 2014
This reverts commit c087f65f12af7394230c300ca63e3fd79fe65498.
Conflicts:
src/kimchi/mockmodel.py
---
src/kimchi/model/vms.py | 29 +----------------------------
tests/test_model.py | 11 -----------
tests/test_rest.py | 19 ++-----------------
3 files changed, 3 insertions(+), 56 deletions(-)
diff --git a/src/kimchi/model/vms.py b/src/kimchi/model/vms.py
index 4b112fe..3aa1145 100644
--- a/src/kimchi/model/vms.py
+++ b/src/kimchi/model/vms.py
@@ -374,15 +374,10 @@ class VMModel(object):
# create new guest
cb('defining new VM')
try:
- vir_new_dom = vir_conn.defineXML(xml)
+ vir_conn.defineXML(xml)
except libvirt.libvirtError, e:
raise OperationFailed('KCHVM0035E', {'name': name,
'err': e.message})
- rollback.prependDefer(vir_new_dom.undefine)
-
- # copy snapshots
- cb('copying VM snapshots')
- self._clone_copy_snapshots(name, new_name)
rollback.commitAll()
@@ -546,28 +541,6 @@ class VMModel(object):
# remove the new object store entry should an error occur later
rollback.prependDefer(_rollback_objstore)
- def _clone_copy_snapshots(self, vm_name, new_vm_name):
- dom = self.get_vm(new_vm_name, self.conn)
- flags = libvirt.VIR_DOMAIN_XML_SECURE
-
- # libvirt's Test driver does not support the function
- # "virDomainListAllSnapshots", so "VMSnapshots.get_list" will raise
- # "OperationFailed" in that case.
- try:
- snapshot_names = self.vmsnapshots.get_list(vm_name)
- except OperationFailed, e:
- kimchi_log.error('cannot list snapshots: %s; '
- 'skipping snapshot cloning...' % e.message)
- else:
- for s in snapshot_names:
- vir_snap = self.vmsnapshot.get_vmsnapshot(vm_name, s)
- try:
- snap_xml = vir_snap.getXMLDesc(flags).decode('utf-8')
- dom.snapshotCreateXML(snap_xml)
- except libvirt.libvirtError, e:
- raise OperationFailed('KCHVM0035E', {'name': vm_name,
- 'err': e.message})
-
def _build_access_elem(self, users, groups):
auth = config.get("authentication", "method")
auth_elem = E.auth(type=auth)
diff --git a/tests/test_model.py b/tests/test_model.py
index 1355295..319408b 100644
--- a/tests/test_model.py
+++ b/tests/test_model.py
@@ -161,17 +161,6 @@ class ModelTests(unittest.TestCase):
self.assertEquals(sorted([params['name'], snap_name],
key=unicode.lower), snaps)
- # Clone the VM and check whether the snapshots have been cloned
- # as well
- task = inst.vm_clone(u'kimchi-vm')
- clone_name = task['target_uri'].split('/')[-1]
- rollback.prependDefer(inst.vm_delete, clone_name)
- inst.task_wait(task['id'])
- task = inst.task_lookup(task['id'])
- self.assertEquals('finished', task['status'])
- clone_snaps = inst.vmsnapshots_get_list(clone_name)
- self.assertEquals(snaps, clone_snaps)
-
snap = inst.vmsnapshot_lookup(u'kimchi-vm', snap_name)
current_snap = inst.currentvmsnapshot_lookup(u'kimchi-vm')
self.assertEquals(snap, current_snap)
diff --git a/tests/test_rest.py b/tests/test_rest.py
index 2e5cff1..fa15ef6 100644
--- a/tests/test_rest.py
+++ b/tests/test_rest.py
@@ -428,8 +428,8 @@ class RestTests(unittest.TestCase):
resp = self.request('/vms/test-vm/snapshots', '{}', 'GET')
self.assertEquals(200, resp.status)
- orig_snaps = json.loads(resp.read())
- self.assertEquals(2, len(orig_snaps))
+ snaps = json.loads(resp.read())
+ self.assertEquals(2, len(snaps))
# Look up current snapshot (the one created above)
resp = self.request('/vms/test-vm/snapshots/current', '{}', 'GET')
@@ -451,21 +451,6 @@ class RestTests(unittest.TestCase):
current_snap = json.loads(resp.read())
self.assertEquals(snap, current_snap)
- # Clone a VM with snapshot
- resp = self.request('/vms/test-vm/clone', '{}', 'POST')
- self.assertEquals(202, resp.status)
- task = json.loads(resp.read())
- wait_task(self._task_lookup, task['id'])
- resp = self.request('/tasks/%s' % task['id'], '{}', 'GET')
- self.assertEquals(200, resp.status)
- task = json.loads(resp.read())
- self.assertEquals('finished', task['status'])
- vm_name = task['target_uri'].split('/')[-1]
- resp = self.request('/vms/%s/snapshots' % vm_name, '{}', 'GET')
- self.assertEquals(200, resp.status)
- clone_snaps = json.loads(resp.read())
- self.assertEquals(orig_snaps, clone_snaps)
-
# Delete a snapshot
resp = self.request('/vms/test-vm/snapshots/%s' % params['name'],
'{}', 'DELETE')
--
1.9.3
More information about the Kimchi-devel
mailing list