From 4b430582c84c865f848129329705a70357c5fb45 Mon Sep 17 00:00:00 2001 From: He Jie Xu Date: Wed, 9 Jan 2013 09:24:04 +0800 Subject: [PATCH] Provide atomic database access for ports in linuxbridge plugin Fixes bug 1097541 Change-Id: I3b16b4504b7b61cebe44df5c169f4877969c8628 --- .../plugins/linuxbridge/lb_quantum_plugin.py | 25 ++++++++++++------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/quantum/plugins/linuxbridge/lb_quantum_plugin.py b/quantum/plugins/linuxbridge/lb_quantum_plugin.py index b1d4db82b..2355cf2bc 100644 --- a/quantum/plugins/linuxbridge/lb_quantum_plugin.py +++ b/quantum/plugins/linuxbridge/lb_quantum_plugin.py @@ -438,19 +438,26 @@ class LinuxBridgePluginV2(db_base_plugin_v2.QuantumDbPluginV2, return port def get_port(self, context, id, fields=None): - port = super(LinuxBridgePluginV2, self).get_port(context, id, fields) - self._extend_port_dict_security_group(context, port) + with context.session.begin(subtransactions=True): + port = super(LinuxBridgePluginV2, self).get_port(context, + id, + fields) + self._extend_port_dict_security_group(context, port) self._extend_port_dict_binding(context, port), return self._fields(port, fields) def get_ports(self, context, filters=None, fields=None): - ports = super(LinuxBridgePluginV2, self).get_ports(context, filters, - fields) - #TODO(nati) filter by security group - for port in ports: - self._extend_port_dict_security_group(context, port) - return [self._fields(self._extend_port_dict_binding(context, port), - fields) for port in ports] + res_ports = [] + with context.session.begin(subtransactions=True): + ports = super(LinuxBridgePluginV2, self).get_ports(context, + filters, + fields) + #TODO(nati) filter by security group + for port in ports: + self._extend_port_dict_security_group(context, port) + self._extend_port_dict_binding(context, port) + res_ports.append(self._fields(port, fields)) + return res_ports def create_port(self, context, port): session = context.session -- 2.45.2