Delete fixed_ips when network is deleted
* adds failing test * adds exception that is raised when network is in use * fixes bug 754900 Change-Id: Ib95dc5927561b979b1eea237d4d6dc323483d4a5
This commit is contained in:
@@ -525,6 +525,10 @@ class StorageRepositoryNotFound(NotFound):
|
|||||||
message = _("Cannot find SR to read/write VDI.")
|
message = _("Cannot find SR to read/write VDI.")
|
||||||
|
|
||||||
|
|
||||||
|
class NetworkInUse(NovaException):
|
||||||
|
message = _("Network %(network_id)s is still in use.")
|
||||||
|
|
||||||
|
|
||||||
class NetworkNotCreated(NovaException):
|
class NetworkNotCreated(NovaException):
|
||||||
message = _("%(req)s is required to create a network.")
|
message = _("%(req)s is required to create a network.")
|
||||||
|
|
||||||
|
|||||||
@@ -136,6 +136,25 @@ class DbApiTestCase(test.TestCase):
|
|||||||
db_network = db.network_get(ctxt, network.id)
|
db_network = db.network_get(ctxt, network.id)
|
||||||
self.assertEqual(network.uuid, db_network.uuid)
|
self.assertEqual(network.uuid, db_network.uuid)
|
||||||
|
|
||||||
|
def test_network_delete_safe(self):
|
||||||
|
ctxt = context.get_admin_context()
|
||||||
|
values = {'host': 'localhost', 'project_id': 'project1'}
|
||||||
|
network = db.network_create_safe(ctxt, values)
|
||||||
|
db_network = db.network_get(ctxt, network.id)
|
||||||
|
values = {'network_id': network['id'], 'address': 'fake1'}
|
||||||
|
address1 = db.fixed_ip_create(ctxt, values)
|
||||||
|
values = {'network_id': network['id'],
|
||||||
|
'address': 'fake2',
|
||||||
|
'allocated': True}
|
||||||
|
address2 = db.fixed_ip_create(ctxt, values)
|
||||||
|
self.assertRaises(exception.NetworkInUse,
|
||||||
|
db.network_delete_safe, ctxt, network['id'])
|
||||||
|
db.fixed_ip_update(ctxt, address2, {'allocated': False})
|
||||||
|
network = db.network_delete_safe(ctxt, network['id'])
|
||||||
|
ctxt = ctxt.elevated(read_deleted='yes')
|
||||||
|
fixed_ip = db.fixed_ip_get_by_address(ctxt, address1)
|
||||||
|
self.assertTrue(fixed_ip['deleted'])
|
||||||
|
|
||||||
def test_network_create_with_duplicate_vlan(self):
|
def test_network_create_with_duplicate_vlan(self):
|
||||||
ctxt = context.get_admin_context()
|
ctxt = context.get_admin_context()
|
||||||
values1 = {'host': 'localhost', 'project_id': 'project1', 'vlan': 1}
|
values1 = {'host': 'localhost', 'project_id': 'project1', 'vlan': 1}
|
||||||
|
|||||||
Reference in New Issue
Block a user