def __init__(self, plugin): super(AgentDriverBase, self).__init__(plugin) if not self.device_driver: raise DriverNotSpecified() self.load_balancer = LoadBalancerManager(self) self.listener = ListenerManager(self) self.pool = PoolManager(self) self.member = MemberManager(self) self.health_monitor = HealthMonitorManager(self) self.agent_rpc = LoadBalancerAgentApi(lb_const.LOADBALANCER_AGENTV2) self.agent_endpoints = [ agent_callbacks.LoadBalancerCallbacks(self.plugin), agents_db.AgentExtRpcCallback(self.plugin.db) ] self.conn = None # Setting this on the db because the plugin no longer inherts from # database classes, the db does. self.plugin.db.agent_notifiers.update( {lb_const.AGENT_TYPE_LOADBALANCERV2: self.agent_rpc}) lb_sched_driver = provconf.get_provider_driver_class( cfg.CONF.loadbalancer_scheduler_driver, LB_SCHEDULERS) self.loadbalancer_scheduler = importutils.import_object( lb_sched_driver)
def setUp(self): super(TestLoadBalancerCallbacks, self).setUp() self.callbacks = agent_callbacks.LoadBalancerCallbacks( self.plugin_instance) get_lbaas_agents_patcher = mock.patch( 'neutron_lbaas.agent_scheduler.LbaasAgentSchedulerDbMixin.' 'get_lbaas_agents') get_lbaas_agents_patcher.start()
def _set_callbacks_on_plugin(self): # other agent based plugin driver might already set callbacks on plugin if hasattr(self.plugin, 'agent_callbacks'): return self.plugin.agent_endpoints = [ agent_callbacks.LoadBalancerCallbacks(self.plugin), agents_db.AgentExtRpcCallback(self.plugin.db) ] self.plugin.conn = n_rpc.create_connection() self.plugin.conn.create_consumer(lb_const.LOADBALANCER_PLUGINV2, self.plugin.agent_endpoints, fanout=False) self.plugin.conn.consume_in_threads()