summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatt Dietz <matt.dietz@rackspace.com>2011-08-04 22:18:52 +0000
committerMatt Dietz <matt.dietz@rackspace.com>2011-08-04 22:18:52 +0000
commit5fe92058d0ee11a7e9ea1c8f56b7e9350cf703e4 (patch)
tree8afed3c561a8a8623c4c5fbb86ac4c4af591b065
parent77a1a63c30a9797f2f729c7b815d6660bed880d5 (diff)
downloadnova-5fe92058d0ee11a7e9ea1c8f56b7e9350cf703e4.tar.gz
nova-5fe92058d0ee11a7e9ea1c8f56b7e9350cf703e4.tar.xz
nova-5fe92058d0ee11a7e9ea1c8f56b7e9350cf703e4.zip
Revert migration now finishes
-rw-r--r--nova/compute/manager.py4
-rw-r--r--nova/tests/test_xenapi.py47
2 files changed, 49 insertions, 2 deletions
diff --git a/nova/compute/manager.py b/nova/compute/manager.py
index a062cbe91..0fd9c3c13 100644
--- a/nova/compute/manager.py
+++ b/nova/compute/manager.py
@@ -746,8 +746,8 @@ class ComputeManager(manager.SchedulerDependentManager):
instance_ref['host'])
rpc.cast(context, topic,
{'method': 'finish_revert_resize',
- 'args': { 'instance_id': instance_ref['uuid'],
- 'migration_id': migration_ref['id']},
+ 'args': {'instance_id': instance_ref['uuid'],
+ 'migration_id': migration_ref['id']},
})
@exception.wrap_exception(notifier=notifier, publisher_id=publisher_id())
diff --git a/nova/tests/test_xenapi.py b/nova/tests/test_xenapi.py
index 5b29cf537..d269408b9 100644
--- a/nova/tests/test_xenapi.py
+++ b/nova/tests/test_xenapi.py
@@ -767,6 +767,53 @@ class XenAPIMigrateInstance(test.TestCase):
conn = xenapi_conn.get_connection(False)
conn.migrate_disk_and_power_off(instance, '127.0.0.1')
+
+ def test_revert_migrate(self):
+ instance = db.instance_create(self.context, self.values)
+ self.called = False
+ self.fake_vm_start_called = False
+ self.fake_revert_migration_called = False
+
+ def fake_vm_start(*args, **kwargs):
+ self.fake_vm_start_called = True
+
+ def fake_vdi_resize(*args, **kwargs):
+ self.called = True
+
+ def fake_revert_migration(*args, **kwargs):
+ self.fake_revert_migration_called = True
+
+ self.stubs.Set(stubs.FakeSessionForMigrationTests,
+ "VDI_resize_online", fake_vdi_resize)
+ self.stubs.Set(vmops.VMOps, '_start', fake_vm_start)
+ self.stubs.Set(vmops.VMOps, 'revert_migration', fake_revert_migration)
+
+ stubs.stubout_session(self.stubs, stubs.FakeSessionForMigrationTests)
+ stubs.stubout_loopingcall_start(self.stubs)
+ conn = xenapi_conn.get_connection(False)
+ network_info = [({'bridge': 'fa0', 'id': 0, 'injected': False},
+ {'broadcast': '192.168.0.255',
+ 'dns': ['192.168.0.1'],
+ 'gateway': '192.168.0.1',
+ 'gateway6': 'dead:beef::1',
+ 'ip6s': [{'enabled': '1',
+ 'ip': 'dead:beef::dcad:beff:feef:0',
+ 'netmask': '64'}],
+ 'ips': [{'enabled': '1',
+ 'ip': '192.168.0.100',
+ 'netmask': '255.255.255.0'}],
+ 'label': 'fake',
+ 'mac': 'DE:AD:BE:EF:00:00',
+ 'rxtx_cap': 3})]
+ conn.finish_migration(self.context, instance,
+ dict(base_copy='hurr', cow='durr'),
+ network_info, resize_instance=True)
+ self.assertEqual(self.called, True)
+ self.assertEqual(self.fake_vm_start_called, True)
+
+ conn.revert_migration(instance)
+ self.assertEqual(self.fake_revert_migration_called, True)
+
def test_finish_migrate(self):
instance = db.instance_create(self.context, self.values)
self.called = False