Backward compatibility for lbaas

Lbaas driver class is changed to one from this repo in case it attempts
to be loaded from neutron repo.

This change depends on I76af175c4387326a4e5ff95c2f15d8b866dedab3

Change-Id: If850adb3ec9db0a9ff0d43cd7445264c168d241c
Closes-Bug: 1401895
This commit is contained in:
Jakub Libosvar 2014-12-17 17:15:55 +01:00
parent 972873d232
commit 52d54dd7d0
3 changed files with 20 additions and 2 deletions

View File

@ -26,10 +26,13 @@ from neutron.openstack.common import log as logging
from neutron.openstack.common import loopingcall
from neutron.openstack.common import periodic_task
from neutron.plugins.common import constants
from neutron.services import provider_configuration as provconfig
from neutron_lbaas.services.loadbalancer.agent import agent_api
LOG = logging.getLogger(__name__)
DEVICE_DRIVERS = 'device_drivers'
OPTS = [
cfg.MultiStrOpt(
'device_driver',
@ -83,6 +86,8 @@ class LbaasAgentManager(periodic_task.PeriodicTasks):
def _load_drivers(self):
self.device_drivers = {}
for driver in self.conf.device_driver:
driver = provconfig.get_provider_driver_class(driver,
DEVICE_DRIVERS)
try:
driver_inst = importutils.import_object(
driver,

View File

@ -28,11 +28,14 @@ from neutron.extensions import portbindings
from neutron.i18n import _LW
from neutron.openstack.common import log as logging
from neutron.plugins.common import constants
from neutron.services import provider_configuration as provconf
from neutron_lbaas.db.loadbalancer import loadbalancer_db
from neutron_lbaas.services.loadbalancer.drivers import abstract_driver
LOG = logging.getLogger(__name__)
POOL_SCHEDULERS = 'pool_schedulers'
AGENT_SCHEDULER_OPTS = [
cfg.StrOpt('loadbalancer_pool_scheduler_driver',
default='neutron_lbaas.services.loadbalancer.agent_scheduler'
@ -326,8 +329,9 @@ class AgentDriverBase(abstract_driver.LoadBalancerAbstractDriver):
self.plugin.agent_notifiers.update(
{q_const.AGENT_TYPE_LOADBALANCER: self.agent_rpc})
self.pool_scheduler = importutils.import_object(
cfg.CONF.loadbalancer_pool_scheduler_driver)
pool_sched_driver = provconf.get_provider_driver_class(
cfg.CONF.loadbalancer_pool_scheduler_driver, POOL_SCHEDULERS)
self.pool_scheduler = importutils.import_object(pool_sched_driver)
def _set_callbacks_on_plugin(self):
# other agent based plugin driver might already set callbacks on plugin

View File

@ -31,6 +31,15 @@ setup-hooks =
[entry_points]
console_scripts =
neutron-lbaas-agent = neutron_lbaas.services.loadbalancer.agent.agent:main
device_drivers =
# These are for backwards compat with Juno loadbalancer service provider configuration values
neutron.services.loadbalancer.drivers.a10networks.driver_v1.ThunderDriver = neutron_lbaas.services.loadbalancer.drivers.a10networks.driver_v1:ThunderDriver
neutron.services.loadbalancer.drivers.embrane.driver.EmbraneLbaas = neutron_lbaas.services.loadbalancer.drivers.embrane.driver:EmbraneLbaas
neutron.services.loadbalancer.drivers.haproxy.plugin_driver.HaproxyOnHostPluginDriver = neutron_lbaas.services.loadbalancer.drivers.haproxy.plugin_driver:HaproxyOnHostPluginDriver
neutron.services.loadbalancer.drivers.netscaler.netscaler_driver.NetScalerPluginDriver = neutron_lbaas.services.loadbalancer.drivers.netscaler.netscaler_driver:NetScalerPluginDriver
neutron.services.loadbalancer.drivers.radware.driver.LoadBalancerDriver = neutron_lbaas.services.loadbalancer.drivers.radware.driver:LoadBalancerDriver
pool_schedulers =
neutron.services.loadbalancer.agent_scheduler.ChanceScheduler = neutron_lbaas.services.loadbalancer.agent_scheduler:ChanceScheduler
[build_sphinx]
all_files = 1