From: He Jie Xu Date: Wed, 9 Jan 2013 01:24:04 +0000 (+0800) Subject: Provide atomic database access for ports in linuxbridge plugin X-Git-Url: https://review.fuel-infra.org/gitweb?a=commitdiff_plain;h=4b430582c84c865f848129329705a70357c5fb45;p=openstack-build%2Fneutron-build.git Provide atomic database access for ports in linuxbridge plugin Fixes bug 1097541 Change-Id: I3b16b4504b7b61cebe44df5c169f4877969c8628 --- 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