summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2015-04-08 22:40:49 +0000
committerGerrit Code Review <review@openstack.org>2015-04-08 22:40:49 +0000
commitc9146f19e50c1602d84ef65f3795eaee23ca12a7 (patch)
tree8b1fd09767a26877a16bfc0b69f6dc711fa9671e
parent3deccfe189ecc2e700a63b48d15a587ab8311f6b (diff)
parentaeb5efe3fbeae82a2d65f6bb68710d14156c58bf (diff)
downloadneutron-c9146f19e50c1602d84ef65f3795eaee23ca12a7.tar.gz
Merge "Re-use context session in ML2 DB get_port_binding_host"
-rw-r--r--neutron/db/l3_dvrscheduler_db.py2
-rw-r--r--neutron/plugins/ml2/db.py23
-rw-r--r--neutron/plugins/ml2/plugin.py2
-rw-r--r--neutron/tests/unit/plugins/ml2/test_db.py6
4 files changed, 16 insertions, 17 deletions
diff --git a/neutron/db/l3_dvrscheduler_db.py b/neutron/db/l3_dvrscheduler_db.py
index daf58a11a1..887abdea44 100644
--- a/neutron/db/l3_dvrscheduler_db.py
+++ b/neutron/db/l3_dvrscheduler_db.py
@@ -163,7 +163,7 @@ class L3_DVRsch_db_mixin(l3agent_sch_db.L3AgentSchedulerDbMixin):
def dvr_deletens_if_no_port(self, context, port_id):
"""Delete the DVR namespace if no dvr serviced port exists."""
router_ids = self.get_dvr_routers_by_portid(context, port_id)
- port_host = ml2_db.get_port_binding_host(port_id)
+ port_host = ml2_db.get_port_binding_host(context.session, port_id)
if not router_ids:
LOG.debug('No namespaces available for this DVR port %(port)s '
'on host %(host)s', {'port': port_id,
diff --git a/neutron/plugins/ml2/db.py b/neutron/plugins/ml2/db.py
index 73523ac74d..9e4f8ca14d 100644
--- a/neutron/plugins/ml2/db.py
+++ b/neutron/plugins/ml2/db.py
@@ -313,21 +313,20 @@ def make_port_dict_with_security_groups(port, sec_groups):
return port_dict
-def get_port_binding_host(port_id):
- session = db_api.get_session()
- with session.begin(subtransactions=True):
- try:
+def get_port_binding_host(session, port_id):
+ try:
+ with session.begin(subtransactions=True):
query = (session.query(models.PortBinding).
filter(models.PortBinding.port_id.startswith(port_id)).
one())
- except exc.NoResultFound:
- LOG.debug("No binding found for port %(port_id)s",
- {'port_id': port_id})
- return
- except exc.MultipleResultsFound:
- LOG.error(_LE("Multiple ports have port_id starting with %s"),
- port_id)
- return
+ except exc.NoResultFound:
+ LOG.debug("No binding found for port %(port_id)s",
+ {'port_id': port_id})
+ return
+ except exc.MultipleResultsFound:
+ LOG.error(_LE("Multiple ports have port_id starting with %s"),
+ port_id)
+ return
return query.host
diff --git a/neutron/plugins/ml2/plugin.py b/neutron/plugins/ml2/plugin.py
index 66d989caea..3f734d9e31 100644
--- a/neutron/plugins/ml2/plugin.py
+++ b/neutron/plugins/ml2/plugin.py
@@ -1426,7 +1426,7 @@ class Ml2Plugin(db_base_plugin_v2.NeutronDbPluginV2,
LOG.debug("No binding found for DVR port %s", port['id'])
return False
else:
- port_host = db.get_port_binding_host(port_id)
+ port_host = db.get_port_binding_host(context.session, port_id)
return (port_host == host)
def get_ports_from_devices(self, devices):
diff --git a/neutron/tests/unit/plugins/ml2/test_db.py b/neutron/tests/unit/plugins/ml2/test_db.py
index 10042e8b9b..c34b82abfd 100644
--- a/neutron/tests/unit/plugins/ml2/test_db.py
+++ b/neutron/tests/unit/plugins/ml2/test_db.py
@@ -144,7 +144,7 @@ class Ml2DBTestCase(testlib_api.SqlTestCase):
self._setup_neutron_port(network_id, port_id)
self._setup_neutron_portbinding(port_id, vif_type, host)
- port_host = ml2_db.get_port_binding_host(port_id)
+ port_host = ml2_db.get_port_binding_host(self.ctx.session, port_id)
self.assertEqual(host, port_host)
def test_get_port_binding_host_multiple_results_found(self):
@@ -160,13 +160,13 @@ class Ml2DBTestCase(testlib_api.SqlTestCase):
self._setup_neutron_port(network_id, port_id_two)
self._setup_neutron_portbinding(port_id_two, vif_type, host)
- port_host = ml2_db.get_port_binding_host(port_id)
+ port_host = ml2_db.get_port_binding_host(self.ctx.session, port_id)
self.assertIsNone(port_host)
def test_get_port_binding_host_result_not_found(self):
port_id = uuidutils.generate_uuid()
- port_host = ml2_db.get_port_binding_host(port_id)
+ port_host = ml2_db.get_port_binding_host(self.ctx.session, port_id)
self.assertIsNone(port_host)
def test_get_port(self):