summaryrefslogtreecommitdiffstats
path: root/nova/tests
diff options
context:
space:
mode:
Diffstat (limited to 'nova/tests')
-rw-r--r--nova/tests/network/test_manager.py73
-rw-r--r--nova/tests/policy.json2
2 files changed, 75 insertions, 0 deletions
diff --git a/nova/tests/network/test_manager.py b/nova/tests/network/test_manager.py
index 1ade8bacc..f800581d5 100644
--- a/nova/tests/network/test_manager.py
+++ b/nova/tests/network/test_manager.py
@@ -1627,6 +1627,79 @@ class FloatingIPTestCase(test.TestCase):
self.network.deallocate_for_instance(self.context,
instance_id=instance['id'])
+ def test_migrate_instance_start(self):
+ called = {'count': 0}
+
+ def fake_floating_ip_get_by_address(context, address):
+ return {'address': address,
+ 'fixed_ip_id': 0}
+
+ def fake_is_stale_floating_ip_address(context, floating_ip):
+ return floating_ip['address'] == '172.24.4.23'
+
+ def fake_fixed_ip_get(context, fixed_ip_id):
+ return {'instance_uuid': 'fake_uuid',
+ 'address': '10.0.0.2'}
+
+ def fake_remove_floating_ip(floating_addr, fixed_addr, interface):
+ called['count'] += 1
+
+ def fake_floating_ip_update(context, address, args):
+ pass
+
+ self.stubs.Set(self.network.db, 'floating_ip_get_by_address',
+ fake_floating_ip_get_by_address)
+ self.stubs.Set(self.network, '_is_stale_floating_ip_address',
+ fake_is_stale_floating_ip_address)
+ self.stubs.Set(self.network.db, 'fixed_ip_get', fake_fixed_ip_get)
+ self.stubs.Set(self.network.db, 'floating_ip_update',
+ fake_floating_ip_update)
+ self.stubs.Set(self.network.l3driver, 'remove_floating_ip',
+ fake_remove_floating_ip)
+ self.mox.ReplayAll()
+ floating_ip_addresses = ['172.24.4.23', '172.24.4.24', '172.24.4.25']
+ self.network.migrate_instance_start(self.context, FAKEUUID,
+ floating_ip_addresses)
+
+ self.assertEqual(called['count'], 2)
+
+ def test_migrate_instance_finish(self):
+ called = {'count': 0}
+
+ def fake_floating_ip_get_by_address(context, address):
+ return {'address': address,
+ 'fixed_ip_id': 0}
+
+ def fake_is_stale_floating_ip_address(context, floating_ip):
+ return floating_ip['address'] == '172.24.4.23'
+
+ def fake_fixed_ip_get(context, fixed_ip_id):
+ return {'instance_uuid': 'fake_uuid',
+ 'address': '10.0.0.2'}
+
+ def fake_add_floating_ip(floating_addr, fixed_addr, interface):
+ called['count'] += 1
+
+ def fake_floating_ip_update(context, address, args):
+ pass
+
+ self.stubs.Set(self.network.db, 'floating_ip_get_by_address',
+ fake_floating_ip_get_by_address)
+ self.stubs.Set(self.network, '_is_stale_floating_ip_address',
+ fake_is_stale_floating_ip_address)
+ self.stubs.Set(self.network.db, 'fixed_ip_get', fake_fixed_ip_get)
+ self.stubs.Set(self.network.db, 'floating_ip_update',
+ fake_floating_ip_update)
+ self.stubs.Set(self.network.l3driver, 'add_floating_ip',
+ fake_add_floating_ip)
+ self.mox.ReplayAll()
+ floating_ip_addresses = ['172.24.4.23', '172.24.4.24', '172.24.4.25']
+ self.network.migrate_instance_finish(self.context, FAKEUUID,
+ floating_ip_addresses,
+ 'fake_dest')
+
+ self.assertEqual(called['count'], 2)
+
def test_floating_dns_create_conflict(self):
zone = "example.org"
address1 = "10.10.10.11"
diff --git a/nova/tests/policy.json b/nova/tests/policy.json
index 31b9cefd1..efe2724ad 100644
--- a/nova/tests/policy.json
+++ b/nova/tests/policy.json
@@ -178,6 +178,8 @@
"network:deallocate_floating_ip": "",
"network:associate_floating_ip": "",
"network:disassociate_floating_ip": "",
+ "network:migrate_instance_start": "",
+ "network:migrate_instance_finish": "",
"network:get_fixed_ip": "",
"network:get_fixed_ip_by_address": "",