NB DB entry point definition

This patch defines an entry point in setup.cfg for the NB DB class definition

Change-Id: Icd773943a2671db0bbf1f4623ab2e8772a879cb3
This commit is contained in:
Lionel Zerbib 2016-07-26 13:44:17 +03:00
parent 5c276487ef
commit 29ccc56a00
8 changed files with 33 additions and 17 deletions

View File

@ -16,10 +16,10 @@ import sys
from neutron.common import config as common_config
from oslo_config import cfg
from oslo_serialization import jsonutils
from oslo_utils import importutils
from dragonflow.common import common_params
from dragonflow.common import exceptions as df_exceptions
from dragonflow.common import utils as df_utils
cfg.CONF.register_opts(common_params.df_opts, 'df')
@ -134,8 +134,9 @@ def main():
return
common_config.init(['--config-file', '/etc/neutron/neutron.conf'])
db_driver_class = importutils.import_class(cfg.CONF.df.nb_db_class)
db_driver = db_driver_class()
db_driver = df_utils.load_driver(
cfg.CONF.df.nb_db_class,
df_utils.DF_NB_DB_DRIVER_NAMESPACE)
db_driver.initialize(db_ip=cfg.CONF.df.remote_db_ip,
db_port=cfg.CONF.df.remote_db_port,
config=cfg.CONF.df)

View File

@ -27,6 +27,7 @@ from stevedore import driver
from dragonflow._i18n import _, _LE
DF_PUBSUB_DRIVER_NAMESPACE = 'dragonflow.pubsub_driver'
DF_NB_DB_DRIVER_NAMESPACE = 'dragonflow.nb_db_driver'
LOG = logging.getLogger(__name__)

View File

@ -21,12 +21,12 @@ from neutron.agent.common import config
from neutron.common import config as common_config
from oslo_config import cfg
from oslo_log import log
from oslo_utils import importutils
from ryu.base.app_manager import AppManager
from dragonflow._i18n import _LI, _LW
from dragonflow.common import common_params
from dragonflow.common import constants
from dragonflow.common import utils as df_utils
from dragonflow.controller.ryu_base_app import RyuDFAdapter
from dragonflow.controller.topology import Topology
from dragonflow.db import api_nb
@ -49,9 +49,11 @@ class DfLocalController(object):
self.ip = cfg.CONF.df.local_ip
self.tunnel_type = cfg.CONF.df.tunnel_type
self.sync_finished = False
nb_driver_class = importutils.import_class(cfg.CONF.df.nb_db_class)
nb_driver = df_utils.load_driver(
cfg.CONF.df.nb_db_class,
df_utils.DF_NB_DB_DRIVER_NAMESPACE)
self.nb_api = api_nb.NbApi(
nb_driver_class(),
nb_driver,
use_pubsub=cfg.CONF.df.enable_df_pub_sub)
self.vswitch_api = ovsdb_vswitch_impl.OvsdbSwitchApi(
self.ip, self.nb_api)

View File

