Merge "Add DHCP RPC API support to Ryu plugin"
This commit is contained in:
@@ -22,13 +22,17 @@ from ryu.app import client
|
|||||||
from ryu.app import rest_nw_id
|
from ryu.app import rest_nw_id
|
||||||
|
|
||||||
from quantum.common import exceptions as q_exc
|
from quantum.common import exceptions as q_exc
|
||||||
|
from quantum.common import topics
|
||||||
from quantum.db import api as db
|
from quantum.db import api as db
|
||||||
from quantum.db import db_base_plugin_v2
|
from quantum.db import db_base_plugin_v2
|
||||||
from quantum.db import models_v2
|
from quantum.db import models_v2
|
||||||
|
from quantum.db.dhcp_rpc_base import DhcpRpcCallbackMixin
|
||||||
from quantum.openstack.common import cfg
|
from quantum.openstack.common import cfg
|
||||||
from quantum.plugins.ryu.db import api_v2 as db_api_v2
|
from quantum.openstack.common import rpc
|
||||||
|
from quantum.openstack.common.rpc import dispatcher
|
||||||
from quantum.plugins.ryu import ofp_service_type
|
from quantum.plugins.ryu import ofp_service_type
|
||||||
from quantum.plugins.ryu.common import config
|
from quantum.plugins.ryu.common import config
|
||||||
|
from quantum.plugins.ryu.db import api_v2 as db_api_v2
|
||||||
|
|
||||||
LOG = logging.getLogger(__name__)
|
LOG = logging.getLogger(__name__)
|
||||||
|
|
||||||
@@ -53,10 +57,18 @@ class RyuQuantumPluginV2(db_base_plugin_v2.QuantumDbPluginV2):
|
|||||||
|
|
||||||
self.client = client.OFPClient(ofp_api_host)
|
self.client = client.OFPClient(ofp_api_host)
|
||||||
self.client.update_network(rest_nw_id.NW_ID_EXTERNAL)
|
self.client.update_network(rest_nw_id.NW_ID_EXTERNAL)
|
||||||
|
self._setup_rpc()
|
||||||
|
|
||||||
# register known all network list on startup
|
# register known all network list on startup
|
||||||
self._create_all_tenant_network()
|
self._create_all_tenant_network()
|
||||||
|
|
||||||
|
def _setup_rpc(self):
|
||||||
|
self.conn = rpc.create_connection(new=True)
|
||||||
|
self.callback = DhcpRpcCallbackMixin()
|
||||||
|
self.dispatcher = dispatcher.RpcDispatcher([self.callback])
|
||||||
|
self.conn.create_consumer(topics.PLUGIN, self.dispatcher, fanout=False)
|
||||||
|
self.conn.consume_in_thread()
|
||||||
|
|
||||||
def _create_all_tenant_network(self):
|
def _create_all_tenant_network(self):
|
||||||
networks = db_api_v2.network_all_tenant_list()
|
networks = db_api_v2.network_all_tenant_list()
|
||||||
for net in networks:
|
for net in networks:
|
||||||
|
|||||||
Reference in New Issue
Block a user