def __init__(self): super(NECPluginV2, self).__init__() self.ofc = ofc_manager.OFCManager(self.safe_reference) self.base_binding_dict = self._get_base_binding_dict() portbindings_base.register_port_dict_function() neutron_extensions.append_api_extensions_path(extensions.__path__) self.setup_rpc() self.l3_rpc_notifier = nec_router.L3AgentNotifyAPI() self.network_scheduler = importutils.import_object( config.CONF.network_scheduler_driver) self.router_scheduler = importutils.import_object( config.CONF.router_scheduler_driver) nec_router.load_driver(self.safe_reference, self.ofc) self.port_handlers = { 'create': { const.DEVICE_OWNER_ROUTER_GW: self.create_router_port, const.DEVICE_OWNER_ROUTER_INTF: self.create_router_port, 'default': self.activate_port_if_ready, }, 'delete': { const.DEVICE_OWNER_ROUTER_GW: self.delete_router_port, const.DEVICE_OWNER_ROUTER_INTF: self.delete_router_port, 'default': self.deactivate_port, } }
def setup_rpc(self): self.service_topics = { svc_constants.CORE: topics.PLUGIN, svc_constants.L3_ROUTER_NAT: topics.L3PLUGIN } self.conn = n_rpc.create_connection(new=True) self.notifier = NECPluginV2AgentNotifierApi(topics.AGENT) self.agent_notifiers[const.AGENT_TYPE_DHCP] = ( dhcp_rpc_agent_api.DhcpAgentNotifyAPI()) self.agent_notifiers[const.AGENT_TYPE_L3] = ( nec_router.L3AgentNotifyAPI()) # NOTE: callback_sg is referred to from the sg unit test. self.callback_sg = securitygroups_rpc.SecurityGroupServerRpcCallback() self.endpoints = [ NECPluginV2RPCCallbacks(self.safe_reference), dhcp_rpc.DhcpRpcCallback(), l3_rpc.L3RpcCallback(), self.callback_sg, agents_db.AgentExtRpcCallback(), metadata_rpc.MetadataRpcCallback() ] for svc_topic in self.service_topics.values(): self.conn.create_consumer(svc_topic, self.endpoints, fanout=False) # Consume from all consumers in threads self.conn.consume_in_threads()
def setup_rpc(self): self.service_topics = { svc_constants.CORE: topics.PLUGIN, svc_constants.L3_ROUTER_NAT: topics.L3PLUGIN } self.conn = rpc.create_connection(new=True) self.notifier = NECPluginV2AgentNotifierApi(topics.AGENT) self.agent_notifiers[const.AGENT_TYPE_DHCP] = ( dhcp_rpc_agent_api.DhcpAgentNotifyAPI()) self.agent_notifiers[const.AGENT_TYPE_L3] = ( nec_router.L3AgentNotifyAPI()) # NOTE: callback_sg is referred to from the sg unit test. self.callback_sg = SecurityGroupServerRpcCallback() callbacks = [ NECPluginV2RPCCallbacks(self), DhcpRpcCallback(), L3RpcCallback(), self.callback_sg, agents_db.AgentExtRpcCallback() ] self.dispatcher = q_rpc.PluginRpcDispatcher(callbacks) for svc_topic in self.service_topics.values(): self.conn.create_consumer(svc_topic, self.dispatcher, fanout=False) # Consume from all consumers in a thread self.conn.consume_in_thread()
def __init__(self): ndb.initialize() self.ofc = ofc_manager.OFCManager() self.base_binding_dict = self._get_base_binding_dict() portbindings_base.register_port_dict_function() # Set the plugin default extension path # if no api_extensions_path is specified. if not config.CONF.api_extensions_path: config.CONF.set_override('api_extensions_path', 'neutron/plugins/nec/extensions') self.setup_rpc() self.l3_rpc_notifier = nec_router.L3AgentNotifyAPI() self.network_scheduler = importutils.import_object( config.CONF.network_scheduler_driver) self.router_scheduler = importutils.import_object( config.CONF.router_scheduler_driver) nec_router.load_driver(self, self.ofc) self.port_handlers = { 'create': { const.DEVICE_OWNER_ROUTER_GW: self.create_router_port, const.DEVICE_OWNER_ROUTER_INTF: self.create_router_port, 'default': self.activate_port_if_ready, }, 'delete': { const.DEVICE_OWNER_ROUTER_GW: self.delete_router_port, const.DEVICE_OWNER_ROUTER_INTF: self.delete_router_port, 'default': self.deactivate_port, } }