Make sure all db accesses use subtransaction
Fixes bug 1133253 Change-Id: If952eaa919cdc7536023525a397e7a8ce4b425aa
This commit is contained in:
parent
c90977b4f6
commit
578f7fa572
@ -108,8 +108,9 @@ def add_ofc_item(session, resource, quantum_id, ofc_id, old_style=False):
|
||||
else:
|
||||
params = dict(quantum_id=quantum_id, ofc_id=ofc_id)
|
||||
item = model(**params)
|
||||
session.add(item)
|
||||
session.flush()
|
||||
with session.begin(subtransactions=True):
|
||||
session.add(item)
|
||||
session.flush()
|
||||
except Exception as exc:
|
||||
LOG.exception(exc)
|
||||
raise nexc.NECDBException
|
||||
@ -120,9 +121,9 @@ def del_ofc_item(session, resource, quantum_id, old_style=False,
|
||||
warning=True):
|
||||
try:
|
||||
model = _get_resource_model(resource, old_style)
|
||||
item = session.query(model).filter_by(quantum_id=quantum_id).one()
|
||||
session.delete(item)
|
||||
session.flush()
|
||||
with session.begin(subtransactions=True):
|
||||
item = session.query(model).filter_by(quantum_id=quantum_id).one()
|
||||
session.delete(item)
|
||||
return True
|
||||
except sa.orm.exc.NoResultFound:
|
||||
if warning:
|
||||
@ -184,8 +185,8 @@ def add_portinfo(session, id, datapath_id='', port_no=0,
|
||||
try:
|
||||
portinfo = nmodels.PortInfo(id=id, datapath_id=datapath_id,
|
||||
port_no=port_no, vlan_id=vlan_id, mac=mac)
|
||||
session.add(portinfo)
|
||||
session.flush()
|
||||
with session.begin(subtransactions=True):
|
||||
session.add(portinfo)
|
||||
except Exception as exc:
|
||||
LOG.exception(exc)
|
||||
raise nexc.NECDBException
|
||||
@ -194,9 +195,9 @@ def add_portinfo(session, id, datapath_id='', port_no=0,
|
||||
|
||||
def del_portinfo(session, id):
|
||||
try:
|
||||
portinfo = session.query(nmodels.PortInfo).filter_by(id=id).one()
|
||||
session.delete(portinfo)
|
||||
session.flush()
|
||||
with session.begin(subtransactions=True):
|
||||
portinfo = session.query(nmodels.PortInfo).filter_by(id=id).one()
|
||||
session.delete(portinfo)
|
||||
except sa.orm.exc.NoResultFound:
|
||||
LOG.warning(_("del_portinfo(): NotFound portinfo for "
|
||||
"port_id: %s"), id)
|
||||
|
@ -104,19 +104,19 @@ class NECPluginV2Base(db_base_plugin_v2.QuantumDbPluginV2):
|
||||
else:
|
||||
params.update({key: pf.get(key)})
|
||||
|
||||
with context.session.begin():
|
||||
with context.session.begin(subtransactions=True):
|
||||
pf_entry = nmodels.PacketFilter(**params)
|
||||
context.session.add(pf_entry)
|
||||
return self._make_packet_filter_dict(pf_entry)
|
||||
|
||||
def update_packet_filter(self, context, id, packet_filter):
|
||||
pf = packet_filter['packet_filter']
|
||||
with context.session.begin():
|
||||
with context.session.begin(subtransactions=True):
|
||||
pf_entry = self._get_packet_filter(context, id)
|
||||
pf_entry.update(pf)
|
||||
return self._make_packet_filter_dict(pf_entry)
|
||||
|
||||
def delete_packet_filter(self, context, id):
|
||||
with context.session.begin():
|
||||
with context.session.begin(subtransactions=True):
|
||||
packet_filter = self._get_packet_filter(context, id)
|
||||
context.session.delete(packet_filter)
|
||||
|
@ -557,9 +557,10 @@ class NECPluginV2(nec_plugin_base.NECPluginV2Base,
|
||||
LOG.debug(_("NECPluginV2.update_packet_filter() called, "
|
||||
"id=%(id)s packet_filter=%(packet_filter)s ."),
|
||||
{'id': id, 'packet_filter': packet_filter})
|
||||
old_pf = super(NECPluginV2, self).get_packet_filter(context, id)
|
||||
new_pf = super(NECPluginV2, self).update_packet_filter(context, id,
|
||||
packet_filter)
|
||||
with context.session.begin(subtransactions=True):
|
||||
old_pf = super(NECPluginV2, self).get_packet_filter(context, id)
|
||||
new_pf = super(NECPluginV2, self).update_packet_filter(
|
||||
context, id, packet_filter)
|
||||
|
||||
changed = False
|
||||
exclude_items = ["id", "name", "tenant_id", "network_id", "status"]
|
||||
|
Loading…
x
Reference in New Issue
Block a user