From: Cedric Brandily Date: Tue, 23 Jun 2015 22:08:22 +0000 (+0200) Subject: Support oslo_db 1.12 X-Git-Url: https://review.fuel-infra.org/gitweb?a=commitdiff_plain;h=7eb9d9d316d35840706a767576ff083c9a04d781;p=openstack-build%2Fneutron-build.git Support oslo_db 1.12 oslo_db 1.12[1] decorates oslo_context.context.RequestContext with session management[2][3] and add a read-only attribute 'session'. Such feature breaks Brocade plugin and its unittests because they define on RequestContext the 'session' attribute which now is a read-only property. This change uses neutron.context instead of oslo_context.context in order to delegate session management to the neutron.context and remove read-only attribute set. A follow-up change will refactor neutron.context in order to use oslo_db 1.12 session management instead of homemade one. [1] https://github.com/openstack/oslo.db/releases/tag/1.12.0 [2] https://github.com/openstack/oslo.db/commit/\ fdbd928b1fdf0334e1740e565ab8206fff54eaa6 [3] https://github.com/openstack/oslo.db/blob/\ fdbd928b1fdf0334e1740e565ab8206fff54eaa6/oslo_db/sqlalchemy/\ enginefacade.py#L782 Closes-Bug: #1468128 Change-Id: I0e3331f9a383fa2562706eeadb229f55593b888c --- diff --git a/neutron/plugins/brocade/NeutronPlugin.py b/neutron/plugins/brocade/NeutronPlugin.py index cfb1d65d6..8108d29e0 100644 --- a/neutron/plugins/brocade/NeutronPlugin.py +++ b/neutron/plugins/brocade/NeutronPlugin.py @@ -20,7 +20,6 @@ """Implentation of Brocade Neutron Plugin.""" from oslo_config import cfg -from oslo_context import context as oslo_context from oslo_log import log as logging import oslo_messaging from oslo_utils import importutils @@ -36,6 +35,7 @@ from neutron.common import constants as q_const from neutron.common import rpc as n_rpc from neutron.common import topics from neutron.common import utils +from neutron import context as n_context from neutron.db import agents_db from neutron.db import agentschedulers_db from neutron.db import api as db @@ -228,8 +228,7 @@ class BrocadePluginV2(db_base_plugin_v2.NeutronDbPluginV2, physical_interface) self.base_binding_dict = self._get_base_binding_dict() portbindings_base.register_port_dict_function() - self.ctxt = oslo_context.get_admin_context() - self.ctxt.session = db.get_session() + self.ctxt = n_context.get_admin_context() self._vlan_bitmap = vbm.VlanBitmap(self.ctxt) self._setup_rpc() self.network_scheduler = importutils.import_object( @@ -254,8 +253,8 @@ class BrocadePluginV2(db_base_plugin_v2.NeutronDbPluginV2, # RPC support self.service_topics = {svc_constants.CORE: topics.PLUGIN, svc_constants.L3_ROUTER_NAT: topics.L3PLUGIN} - self.rpc_context = oslo_context.RequestContext('neutron', 'neutron', - is_admin=False) + self.rpc_context = n_context.ContextBase('neutron', 'neutron', + is_admin=False) self.conn = n_rpc.create_connection(new=True) self.endpoints = [BridgeRpcCallbacks(), securitygroups_rpc.SecurityGroupServerRpcCallback(), diff --git a/neutron/tests/unit/plugins/brocade/test_brocade_vlan.py b/neutron/tests/unit/plugins/brocade/test_brocade_vlan.py index 024e26f8f..d3fd94ba6 100644 --- a/neutron/tests/unit/plugins/brocade/test_brocade_vlan.py +++ b/neutron/tests/unit/plugins/brocade/test_brocade_vlan.py @@ -18,9 +18,7 @@ Test vlans alloc/dealloc. """ -from oslo_context import context as oslo_context - -from neutron.db import api as db +from neutron import context as n_context from neutron.plugins.brocade import vlanbm as vlan_bitmap from neutron.tests.unit import testlib_api @@ -30,8 +28,7 @@ class TestVlanBitmap(testlib_api.SqlTestCase): def setUp(self): super(TestVlanBitmap, self).setUp() - self.context = oslo_context.get_admin_context() - self.context.session = db.get_session() + self.context = n_context.get_admin_context() def test_vlan(self): """test vlan allocation/de-alloc."""