From a8283463c57f108f03d59c5477eef7e8dceeaa6a Mon Sep 17 00:00:00 2001 From: Gary Kotton Date: Tue, 5 Mar 2013 16:12:44 +0000 Subject: [PATCH] Add scheduling support for the Brocade plugin Fixes bug 1147190 Change-Id: I7b19b899317cd6f165bbea1415b6aaa3e0ec095c --- .../versions/4692d074d587_agent_scheduler.py | 1 + .../versions/511471cc46b_agent_ext_model_supp.py | 1 + quantum/plugins/brocade/QuantumPlugin.py | 16 ++++++++++++++-- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/quantum/db/migration/alembic_migrations/versions/4692d074d587_agent_scheduler.py b/quantum/db/migration/alembic_migrations/versions/4692d074d587_agent_scheduler.py index a5a0f3cf5..d4ee110b0 100644 --- a/quantum/db/migration/alembic_migrations/versions/4692d074d587_agent_scheduler.py +++ b/quantum/db/migration/alembic_migrations/versions/4692d074d587_agent_scheduler.py @@ -34,6 +34,7 @@ migration_for_plugins = [ 'quantum.plugins.linuxbridge.lb_quantum_plugin.LinuxBridgePluginV2', 'quantum.plugins.nicira.nicira_nvp_plugin.QuantumPlugin.NvpPluginV2', 'quantum.plugins.nec.nec_plugin.NECPluginV2', + 'quantum.plugins.brocade.QuantumPlugin.BrocadePluginV2', ] from alembic import op diff --git a/quantum/db/migration/alembic_migrations/versions/511471cc46b_agent_ext_model_supp.py b/quantum/db/migration/alembic_migrations/versions/511471cc46b_agent_ext_model_supp.py index 80bb8647c..fc6898e47 100644 --- a/quantum/db/migration/alembic_migrations/versions/511471cc46b_agent_ext_model_supp.py +++ b/quantum/db/migration/alembic_migrations/versions/511471cc46b_agent_ext_model_supp.py @@ -34,6 +34,7 @@ migration_for_plugins = [ 'quantum.plugins.linuxbridge.lb_quantum_plugin.LinuxBridgePluginV2', 'quantum.plugins.nicira.nicira_nvp_plugin.QuantumPlugin.NvpPluginV2', 'quantum.plugins.nec.nec_plugin.NECPluginV2', + 'quantum.plugins.brocade.QuantumPlugin.BrocadePluginV2', ] from alembic import op diff --git a/quantum/plugins/brocade/QuantumPlugin.py b/quantum/plugins/brocade/QuantumPlugin.py index d3676b643..c5a13641c 100644 --- a/quantum/plugins/brocade/QuantumPlugin.py +++ b/quantum/plugins/brocade/QuantumPlugin.py @@ -30,10 +30,13 @@ Implentation of Brocade Quantum Plugin. from oslo.config import cfg from quantum.agent import securitygroups_rpc as sg_rpc +from quantum.api.rpc.agentnotifiers import dhcp_rpc_agent_api +from quantum.api.rpc.agentnotifiers import l3_rpc_agent_api from quantum.common import rpc as q_rpc from quantum.common import topics from quantum.common import utils from quantum.db import agents_db +from quantum.db import agentschedulers_db from quantum.db import api as db from quantum.db import db_base_plugin_v2 from quantum.db import dhcp_rpc_base @@ -50,6 +53,7 @@ from quantum.openstack.common.rpc import proxy from quantum.plugins.brocade.db import models as brocade_db from quantum.plugins.brocade import vlanbm as vbm from quantum import policy +from quantum import scheduler LOG = logging.getLogger(__name__) @@ -68,6 +72,7 @@ PHYSICAL_INTERFACE_OPTS = [cfg.StrOpt('physical_interface', default='eth0') cfg.CONF.register_opts(SWITCH_OPTS, "SWITCH") cfg.CONF.register_opts(PHYSICAL_INTERFACE_OPTS, "PHYSICAL_INTERFACE") +cfg.CONF.register_opts(scheduler.AGENTS_SCHEDULER_OPTS) class BridgeRpcCallbacks(dhcp_rpc_base.DhcpRpcCallbackMixin, @@ -194,7 +199,7 @@ class AgentNotifierApi(proxy.RpcProxy, class BrocadePluginV2(db_base_plugin_v2.QuantumDbPluginV2, sg_db_rpc.SecurityGroupServerRpcMixin, - agents_db.AgentDbMixin): + agentschedulers_db.AgentSchedulerDbMixin): """BrocadePluginV2 is a Quantum plugin. Provides L2 Virtual Network functionality using VDX. Upper @@ -207,7 +212,8 @@ class BrocadePluginV2(db_base_plugin_v2.QuantumDbPluginV2, and db configuration. """ - self.supported_extension_aliases = ["binding", "security-group"] + self.supported_extension_aliases = ["binding", "security-group", + "agent", "agent_scheduler"] self.binding_view = "extension:port_binding:view" self.binding_set = "extension:port_binding:set" @@ -218,6 +224,10 @@ class BrocadePluginV2(db_base_plugin_v2.QuantumDbPluginV2, self.ctxt.session = db.get_session() self._vlan_bitmap = vbm.VlanBitmap(self.ctxt) self._setup_rpc() + self.network_scheduler = importutils.import_object( + cfg.CONF.network_scheduler_driver) + self.router_scheduler = importutils.import_object( + cfg.CONF.router_scheduler_driver) self.brocade_init() def brocade_init(self): @@ -242,6 +252,8 @@ class BrocadePluginV2(db_base_plugin_v2.QuantumDbPluginV2, # Consume from all consumers in a thread self.conn.consume_in_thread() self.notifier = AgentNotifierApi(topics.AGENT) + self.dhcp_agent_notifier = dhcp_rpc_agent_api.DhcpAgentNotifyAPI() + self.l3_agent_notifier = l3_rpc_agent_api.L3AgentNotify def create_network(self, context, network): """This call to create network translates to creation of -- 2.45.2