Change in vdsm[master]: recovery: reimplement clean_vm_files

fromani at redhat.com fromani at redhat.com
Thu Feb 11 12:24:22 UTC 2016


Francesco Romani has uploaded a new change for review.

Change subject: recovery: reimplement clean_vm_files
......................................................................

recovery: reimplement clean_vm_files

clean_vm_files() could be reimplemented leveraging recovery.File()
utilities, and avoiding code duplications.

There are no intended changes in externally observed behaviour.

Change-Id: Id3969637dce99889815fb2827ea1737d74807245
Signed-off-by: Francesco Romani <fromani at redhat.com>
---
M tests/vmRecoveryTests.py
M vdsm/virt/recovery.py
2 files changed, 17 insertions(+), 9 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/05/53405/1

diff --git a/tests/vmRecoveryTests.py b/tests/vmRecoveryTests.py
index 4c011e5..4b7571c 100644
--- a/tests/vmRecoveryTests.py
+++ b/tests/vmRecoveryTests.py
@@ -84,6 +84,12 @@
                 self.assertIn(testvm.id, state.name)
                 self.assertTrue(state.name.endswith(recovery.File.EXTENSION))
 
+    def test_vmid(self):
+        with fake.VM() as testvm, namedTemporaryDir() as tmpDir:
+            with MonkeyPatchScope([(constants, 'P_VDSM_RUN', tmpDir + '/')]):
+                state = recovery.File(testvm.id)
+                self.assertEqual(testvm.id, state.vmid)
+
 
 @expandPermutations
 class RecoveryFunctionsTests(TestCaseBase):
diff --git a/vdsm/virt/recovery.py b/vdsm/virt/recovery.py
index a0d3f77..e1da1d2 100644
--- a/vdsm/virt/recovery.py
+++ b/vdsm/virt/recovery.py
@@ -78,6 +78,10 @@
         self._lock = threading.Lock()
 
     @property
+    def vmid(self):
+        return self._vmid
+
+    @property
     def name(self):
         return self._name
 
@@ -193,16 +197,15 @@
             ' reported by libvirt. This should not happen!'
             ' Will try to recover them.', num_rec_vms)
 
-    for idx, vm_id in enumerate(rec_vms):
-        vm_state = File(vm_id)
+    for idx, vm_state in enumerate(rec_vms):
         if vm_state.load(cif):
             cif.log.info(
                 'recovery [2:%d/%d]: recovered domain %s'
-                ' from data file', idx+1, num_rec_vms, vm_id)
+                ' from data file', idx+1, num_rec_vms, vm_state.vmid)
         else:
             cif.log.warning(
                 'recovery [2:%d/%d]: VM %s failed to recover from data'
-                ' file, reported as Down', idx+1, num_rec_vms, vm_id)
+                ' file, reported as Down', idx+1, num_rec_vms, vm_state.vmid)
 
 
 def _find_vdsm_vms_from_files(cif):
@@ -211,12 +214,11 @@
         vm_id, fileType = os.path.splitext(f)
         if fileType == File.EXTENSION:
             if vm_id not in cif.vmContainer:
-                vms.append(vm_id)
+                vms.append(File(vm_id))
     return vms
 
 
 def clean_vm_files(cif):
-    for vm_id in _find_vdsm_vms_from_files(cif):
-        cif.log.debug("cleaning old file for vm %s", vm_id)
-        utils.rmFile(os.path.join(constants.P_VDSM_RUN,
-                                  "%s%s", vm_id, File.EXTENSION))
+    for vm in _find_vdsm_vms_from_files(cif):
+        cif.log.debug("cleaning old file for vm: %s", vm.vmid)
+        vm.cleanup()


-- 
To view, visit https://gerrit.ovirt.org/53405
To unsubscribe, visit https://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Id3969637dce99889815fb2827ea1737d74807245
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Francesco Romani <fromani at redhat.com>


More information about the vdsm-patches mailing list