@ -21,7 +21,6 @@ from neutron.common import config as common_config
from oslo_config import cfg
from oslo_log import log as logging
from oslo_serialization import jsonutils
from oslo_utils import importutils
from dragonflow._i18n import _LW
from dragonflow.common import common_params
@ -39,8 +38,9 @@ class PublisherService(object):
self._queue = Queue()
self.publisher = self._get_publisher()
self.multiproc_subscriber = self._get_multiproc_subscriber()
nb_driver_class = importutils.import_class(cfg.CONF.df.nb_db_class)
self.db = nb_driver_class()
self.db = df_utils.load_driver(
cfg.CONF.df.nb_db_class,
df_utils.DF_NB_DB_DRIVER_NAMESPACE)
self.uuid = pub_sub_api.generate_publisher_uuid()
self._rate_limit = df_utils.RateLimiter(
cfg.CONF.df.publisher_rate_limit_count,

View File

@ -24,13 +24,13 @@ from neutron.plugins.ml2 import models
from neutron_lib import constants as n_const
from oslo_config import cfg
from oslo_log import log
from oslo_utils import importutils
from dragonflow._i18n import _LI
from dragonflow.common import common_params
from dragonflow.common import constants as df_common_const
from dragonflow.common import exceptions as df_exceptions
from dragonflow.common import extensions
from dragonflow.common import utils as df_utils
from dragonflow.db import api_nb
from dragonflow.db.neutron import lockedobjects_db as lock_db
from dragonflow.db.neutron import versionobjects_db as version_db
@ -57,9 +57,11 @@ class DFMechDriver(driver_api.MechanismDriver):
self.vif_type = portbindings.VIF_TYPE_OVS
self._set_base_port_binding()
nb_driver_class = importutils.import_class(cfg.CONF.df.nb_db_class)
nb_driver = df_utils.load_driver(
cfg.CONF.df.nb_db_class,
df_utils.DF_NB_DB_DRIVER_NAMESPACE)
self.nb_api = api_nb.NbApi(
nb_driver_class(),
nb_driver,
use_pubsub=cfg.CONF.df.enable_df_pub_sub,
is_neutron_server=True)
self.nb_api.initialize(db_ip=cfg.CONF.df.remote_db_ip,

View File

@ -60,6 +60,7 @@ from dragonflow.common import common_params
from dragonflow.common import constants as df_common_const
from dragonflow.common import exceptions as df_exceptions
from dragonflow.common import extensions
from dragonflow.common import utils as df_utils
from dragonflow.db import api_nb
from dragonflow.db.neutron import lockedobjects_db as lock_db
from dragonflow.db.neutron import versionobjects_db as version_db
@ -130,10 +131,12 @@ class DFPlugin(db_base_plugin_v2.NeutronDbPluginV2,
self._start_rpc_notifiers()
def post_fork_initialize(self, resource, event, trigger, **kwargs):
nb_driver_class = importutils.import_class(cfg.CONF.df.nb_db_class)
nb_driver = df_utils.load_driver(
cfg.CONF.df.nb_db_class,
df_utils.DF_NB_DB_DRIVER_NAMESPACE)
self.nb_api = api_nb.NbApi(
nb_driver_class(),
nb_driver,
use_pubsub=cfg.CONF.df.enable_df_pub_sub,
is_neutron_server=True)
self.nb_api.initialize(db_ip=cfg.CONF.df.remote_db_ip,

View File

@ -15,9 +15,9 @@ from neutron.common import config as common_config
from neutronclient.neutron import client
import os_client_config
from oslo_config import cfg
from oslo_utils import importutils
from dragonflow.common import common_params
from dragonflow.common import utils as df_utils
from dragonflow.db import api_nb
from dragonflow.tests import base
from dragonflow.tests.common import app_testing_objects as test_objects
@ -50,8 +50,10 @@ class DFTestBase(base.BaseTestCase):
self.conf = cfg.CONF.df
self.integration_bridge = self.conf.integration_bridge
db_driver_class = importutils.import_class(self.conf.nb_db_class)
self.nb_api = api_nb.NbApi(db_driver_class())
db_driver = df_utils.load_driver(
cfg.CONF.df.nb_db_class,
df_utils.DF_NB_DB_DRIVER_NAMESPACE)
self.nb_api = api_nb.NbApi(db_driver)
self.nb_api.initialize(db_ip=self.conf.remote_db_ip,
db_port=self.conf.remote_db_port)
self.local_ip = self.conf.local_ip

View File

@ -57,5 +57,10 @@ dragonflow.pubsub_driver =
zmq_pubsub_driver = dragonflow.db.pubsub_drivers.zmq_pubsub_driver:ZMQPubSub
zmq_pubsub_multiproc_driver = dragonflow.db.pubsub_drivers.zmq_pubsub_driver:ZMQPubSubMultiproc
redis_db_pubsub_driver = dragonflow.db.pubsub_drivers.redis_db_pubsub_driver:RedisPubSub
dragonflow.nb_db_driver =
etcd_nb_db_driver = dragonflow.db.drivers.etcd_db_driver:EtcdDbDriver
ramcloud_nb_db_driver = dragonflow.db.drivers.ramcloud_db_driver:RamCloudDbDriver
zookeeper_nb_db_driver = dragonflow.db.drivers.zookeeper_db_driver:ZookeeperDbDriver
redis_nb_db_driver = dragonflow.db.drivers.redis_db_driver:RedisDbDriver
neutron.service_plugins =
df-l3 = dragonflow.neutron.services.l3_router_plugin:DFL3RouterPlugin