On Tue, 2010-12-14 at 10:05 -0200, Cleber Rosa wrote: > Python 2.4 'try' blocks come in two different kinds: > > - try/except > - try/finally > > To emulate Python 2.5 (and later) behavior of a try/except/finally block, one > of each Python 2.4 blocks are used (a try/finally with a nested try/except).
Ok Cleber, thank you very much! Applied: http://autotest.kernel.org/changeset/4983 > Signed-off-by: Cleber Rosa <[email protected]> > --- > client/tests/kvm/kvm_test_utils.py | 85 > ++++++++++++++++++------------------ > 1 files changed, 43 insertions(+), 42 deletions(-) > > diff --git a/client/tests/kvm/kvm_test_utils.py > b/client/tests/kvm/kvm_test_utils.py > index ab29df7..d0f2e6c 100644 > --- a/client/tests/kvm/kvm_test_utils.py > +++ b/client/tests/kvm/kvm_test_utils.py > @@ -191,50 +191,51 @@ def migrate(vm, env=None, mig_timeout=3600, > mig_protocol="tcp", > if not dest_vm.create(migration_mode=mig_protocol, mac_source=vm): > raise error.TestError("Could not create dest VM") > try: > - if mig_protocol == "tcp": > - uri = "tcp:localhost:%d" % dest_vm.migration_port > - elif mig_protocol == "unix": > - uri = "unix:%s" % dest_vm.migration_file > - elif mig_protocol == "exec": > - uri = '"exec:nc localhost %s"' % dest_vm.migration_port > - > - if offline: > - vm.monitor.cmd("stop") > - vm.monitor.migrate(uri) > - > - if mig_cancel: > - time.sleep(2) > - vm.monitor.cmd("migrate_cancel") > - if not kvm_utils.wait_for(mig_cancelled, 60, 2, 2, > - "Waiting for migration " > - "cancellation"): > - raise error.TestFail("Failed to cancel migration") > - if offline: > - vm.monitor.cmd("cont") > - dest_vm.destroy(gracefully=False) > - return vm > - else: > - wait_for_migration() > - if stable_check: > - save_path = None or "/tmp" > - save1 = os.path.join(save_path, "src") > - save2 = os.path.join(save_path, "dst") > - > - vm.save_to_file(save1) > - dest_vm.save_to_file(save2) > - > - # Fail if we see deltas > - md5_save1 = utils.hash_file(save1) > - md5_save2 = utils.hash_file(save2) > - if md5_save1 != md5_save2: > - raise error.TestFail("Mismatch of VM state before " > - "and after migration") > + try: > + if mig_protocol == "tcp": > + uri = "tcp:localhost:%d" % dest_vm.migration_port > + elif mig_protocol == "unix": > + uri = "unix:%s" % dest_vm.migration_file > + elif mig_protocol == "exec": > + uri = '"exec:nc localhost %s"' % dest_vm.migration_port > > if offline: > - dest_vm.monitor.cmd("cont") > - except: > - dest_vm.destroy() > - raise > + vm.monitor.cmd("stop") > + vm.monitor.migrate(uri) > + > + if mig_cancel: > + time.sleep(2) > + vm.monitor.cmd("migrate_cancel") > + if not kvm_utils.wait_for(mig_cancelled, 60, 2, 2, > + "Waiting for migration " > + "cancellation"): > + raise error.TestFail("Failed to cancel migration") > + if offline: > + vm.monitor.cmd("cont") > + dest_vm.destroy(gracefully=False) > + return vm > + else: > + wait_for_migration() > + if stable_check: > + save_path = None or "/tmp" > + save1 = os.path.join(save_path, "src") > + save2 = os.path.join(save_path, "dst") > + > + vm.save_to_file(save1) > + dest_vm.save_to_file(save2) > + > + # Fail if we see deltas > + md5_save1 = utils.hash_file(save1) > + md5_save2 = utils.hash_file(save2) > + if md5_save1 != md5_save2: > + raise error.TestFail("Mismatch of VM state before " > + "and after migration") > + > + if offline: > + dest_vm.monitor.cmd("cont") > + except: > + dest_vm.destroy() > + raise > > finally: > if stable_check and clean: _______________________________________________ Autotest mailing list [email protected] http://test.kernel.org/cgi-bin/mailman/listinfo/autotest
