Preparing for Pike support 2 (neutron_lib context)

Using the neutron context from neutron_lib (but
continues using db_api from neutron instead of
neutron_lib).

Note that Neutron still uses the context from the Neutron
repo in Ocata, so with this patch, both, Neutron and
neutron_lib, contexts will be in play depending on
whether the context is being instantiated by Neutron
or by GBP.

Also updating the tox hacking ignores to not require
translation hints for log messages. This should have been
removed in the previously merged patch which removed the log
message hints.

Change-Id: I8df4d00a8c0109e04e1f72576a54048332666078
This commit is contained in:
Sumit Naiksatam 2017-10-24 16:49:25 -07:00
parent 84353cca91
commit 76d2c32a36
39 changed files with 97 additions and 84 deletions

View File

@ -10,7 +10,10 @@
# License for the specific language governing permissions and limitations
# under the License.
from neutron import context as n_ctx
import sys
from neutron import context as old_context
from neutron_lib import context as n_context
from oslo_config import cfg
from oslo_log import log as logging
from oslo_utils import importutils
@ -22,6 +25,29 @@ LOG = logging.getLogger(__name__)
cfg.CONF.import_group('keystone_authtoken', 'keystonemiddleware.auth_token')
def get_current_context():
i = 1
try:
while True:
for val in sys._getframe(i).f_locals.itervalues():
# REVISIT (Sumit); In Ocata, neutron is still
# using the neutron_lib context, hence we need
# to check for both. This should be changed in
# Pike to only check for the neutron_lib context.
if isinstance(val, n_context.Context) or (
isinstance(val, old_context.Context)):
return val
i = i + 1
except Exception:
return
def get_current_session():
ctx = get_current_context()
if ctx:
return ctx.session
def get_resource_plural(resource):
if resource.endswith('y'):
resource_plural = resource.replace('y', 'ies')
@ -48,7 +74,7 @@ def load_plugin(namespace, plugin):
def admin_context(context):
admin_context = n_ctx.get_admin_context()
admin_context = n_context.get_admin_context()
admin_context._session = context.session
return admin_context

View File

