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):
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'],
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: