910
910
fixed = db.fixed_ip_get_by_address(elevated, fix_addr)
911
911
self.assertFalse(fixed['allocated'])
913
def test_deallocate_fixed_deleted(self):
914
"""Verify doesn't deallocate deleted fixed_ip from deleted network"""
916
def network_get(_context, network_id):
917
return networks[network_id]
919
def teardown_network_on_host(_context, network):
920
if network['id'] == 0:
921
raise Exception('Correct network/fixed_ip assertion')
923
self.stubs.Set(db, 'network_get', network_get)
924
self.stubs.Set(self.network, '_teardown_network_on_host',
925
teardown_network_on_host)
927
context1 = context.RequestContext('user', 'project1')
929
instance = db.instance_create(context1,
930
{'project_id': 'project1'})
932
elevated = context1.elevated()
933
fix_addr = db.fixed_ip_associate_pool(elevated, 1, instance['id'])
934
db.fixed_ip_update(elevated, fix_addr, {'deleted': 1})
935
elevated.read_deleted = 'yes'
936
delfixed = db.fixed_ip_get_by_address(elevated, fix_addr)
937
values = {'address': fix_addr,
939
'instance_id': delfixed['instance_id']}
940
db.fixed_ip_create(elevated, values)
941
elevated.read_deleted = 'no'
942
newfixed = db.fixed_ip_get_by_address(elevated, fix_addr)
943
elevated.read_deleted = 'yes'
945
deallocate = self.network.deallocate_fixed_ip
946
self.assertRaises(Exception, deallocate, context1, fix_addr, 'fake')
913
948
def test_deallocate_fixed_no_vif(self):
914
949
"""Verify that deallocate doesn't raise when no vif is returned.