--- a/quantum/db/db_base_plugin_v2.py +++ b/quantum/db/db_base_plugin_v2.py @@ -949,6 +949,13 @@ class QuantumDbPluginV2(quantum_plugin_base_v2.QuantumPluginBaseV2): def delete_network(self, context, id): with context.session.begin(subtransactions=True): + # clean up subnets + subnets_qry = context.session.query(models_v2.Subnet) + subnets = subnets_qry.filter_by(network_id=id) + for subnet in subnets: + self.delete_subnet(context, subnet['id']) + subnets.delete() + network = self._get_network(context, id) filter = {'network_id': [id]} @@ -965,9 +972,6 @@ class QuantumDbPluginV2(quantum_plugin_base_v2.QuantumPluginBaseV2): for port in ports: self._delete_port(context, port['id']) - # clean up subnets - 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):