Network deletion and subnet creation bug fixes
bug 1017395 1. When a subnet is created the network id is validated 2. when a network is deleted - if a subnet or port is defined then the opertaion fails Change-Id: I746d0f4994c539a908df0220465d753bc3eb8e04
This commit is contained in:
parent
43d2ed6342
commit
f431a143d4
@ -216,13 +216,13 @@ class QuantumDbPluginV2(quantum_plugin_base_v2.QuantumPluginBaseV2):
|
||||
with context.session.begin():
|
||||
network = self._get_network(context, id)
|
||||
|
||||
# TODO(anyone) Delegation?
|
||||
ports_qry = context.session.query(models_v2.Port)
|
||||
ports_qry.filter_by(network_id=id).delete()
|
||||
filter = {'network_id': [id]}
|
||||
ports = self.get_ports(context, filters=filter)
|
||||
if ports:
|
||||
raise q_exc.NetworkInUse(net_id=id)
|
||||
|
||||
subnets_qry = context.session.query(models_v2.Subnet)
|
||||
subnets_qry.filter_by(network_id=id).delete()
|
||||
|
||||
context.session.delete(network)
|
||||
|
||||
def get_network(self, context, id, fields=None, verbose=None):
|
||||
@ -243,6 +243,7 @@ class QuantumDbPluginV2(quantum_plugin_base_v2.QuantumPluginBaseV2):
|
||||
s['gateway_ip'] = str(netaddr.IPAddress(net.first + 1))
|
||||
|
||||
with context.session.begin():
|
||||
network = self._get_network(context, s["network_id"])
|
||||
subnet = models_v2.Subnet(network_id=s['network_id'],
|
||||
ip_version=s['ip_version'],
|
||||
cidr=s['cidr'],
|
||||
|
@ -253,6 +253,15 @@ class TestPortsV2(QuantumDbPluginV2TestCase):
|
||||
self.assertEqual(res['port']['admin_state_up'],
|
||||
data['port']['admin_state_up'])
|
||||
|
||||
def test_delete_network_if_port_exists(self):
|
||||
fmt = 'json'
|
||||
with self.port() as port:
|
||||
net_id = port['port']['network_id']
|
||||
req = self.new_delete_request('networks',
|
||||
port['port']['network_id'])
|
||||
res = req.get_response(self.api)
|
||||
self.assertEquals(res.status_int, 409)
|
||||
|
||||
def test_requested_duplicate_mac(self):
|
||||
fmt = 'json'
|
||||
with self.port() as port:
|
||||
|
Loading…
x
Reference in New Issue
Block a user