Fixes bug
1030271
In the case where a network is deleted and there is a VLAN tag in a
separate table then the tag should only be deleted if the network
is deleted.
Change-Id: I99130f863928abf30a521e9a2b6d1233a274d9c6
"""Represents a binding of vlan_id to network_id"""
__tablename__ = 'vlan_bindings'
- network_id = sa.Column(sa.String(36), sa.ForeignKey('networks.id'),
+ network_id = sa.Column(sa.String(36), sa.ForeignKey('networks.id',
+ ondelete="CASCADE"),
primary_key=True)
vlan_id = sa.Column(sa.Integer, nullable=False)
return net
def delete_network(self, context, id):
+ result = super(LinuxBridgePluginV2, self).delete_network(context, id)
vlan_binding = cdb.get_vlan_binding(id)
cdb.release_vlanid(vlan_binding['vlan_id'])
- cdb.remove_vlan_binding(id)
- return super(LinuxBridgePluginV2, self).delete_network(context, id)
+ return result
def get_network(self, context, id, fields=None, verbose=None):
net = super(LinuxBridgePluginV2, self).get_network(context, id,
return net
def delete_network(self, context, id):
+ result = super(OVSQuantumPluginV2, self).delete_network(context, id)
ovs_db_v2.remove_vlan_binding(id)
self.vmap.release(id)
- return super(OVSQuantumPluginV2, self).delete_network(context, id)
+ return result
def get_network(self, context, id, fields=None, verbose=None):
net = super(OVSQuantumPluginV2, self).get_network(context, id,
return net
def delete_network(self, context, id):
+ result = super(RyuQuantumPluginV2, self).delete_network(context, id)
self.client.delete_network(id)
- return super(RyuQuantumPluginV2, self).delete_network(context, id)
+ return result