diff options
| author | Jenkins <jenkins@review.openstack.org> | 2012-07-02 19:21:14 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2012-07-02 19:21:14 +0000 |
| commit | da83fd1246fceda448bad09b5cd7ae262bc611ee (patch) | |
| tree | b8f6a22af219a816501d6a5c9d13a9fd91aeb99d /nova/tests | |
| parent | 9c0516929b89c8cbdfe96d0f21f464c1086c91f6 (diff) | |
| parent | 61ab72d15b3ac61b245e0bdd4a7bee5f3a673f75 (diff) | |
Merge "deallocate_fixed_ip attempts to update deleted ip"
Diffstat (limited to 'nova/tests')
| -rw-r--r-- | nova/tests/network/test_manager.py | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/nova/tests/network/test_manager.py b/nova/tests/network/test_manager.py index 11e293291..995c78061 100644 --- a/nova/tests/network/test_manager.py +++ b/nova/tests/network/test_manager.py @@ -943,6 +943,41 @@ class VlanNetworkTestCase(test.TestCase): fixed = db.fixed_ip_get_by_address(elevated, fix_addr) self.assertFalse(fixed['allocated']) + def test_deallocate_fixed_deleted(self): + """Verify doesn't deallocate deleted fixed_ip from deleted network""" + + def network_get(_context, network_id): + return networks[network_id] + + def teardown_network_on_host(_context, network): + if network['id'] == 0: + raise Exception('Correct network/fixed_ip assertion') + + self.stubs.Set(db, 'network_get', network_get) + self.stubs.Set(self.network, '_teardown_network_on_host', + teardown_network_on_host) + + 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['id']) + db.fixed_ip_update(elevated, fix_addr, {'deleted': 1}) + elevated.read_deleted = 'yes' + delfixed = db.fixed_ip_get_by_address(elevated, fix_addr) + values = {'address': fix_addr, + 'network_id': 0, + 'instance_id': delfixed['instance_id']} + db.fixed_ip_create(elevated, values) + elevated.read_deleted = 'no' + newfixed = db.fixed_ip_get_by_address(elevated, fix_addr) + elevated.read_deleted = 'yes' + + deallocate = self.network.deallocate_fixed_ip + self.assertRaises(Exception, deallocate, context1, fix_addr, 'fake') + def test_deallocate_fixed_no_vif(self): """Verify that deallocate doesn't raise when no vif is returned. |
