]> review.fuel-infra Code Review - openstack-build/neutron-build.git/commitdiff
Add scheduling support for the Brocade plugin
authorGary Kotton <gkotton@redhat.com>
Tue, 5 Mar 2013 16:12:44 +0000 (16:12 +0000)
committerGary Kotton <gkotton@redhat.com>
Mon, 18 Mar 2013 11:58:56 +0000 (11:58 +0000)
Fixes bug 1147190

Change-Id: I7b19b899317cd6f165bbea1415b6aaa3e0ec095c

quantum/db/migration/alembic_migrations/versions/4692d074d587_agent_scheduler.py
quantum/db/migration/alembic_migrations/versions/511471cc46b_agent_ext_model_supp.py
quantum/plugins/brocade/QuantumPlugin.py

index a5a0f3cf55c4539d1c7145649892225f660e8aed..d4ee110b04cbd2a8259541a6ea3bfb52d5cdc22c 100644 (file)
@@ -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
index 80bb8647c524012d2d0592c4d4636a386a5f5605..fc6898e47659d659682afa3e861ad75bbffd350d 100644 (file)
@@ -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
index d3676b643da7e00ed49f54a4d4dd6b909a593fe3..c5a13641cc9016b5142bdd07974d86fce84a1a5b 100644 (file)
@@ -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