Pluggable controller worker
Change-Id: I11496547431fd5c4d162381afd9bc88b3de7513e
This commit is contained in:
parent
f074222842
commit
fc427679bd
|
@ -6,6 +6,10 @@
|
|||
# bind_host = 0.0.0.0
|
||||
# bind_port = 9876
|
||||
# api_handler = simulated_handler
|
||||
#
|
||||
# Plugin options are hot_plug_plugin (Hot-pluggable controller plugin)
|
||||
#
|
||||
# octavia_plugins = hot_plug_plugin
|
||||
|
||||
# nova_region_name =
|
||||
#
|
||||
|
|
|
@ -75,6 +75,9 @@ core_opts = [
|
|||
cfg.StrOpt('nova_region_name',
|
||||
help=_('Name of nova region to use. Useful if keystone manages'
|
||||
' more than one region.')),
|
||||
cfg.StrOpt('octavia_plugins',
|
||||
default='hot_plug_plugin',
|
||||
help=_('Name of the controller plugin to use'))
|
||||
]
|
||||
|
||||
networking_opts = [
|
||||
|
@ -183,7 +186,6 @@ controller_worker_opts = [
|
|||
cfg.StrOpt('cert_generator',
|
||||
default='local_cert_generator',
|
||||
help=_('Name of the cert generator to use'))
|
||||
|
||||
]
|
||||
|
||||
task_flow_opts = [
|
||||
|
|
|
@ -12,13 +12,16 @@
|
|||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
from oslo_config import cfg
|
||||
from oslo_log import log as logging
|
||||
import oslo_messaging as messaging
|
||||
from stevedore import driver as stevedore_driver
|
||||
|
||||
from octavia.common import constants
|
||||
from octavia.controller.worker import controller_worker
|
||||
from octavia.i18n import _LI
|
||||
|
||||
CONF = cfg.CONF
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
|
@ -31,7 +34,11 @@ class Endpoint(object):
|
|||
version='1.0')
|
||||
|
||||
def __init__(self):
|
||||
self.worker = controller_worker.ControllerWorker()
|
||||
self.worker = stevedore_driver.DriverManager(
|
||||
namespace='octavia.plugins',
|
||||
name=CONF.octavia_plugins,
|
||||
invoke_on_load=True
|
||||
).driver
|
||||
|
||||
def create_load_balancer(self, context, load_balancer_id):
|
||||
LOG.info(_LI('Creating load balancer \'%s\'...') % load_balancer_id)
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
from oslo_config import cfg
|
||||
import six
|
||||
|
||||
from octavia.controller.queue import endpoint
|
||||
|
@ -29,20 +30,19 @@ class TestEndpoint(base.TestCase):
|
|||
def setUp(self):
|
||||
super(TestEndpoint, self).setUp()
|
||||
|
||||
cfg.CONF.import_group('controller_worker', 'octavia.common.config')
|
||||
cfg.CONF.set_override('octavia_plugins', 'hot_plug_plugin')
|
||||
|
||||
mock_class = mock.create_autospec(controller_worker.ControllerWorker)
|
||||
self.worker_patcher = mock.patch('octavia.controller.queue.endpoint.'
|
||||
'controller_worker')
|
||||
'stevedore_driver')
|
||||
self.worker_patcher.start().ControllerWorker = mock_class
|
||||
|
||||
self.ep = endpoint.Endpoint()
|
||||
self.context = {}
|
||||
self.resource_updates = {}
|
||||
self.resource_id = 1234
|
||||
|
||||
def reset_patches():
|
||||
self.worker_patcher.stop()
|
||||
|
||||
self.addCleanup(reset_patches)
|
||||
|
||||
def test_create_load_balancer(self):
|
||||
self.ep.create_load_balancer(self.context, self.resource_id)
|
||||
self.ep.worker.create_load_balancer.assert_called_once_with(
|
||||
|
|
|
@ -55,10 +55,12 @@ octavia.compute.drivers =
|
|||
octavia.network.drivers =
|
||||
network_noop_driver = octavia.network.drivers.noop_driver.driver:NoopNetworkDriver
|
||||
allowed_address_pairs_driver = octavia.network.drivers.neutron.allowed_address_pairs:AllowedAddressPairsDriver
|
||||
containers_driver = octavia.network.drivers.neutron.containers:ContainersDriver
|
||||
octavia.cert_generator =
|
||||
local_cert_generator = octavia.certificates.generator.local:LocalCertGenerator
|
||||
barbican_cert_generator = octavia.certificates.generator.barbican:BarbicanCertGenerator
|
||||
octavia.cert_manager =
|
||||
local_cert_manager = octavia.certificates.manager.local:LocalCertManager
|
||||
barbican_cert_manager = octavia.certificates.manager.barbican:BarbicanCertManager
|
||||
|
||||
octavia.plugins =
|
||||
hot_plug_plugin = octavia.controller.worker.controller_worker:ControllerWorker
|
||||
|
|
Loading…
Reference in New Issue