@ -25,8 +25,6 @@ sys.modules['octavia.common.config.cfg'] = cfg
from octavia.amphorae.driver_exceptions import exceptions as driver_except
from octavia.amphorae.drivers.haproxy import rest_api_driver
from octavia.common.jinja.haproxy import jinja_cfg
from octavia.i18n import _LE
from octavia.i18n import _LW
from oslo_config import cfg
import requests
@ -96,10 +94,10 @@ class AmphoraAPIClient(rest_api_driver.AmphoraAPIClient):
resp=r))
return r
except (requests.ConnectionError, requests.Timeout):
LOG.warning(_LW("Could not connect to instance. Retrying."))
LOG.warning("Could not connect to instance. Retrying.")
time.sleep(CONF.haproxy_amphora.connection_retry_interval)
LOG.error(_LE("Connection retries (currently set to %s) "
"exhausted. The amphora is unavailable."),
LOG.error("Connection retries (currently set to %s) "
"exhausted. The amphora is unavailable.",
CONF.haproxy_amphora.connection_max_retries)
raise driver_except.TimeOutException()

View File

@ -21,8 +21,8 @@ from gbpservice.contrib.nfp.config_orchestrator.handlers.notification import (
handler as notif_handler)
from gbpservice.nfp.lib import transport
from neutron import context as ctx
from neutron.tests import base
from neutron_lib import context as ctx
class TestContext(object):

View File

@ -12,10 +12,10 @@
import netaddr
from neutron import context
from neutron.db import common_db_mixin
from neutron_lib.api import validators
from neutron_lib import constants
from neutron_lib import context
from neutron_lib.db import model_base
from oslo_log import helpers as log
from oslo_utils import uuidutils

View File

@ -10,9 +10,6 @@
# License for the specific language governing permissions and limitations
# under the License.
import sys
from neutron import context as n_context
from neutron.db import models_v2
from neutron_lib.db import model_base
from neutron_lib import exceptions as nexc
@ -21,6 +18,7 @@ from oslo_utils import uuidutils
import sqlalchemy as sa
from sqlalchemy import orm
from gbpservice.common import utils as gbp_utils
from gbpservice.neutron.db.grouppolicy import group_policy_db as gpdb
from gbpservice.neutron.extensions import group_policy as gpolicy
from gbpservice.neutron.services.grouppolicy.common import exceptions
@ -28,19 +26,7 @@ from gbpservice.neutron.services.grouppolicy.common import utils
def get_current_context():
i = 1
not_found = True
try:
while not_found:
for val in sys._getframe(i).f_locals.values():
if isinstance(val, n_context.Context):
ctx = val
not_found = False
break
i = i + 1
return ctx
except Exception:
return
return gbp_utils.get_current_context()
class AddressScopeUpdateForL3PNotSupported(nexc.BadRequest):

View File

@ -10,11 +10,20 @@
# License for the specific language governing permissions and limitations
# under the License.
from neutron.db import api as db_api
from neutron_lib import context as lib_context
# REVISIT(Sumit): The neutron_lib context uses
# a neutron_lib version of db_api. In ocata this
# version of the db_api is different from the
# db_api in neutron, and does not work for GBP.
# Revisit for Pike.
lib_context.db_api = db_api
from neutron.callbacks import events
from neutron.callbacks import registry
from neutron.callbacks import resources
from neutron.db import address_scope_db
from neutron.db import api as db_api
from neutron.db import common_db_mixin
from neutron.db import l3_db
from neutron.db.models import securitygroup as sg_models

View File

@ -33,27 +33,11 @@ def get_extensions_path(service_plugins=None):
extensions.get_extensions_path = get_extensions_path
import sys
from neutron import context as n_context
from gbpservice.network.neutronv2 import local_api
from gbpservice.common import utils as gbp_utils
def get_current_session():
i = 1
not_found = True
try:
while not_found:
for val in sys._getframe(i).f_locals.itervalues():
if isinstance(val, n_context.Context):
ctx = val
not_found = False
break
i = i + 1
return ctx.session
except Exception:
return
return gbp_utils.get_current_session()
from neutron.plugins.ml2 import ovo_rpc
@ -69,6 +53,8 @@ ovo_rpc.LOG.error = ovo_rpc.LOG.debug
from neutron.callbacks import registry
from gbpservice.network.neutronv2 import local_api
def notify(resource, event, trigger, **kwargs):
if 'context' in kwargs:

View File

@ -19,9 +19,9 @@ from aim.api import resource as aim_resource
from aim import context as aim_context
from aim import utils as aim_utils
from neutron.agent.linux import dhcp
from neutron import context as n_context
from neutron import policy
from neutron_lib import constants as n_constants
from neutron_lib import context as n_context
from neutron_lib import exceptions as n_exc
from oslo_concurrency import lockutils
from oslo_config import cfg

View File

@ -15,9 +15,9 @@
import sqlalchemy as sa
from sqlalchemy import orm
from neutron import context as nctx
from neutron.db import api as db_api
from neutron.db import models_v2
from neutron_lib import context as nctx
from oslo_db import exception as db_exc
from oslo_log import log as logging

View File

@ -17,11 +17,11 @@ from keystoneclient import exceptions as k_exceptions
from keystoneclient.v2_0 import client as k_client
from neutron.api.v2 import attributes
from neutron.common import exceptions as neutron_exc
from neutron import context as n_context
from neutron.db import models_v2
from neutron.extensions import l3 as ext_l3
from neutron.extensions import securitygroup as ext_sg
from neutron_lib import constants as n_const
from neutron_lib import context as n_context
from neutron_lib.db import model_base
from neutron_lib import exceptions as n_exc
from neutron_lib.plugins import directory

View File

@ -13,12 +13,12 @@
import netaddr
import six
from neutron import context as n_ctx
from neutron.db import api as db_api
from neutron.extensions import portbindings
from neutron.plugins.common import constants as pconst
from neutron.quota import resource_registry
from neutron_lib import constants
from neutron_lib import context as n_ctx
from neutron_lib.plugins import directory
from oslo_log import helpers as log
from oslo_log import log as logging

View File

@ -19,12 +19,12 @@ import webob.exc
import mock
from neutron.api import extensions
from neutron.api.rpc.callbacks.producer import registry
from neutron import context
from neutron.plugins.common import constants
from neutron import policy
from neutron.tests.unit.api import test_extensions
from neutron.tests.unit.db import test_db_base_plugin_v2
from neutron_lib import constants as nl_constants
from neutron_lib import context
from neutron_lib.plugins import directory
from oslo_utils import importutils
from oslo_utils import uuidutils

View File

@ -13,8 +13,8 @@
import webob.exc
from neutron import context as nctx
from neutron.tests.unit.extensions import test_l3
from neutron_lib import context as nctx
from gbpservice.neutron.db.grouppolicy import group_policy_mapping_db as gpmdb
from gbpservice.neutron.services.grouppolicy.common import exceptions as gpexc

View File

@ -14,8 +14,8 @@
import six
import webob.exc
from neutron import context
from neutron.plugins.common import constants
from neutron_lib import context
from oslo_config import cfg
from oslo_utils import uuidutils

View File

@ -11,8 +11,8 @@
# under the License.
import mock
from neutron import context
from neutron.tests.unit import testlib_api
from neutron_lib import context
from oslo_db import exception as exc
from oslo_utils import importutils

View File

@ -13,7 +13,7 @@
from gbpservice.nfp.lib import transport
import mock
from neutron.common import rpc as n_rpc
from neutron import context as ctx
from neutron_lib import context as ctx
from oslo_config import cfg
from oslo_serialization import jsonutils
import six
@ -59,9 +59,12 @@ class TestContext(object):
def get_context(self):
try:
return ctx.Context('some_user', 'some_tenant')
context = ctx.Context(user_id='some_user',
tenant_id='some_tenant', is_advsvc=True)
except Exception:
return ctx.Context('some_user', 'some_tenant')
context = ctx.Context(user_id='admin',
tenant_id='admin', is_advsvc=True, is_admin=True)
return context
def get_test_context(self):
# creating a test context

View File

@ -14,9 +14,9 @@
import copy
import fixtures
import mock
from neutron import context
from neutron.db import api as db_api
from neutron.tests import base
from neutron_lib import context
from gbpservice.nfp.common import constants as nfp_constants
from gbpservice.nfp.common import exceptions as nfp_exc

View File

@ -12,7 +12,7 @@
from gbpservice.nfp.proxy_agent.modules import proxy_agent
import mock
from neutron import context as ctx
from neutron_lib import context as ctx
import unittest2
rpc_manager = proxy_agent.RpcHandler
@ -22,9 +22,12 @@ class TestContext(object):
def get_context(self):
try:
return ctx.Context('some_user', 'some_tenant')
context = ctx.Context(user_id='some_user',
tenant_id='some_tenant', is_advsvc=True)
except Exception:
return ctx.Context('some_user', 'some_tenant')
context = ctx.Context(user_id='admin',
tenant_id='admin', is_advsvc=True, is_admin=True)
return context.to_dict()
"Common class for proxy agent test cases"

View File

@ -12,7 +12,7 @@
from gbpservice.nfp.proxy_agent.notifications import pull
import mock
from neutron import context as ctx
from neutron_lib import context as ctx
import unittest2
from neutron.common import rpc as n_rpc
@ -25,9 +25,11 @@ class TestContext(object):
def get_context_dict(self):
try:
context = ctx.Context('some_user', 'some_tenant')
context = ctx.Context(user_id='some_user',
tenant_id='some_tenant', is_advsvc=True)
except Exception:
context = ctx.Context('some_user', 'some_tenant')
context = ctx.Context(user_id='admin',
tenant_id='admin', is_advsvc=True, is_admin=True)
return context.to_dict()
"""Common class for pull notification tests"""

View File

@ -34,7 +34,6 @@ from aim import utils as aim_utils
from keystoneclient.v3 import client as ksc_client
from neutron.api import extensions
from neutron.callbacks import registry
from neutron import context as n_context
from neutron.db import api as db_api
from neutron.db import segments_db
from neutron.plugins.ml2 import config
@ -45,6 +44,7 @@ from neutron.tests.unit.extensions import test_l3
from neutron.tests.unit.extensions import test_securitygroup
from neutron.tests.unit import testlib_api
from neutron_lib import constants as n_constants
from neutron_lib import context as n_context
from neutron_lib.plugins import directory
from opflexagent import constants as ofcst
from oslo_config import cfg

View File

@ -16,8 +16,8 @@
import mock
import uuid
from neutron import context
from neutron.plugins.ml2 import config
from neutron_lib import context
from neutron_lib.plugins import directory
from gbpservice.neutron.tests.unit.plugins.ml2plus.drivers import (

View File

@ -14,7 +14,7 @@
# under the License.
import mock
from neutron import context
from neutron_lib import context
from gbpservice.neutron.services.apic_aim import l3_plugin
from gbpservice.neutron.tests.unit.services.grouppolicy import (

View File

@ -27,13 +27,13 @@ from netaddr import IPSet
from neutron.api.rpc.agentnotifiers import dhcp_rpc_agent_api
from neutron.callbacks import registry
from neutron.common import utils as n_utils
from neutron import context as nctx
from neutron.db import api as db_api
from neutron.extensions import dns
from neutron.notifiers import nova
from neutron.tests.unit.db import test_db_base_plugin_v2 as test_plugin
from neutron.tests.unit.extensions import test_address_scope
from neutron_lib import constants as n_constants
from neutron_lib import context as nctx
from neutron_lib.plugins import directory
from opflexagent import constants as ocst
from oslo_config import cfg

View File

@ -10,7 +10,7 @@
# License for the specific language governing permissions and limitations
# under the License.
from neutron import context as n_ctx
from neutron_lib import context as n_ctx
from oslo_config import cfg
from sqlalchemy.orm import exc as orm_exc

View File

@ -12,8 +12,8 @@
# limitations under the License.
import mock
from neutron import context
from neutron.tests.unit.plugins.ml2 import test_plugin
from neutron_lib import context
from oslo_config import cfg
from oslo_log import log as logging
import webob.exc

View File

@ -12,9 +12,9 @@
# limitations under the License.
import mock
from neutron import context as nctx
from neutron.plugins.common import constants as pconst
from neutron_lib import constants
from neutron_lib import context as nctx
from neutron_lib.plugins import directory
import webob.exc

View File

@ -12,8 +12,8 @@
#
import mock
from neutron import context
from neutron.tests.unit.db import test_db_base_plugin_v2
from neutron_lib import context
from neutronclient.common import exceptions
from neutronclient.v2_0 import client
from oslo_config import cfg

View File

@ -18,7 +18,6 @@ import six
from keystonemiddleware import auth_token # noqa
import mock
import netaddr
from neutron import context as nctx
from neutron.db.qos import models as qos_models
from neutron.extensions import external_net as external_net
from neutron.extensions import securitygroup as ext_sg
@ -28,6 +27,7 @@ from neutron.tests.unit.extensions import test_l3
from neutron.tests.unit.extensions import test_securitygroup
from neutron.tests.unit.plugins.ml2 import test_plugin as n_test_plugin
from neutron_lib import constants as cst
from neutron_lib import context as nctx
from neutron_lib.plugins import directory
from oslo_utils import uuidutils
import unittest2

View File

@ -15,7 +15,7 @@ import ast
import collections
from neutron.common import config
from neutron import context as n_ctx
from neutron_lib import context as n_ctx
from oslo_config import cfg
from oslo_serialization import jsonutils

View File

@ -16,9 +16,9 @@ import itertools
import copy
import heatclient
import mock
from neutron import context as neutron_context
from neutron.extensions import external_net as external_net
from neutron.plugins.common import constants
from neutron_lib import context as neutron_context
from oslo_serialization import jsonutils
from oslo_utils import uuidutils
import webob

View File

@ -14,9 +14,9 @@
import webob.exc
import mock
from neutron.common import config # noqa
from neutron import context as n_context
from neutron.common import config
from neutron.plugins.common import constants as pconst
from neutron_lib import context as n_context
from neutron_lib import exceptions as n_exc
from neutron_lib.plugins import directory
from oslo_config import cfg

View File

@ -12,8 +12,8 @@
import mock
from neutron.common import config # noqa
from neutron import context as n_context
from neutron.plugins.common import constants as pconst
from neutron_lib import context as n_context
from oslo_config import cfg
from gbpservice.neutron.services.servicechain.plugins.ncp import model

View File

@ -12,7 +12,7 @@
import mock
from neutron.common import config # noqa
from neutron import context as n_context
from neutron_lib import context as n_context
from neutron_lib.plugins import directory
from oslo_config import cfg

View File

@ -20,7 +20,7 @@ from oslo_service import service as oslo_service
from neutron.agent import rpc as n_agent_rpc
from neutron.common import rpc as n_rpc
from neutron import context as n_context
from neutron_lib import context as n_context
from gbpservice.nfp.core import log as nfp_logging

View File

@ -19,7 +19,7 @@ from gbpservice.nfp.core import log as nfp_logging
from gbpservice.nfp.lib import rest_client_over_unix as unix_rc
from neutron.common import rpc as n_rpc
from neutron import context as n_context
from neutron_lib import context as n_context
from oslo_config import cfg
from oslo_config import cfg as oslo_config

View File

@ -27,8 +27,8 @@ from gbpservice.nfp.orchestrator.db import nfp_db as nfp_db
from gbpservice.nfp.orchestrator.drivers import orchestration_driver
from gbpservice.nfp.orchestrator.openstack import openstack_driver
from neutron.common import rpc as n_rpc
from neutron import context as n_context
from neutron.db import api as db_api
from neutron_lib import context as n_context
import copy
import sys

View File

@ -11,8 +11,8 @@
# under the License.
from neutron.common import rpc as n_rpc
from neutron import context as n_context
from neutron.db import api as db_api
from neutron_lib import context as n_context
from oslo_log import helpers as log_helpers
import oslo_messaging

View File

@ -16,7 +16,7 @@ from gbpservice.nfp.core import module as nfp_api
from gbpservice.nfp.lib import transport as transport
from gbpservice.nfp.proxy_agent.lib import topics as a_topics
from neutron import context as n_context
from neutron_lib import context as n_context
import sys
import traceback

View File

@ -85,8 +85,8 @@ commands = python setup.py build_sphinx
# TODO(marun) H404 multi line docstring should start with a summary
# N530 direct neutron imports not allowed
# N531 Log messages require translation hints
# N537 Don't translate logs
ignore = E125,E126,E128,E129,E251,E265,E713,F402,F811,F812,H104,H237,H305,H307,H401,H402,H404,H405,N530,N531,N537
# N534 Untranslated exception message
ignore = E125,E126,E128,E129,E251,E265,E713,F402,F811,F812,H104,H237,H305,H307,H401,H402,H404,H405,N530,N531,N534
show-source = true
builtins = _