summaryrefslogtreecommitdiffstats
path: root/nova/tests
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2012-07-27 15:16:43 +0000
committerGerrit Code Review <review@openstack.org>2012-07-27 15:16:43 +0000
commitcba664069bd98930a482e6fdfe72cd1d21d2f198 (patch)
tree53842644fcf76a3e065753e7b848357da4f5bd73 /nova/tests
parent218ecc090940c599dd5246eb078cbcf1868194fb (diff)
parent44132acbe91092de1188a3015a2c7155b5ec774c (diff)
Merge "Moving where the fixed ip deallocation happens."
Diffstat (limited to 'nova/tests')
-rw-r--r--nova/tests/network/test_manager.py29
1 files changed, 29 insertions, 0 deletions
diff --git a/nova/tests/network/test_manager.py b/nova/tests/network/test_manager.py
index a183094af..d04df5f13 100644
--- a/nova/tests/network/test_manager.py
+++ b/nova/tests/network/test_manager.py
@@ -1013,6 +1013,35 @@ class VlanNetworkTestCase(test.TestCase):
self.flags(force_dhcp_release=True)
self.network.deallocate_fixed_ip(context1, fix_addr, 'fake')
+ def test_fixed_ip_cleanup_fail(self):
+ """Verify IP is not deallocated if the security group refresh fails."""
+ def network_get(_context, network_id):
+ return networks[network_id]
+
+ self.stubs.Set(db, 'network_get', network_get)
+
+ context1 = context.RequestContext('user', 'project1')
+
+ instance = db.instance_create(context1,
+ {'project_id': 'project1'})
+
+ elevated = context1.elevated()
+ fix_addr = db.fixed_ip_associate_pool(elevated, 1, instance['uuid'])
+ values = {'allocated': True,
+ 'virtual_interface_id': 3}
+ db.fixed_ip_update(elevated, fix_addr, values)
+ fixed = db.fixed_ip_get_by_address(elevated, fix_addr)
+ network = db.network_get(elevated, fixed['network_id'])
+
+ db.instance_destroy(self.context.elevated(), instance['uuid'])
+ self.assertRaises(exception.InstanceNotFound,
+ self.network.deallocate_fixed_ip,
+ context1,
+ fix_addr,
+ 'fake')
+ fixed = db.fixed_ip_get_by_address(elevated, fix_addr)
+ self.assertTrue(fixed['allocated'])
+
class CommonNetworkTestCase(test.TestCase):