Francesco Romani has uploaded a new change for review.
Change subject: virt: migration: use contextmanager for monitor ......................................................................
virt: migration: use contextmanager for monitor
This patch factors the MigrationMonitorThread control in a context manager to make code clearer and less cluttered.
Change-Id: Ie7fcd0bedf4f30cc0bcab03339322df1fc5434e8 Signed-off-by: Francesco Romani fromani@redhat.com --- M vdsm/migration.py 1 file changed, 13 insertions(+), 9 deletions(-)
git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/78/25978/1
diff --git a/vdsm/migration.py b/vdsm/migration.py index 8c33f1e..73d29e8 100644 --- a/vdsm/migration.py +++ b/vdsm/migration.py @@ -18,6 +18,7 @@ # Refer to the README and COPYING files for full details of the license #
+from contextlib import contextmanager import pickle import threading import time @@ -255,6 +256,17 @@ self._recover(str(e)) self.log.error("Failed to migrate", exc_info=True)
+ @contextmanager + def migrationMonitor(self, startTime): + self._monitorThread = MigrationMonitorThread(self._vm, + startTime, + int(self._downtime)) + self._monitorThread.start() + try: + yield + finally: + self._monitorThread.stop() + def _startUnderlyingMigration(self, startTime): if self._mode == 'file': hooks.before_vm_hibernate(self._vm._dom.XMLDesc(0), self._vm.conf) @@ -293,12 +305,7 @@ self._vm.log.debug('starting migration to %s ' 'with miguri %s', duri, muri)
- self._monitorThread = MigrationMonitorThread(self._vm, - startTime, - int(self._downtime)) - self._monitorThread.start() - - try: + with self.migrationMonitor(startTime): if ('qxl' in self._vm.conf['display'] and self._vm.conf.get('clientIp')): SPICE_MIGRATION_HANDOVER_TIME = 120 @@ -322,9 +329,6 @@ None, maxBandwidth) else: self._raiseAbortError() - - finally: - self._monitorThread.stop()
def stop(self): # if its locks we are before the migrateToURI2()