diff --git a/neutron/db/dhcp_rpc_base.py b/neutron/api/rpc/handlers/dhcp_rpc.py similarity index 97% rename from neutron/db/dhcp_rpc_base.py rename to neutron/api/rpc/handlers/dhcp_rpc.py index bb64df6d4..56016be70 100644 --- a/neutron/db/dhcp_rpc_base.py +++ b/neutron/api/rpc/handlers/dhcp_rpc.py @@ -19,6 +19,7 @@ from oslo.db import exception as db_exc from neutron.api.v2 import attributes from neutron.common import constants from neutron.common import exceptions as n_exc +from neutron.common import rpc as n_rpc from neutron.common import utils from neutron.extensions import portbindings from neutron import manager @@ -29,8 +30,14 @@ from neutron.openstack.common import log as logging LOG = logging.getLogger(__name__) -class DhcpRpcCallbackMixin(object): - """A mix-in that enable DHCP agent support in plugin implementations.""" +class DhcpRpcCallback(n_rpc.RpcCallback): + """DHCP agent RPC callback in plugin implementations.""" + + # API version history: + # 1.0 - Initial version. + # 1.1 - Added get_active_networks_info, create_dhcp_port, + # and update_dhcp_port methods. + RPC_API_VERSION = '1.1' def _get_active_networks(self, context, **kwargs): """Retrieve and return a list of the active networks.""" diff --git a/neutron/plugins/bigswitch/plugin.py b/neutron/plugins/bigswitch/plugin.py index dde693ea4..1ac8a78e3 100644 --- a/neutron/plugins/bigswitch/plugin.py +++ b/neutron/plugins/bigswitch/plugin.py @@ -55,6 +55,7 @@ from sqlalchemy.orm import exc as sqlexc from neutron.agent import securitygroups_rpc as sg_rpc from neutron.api import extensions as neutron_extensions from neutron.api.rpc.agentnotifiers import dhcp_rpc_agent_api +from neutron.api.rpc.handlers import dhcp_rpc from neutron.common import constants as const from neutron.common import exceptions from neutron.common import rpc as n_rpc @@ -66,7 +67,6 @@ from neutron.db import agentschedulers_db from neutron.db import allowedaddresspairs_db as addr_pair_db from neutron.db import api as db from neutron.db import db_base_plugin_v2 -from neutron.db import dhcp_rpc_base from neutron.db import external_net_db from neutron.db import extradhcpopt_db from neutron.db import l3_db @@ -114,8 +114,7 @@ class AgentNotifierApi(n_rpc.RpcProxy, class RestProxyCallbacks(n_rpc.RpcCallback, - sg_rpc_base.SecurityGroupServerRpcCallbackMixin, - dhcp_rpc_base.DhcpRpcCallbackMixin): + sg_rpc_base.SecurityGroupServerRpcCallbackMixin): RPC_API_VERSION = '1.1' @@ -511,6 +510,7 @@ class NeutronRestProxyV2(NeutronRestProxyV2Base, self._dhcp_agent_notifier ) self.endpoints = [RestProxyCallbacks(), + dhcp_rpc.DhcpRpcCallback(), agents_db.AgentExtRpcCallback()] self.conn.create_consumer(self.topic, self.endpoints, fanout=False) diff --git a/neutron/plugins/brocade/NeutronPlugin.py b/neutron/plugins/brocade/NeutronPlugin.py index f4859f179..e1408c44d 100644 --- a/neutron/plugins/brocade/NeutronPlugin.py +++ b/neutron/plugins/brocade/NeutronPlugin.py @@ -28,6 +28,7 @@ from oslo.config import cfg from neutron.agent import securitygroups_rpc as sg_rpc from neutron.api.rpc.agentnotifiers import dhcp_rpc_agent_api from neutron.api.rpc.agentnotifiers import l3_rpc_agent_api +from neutron.api.rpc.handlers import dhcp_rpc from neutron.api.rpc.handlers import l3_rpc from neutron.common import constants as q_const from neutron.common import rpc as n_rpc @@ -37,7 +38,6 @@ from neutron.db import agents_db from neutron.db import agentschedulers_db from neutron.db import api as db from neutron.db import db_base_plugin_v2 -from neutron.db import dhcp_rpc_base from neutron.db import external_net_db from neutron.db import extraroute_db from neutron.db import l3_agentschedulers_db @@ -78,7 +78,6 @@ cfg.CONF.register_opts(PHYSICAL_INTERFACE_OPTS, "PHYSICAL_INTERFACE") class BridgeRpcCallbacks(n_rpc.RpcCallback, - dhcp_rpc_base.DhcpRpcCallbackMixin, sg_db_rpc.SecurityGroupServerRpcCallbackMixin): """Agent callback.""" @@ -263,6 +262,7 @@ class BrocadePluginV2(db_base_plugin_v2.NeutronDbPluginV2, is_admin=False) self.conn = n_rpc.create_connection(new=True) self.endpoints = [BridgeRpcCallbacks(), + dhcp_rpc.DhcpRpcCallback(), l3_rpc.L3RpcCallback(), agents_db.AgentExtRpcCallback()] for svc_topic in self.service_topics.values(): diff --git a/neutron/plugins/cisco/n1kv/n1kv_neutron_plugin.py b/neutron/plugins/cisco/n1kv/n1kv_neutron_plugin.py index 91a478d55..d46493a9b 100644 --- a/neutron/plugins/cisco/n1kv/n1kv_neutron_plugin.py +++ b/neutron/plugins/cisco/n1kv/n1kv_neutron_plugin.py @@ -23,6 +23,7 @@ from oslo.config import cfg as q_conf from neutron.api.rpc.agentnotifiers import dhcp_rpc_agent_api from neutron.api.rpc.agentnotifiers import l3_rpc_agent_api +from neutron.api.rpc.handlers import dhcp_rpc from neutron.api.rpc.handlers import l3_rpc from neutron.api.v2 import attributes from neutron.common import constants @@ -33,7 +34,6 @@ from neutron.common import utils from neutron.db import agents_db from neutron.db import agentschedulers_db from neutron.db import db_base_plugin_v2 -from neutron.db import dhcp_rpc_base from neutron.db import external_net_db from neutron.db import extraroute_db from neutron.db import l3_agentschedulers_db @@ -58,15 +58,6 @@ from neutron.plugins.common import constants as svc_constants LOG = logging.getLogger(__name__) -class N1kvRpcCallbacks(n_rpc.RpcCallback, - dhcp_rpc_base.DhcpRpcCallbackMixin): - - """Class to handle agent RPC calls.""" - - # Set RPC API version to 1.1 by default. - RPC_API_VERSION = '1.1' - - class N1kvNeutronPluginV2(db_base_plugin_v2.NeutronDbPluginV2, external_net_db.External_net_db_mixin, extraroute_db.ExtraRoute_db_mixin, @@ -127,7 +118,7 @@ class N1kvNeutronPluginV2(db_base_plugin_v2.NeutronDbPluginV2, self.service_topics = {svc_constants.CORE: topics.PLUGIN, svc_constants.L3_ROUTER_NAT: topics.L3PLUGIN} self.conn = n_rpc.create_connection(new=True) - self.endpoints = [N1kvRpcCallbacks(), + self.endpoints = [dhcp_rpc.DhcpRpcCallback(), l3_rpc.L3RpcCallback(), agents_db.AgentExtRpcCallback()] for svc_topic in self.service_topics.values(): diff --git a/neutron/plugins/hyperv/hyperv_neutron_plugin.py b/neutron/plugins/hyperv/hyperv_neutron_plugin.py index 2862290dc..70ede35d1 100644 --- a/neutron/plugins/hyperv/hyperv_neutron_plugin.py +++ b/neutron/plugins/hyperv/hyperv_neutron_plugin.py @@ -16,6 +16,7 @@ from oslo.config import cfg +from neutron.api.rpc.handlers import dhcp_rpc from neutron.api.rpc.handlers import l3_rpc from neutron.api.v2 import attributes from neutron.common import exceptions as n_exc @@ -189,6 +190,7 @@ class HyperVNeutronPlugin(agents_db.AgentDbMixin, self.notifier = agent_notifier_api.AgentNotifierApi( topics.AGENT) self.endpoints = [rpc_callbacks.HyperVRpcCallbacks(self.notifier), + dhcp_rpc.DhcpRpcCallback(), l3_rpc.L3RpcCallback(), agents_db.AgentExtRpcCallback()] for svc_topic in self.service_topics.values(): diff --git a/neutron/plugins/hyperv/rpc_callbacks.py b/neutron/plugins/hyperv/rpc_callbacks.py index d2496121b..a44cfbca5 100644 --- a/neutron/plugins/hyperv/rpc_callbacks.py +++ b/neutron/plugins/hyperv/rpc_callbacks.py @@ -16,7 +16,6 @@ from neutron.common import constants as q_const from neutron.common import rpc as n_rpc -from neutron.db import dhcp_rpc_base from neutron.openstack.common import log as logging from neutron.plugins.hyperv import db as hyperv_db @@ -24,9 +23,7 @@ from neutron.plugins.hyperv import db as hyperv_db LOG = logging.getLogger(__name__) -class HyperVRpcCallbacks( - n_rpc.RpcCallback, - dhcp_rpc_base.DhcpRpcCallbackMixin): +class HyperVRpcCallbacks(n_rpc.RpcCallback): # history # 1.1 Support Security Group RPC diff --git a/neutron/plugins/linuxbridge/lb_neutron_plugin.py b/neutron/plugins/linuxbridge/lb_neutron_plugin.py index cdc9809ac..b8ff5710d 100644 --- a/neutron/plugins/linuxbridge/lb_neutron_plugin.py +++ b/neutron/plugins/linuxbridge/lb_neutron_plugin.py @@ -20,6 +20,7 @@ from oslo.config import cfg from neutron.agent import securitygroups_rpc as sg_rpc from neutron.api.rpc.agentnotifiers import dhcp_rpc_agent_api from neutron.api.rpc.agentnotifiers import l3_rpc_agent_api +from neutron.api.rpc.handlers import dhcp_rpc from neutron.api.rpc.handlers import l3_rpc from neutron.api.v2 import attributes from neutron.common import constants as q_const @@ -31,7 +32,6 @@ from neutron.db import agents_db from neutron.db import agentschedulers_db from neutron.db import api as db_api from neutron.db import db_base_plugin_v2 -from neutron.db import dhcp_rpc_base from neutron.db import external_net_db from neutron.db import extraroute_db from neutron.db import l3_agentschedulers_db @@ -54,7 +54,6 @@ LOG = logging.getLogger(__name__) class LinuxBridgeRpcCallbacks(n_rpc.RpcCallback, - dhcp_rpc_base.DhcpRpcCallbackMixin, sg_db_rpc.SecurityGroupServerRpcCallbackMixin ): @@ -284,6 +283,7 @@ class LinuxBridgePluginV2(db_base_plugin_v2.NeutronDbPluginV2, svc_constants.L3_ROUTER_NAT: topics.L3PLUGIN} self.conn = n_rpc.create_connection(new=True) self.endpoints = [LinuxBridgeRpcCallbacks(), + dhcp_rpc.DhcpRpcCallback(), l3_rpc.L3RpcCallback(), agents_db.AgentExtRpcCallback()] for svc_topic in self.service_topics.values(): diff --git a/neutron/plugins/midonet/plugin.py b/neutron/plugins/midonet/plugin.py index 4bbbf236d..0df30ad30 100644 --- a/neutron/plugins/midonet/plugin.py +++ b/neutron/plugins/midonet/plugin.py @@ -29,6 +29,7 @@ from oslo.config import cfg from sqlalchemy.orm import exc as sa_exc from webob import exc as w_exc +from neutron.api.rpc.handlers import dhcp_rpc from neutron.api.v2 import attributes from neutron.common import constants from neutron.common import exceptions as n_exc @@ -37,7 +38,6 @@ from neutron.common import topics from neutron.db import agents_db from neutron.db import agentschedulers_db from neutron.db import db_base_plugin_v2 -from neutron.db import dhcp_rpc_base from neutron.db import external_net_db from neutron.db import l3_db from neutron.db import models_v2 @@ -194,11 +194,6 @@ def _check_resource_exists(func, id, name, raise_exc=False): raise MidonetPluginException(msg=exc) -class MidoRpcCallbacks(n_rpc.RpcCallback, - dhcp_rpc_base.DhcpRpcCallbackMixin): - RPC_API_VERSION = '1.1' - - class MidonetPluginException(n_exc.NeutronException): message = _("%(msg)s") @@ -395,7 +390,7 @@ class MidonetPluginV2(db_base_plugin_v2.NeutronDbPluginV2, # RPC support self.topic = topics.PLUGIN self.conn = n_rpc.create_connection(new=True) - self.endpoints = [MidoRpcCallbacks(), + self.endpoints = [dhcp_rpc.DhcpRpcCallback(), agents_db.AgentExtRpcCallback()] self.conn.create_consumer(self.topic, self.endpoints, fanout=False) diff --git a/neutron/plugins/ml2/plugin.py b/neutron/plugins/ml2/plugin.py index 6ab9f246f..66e77bb04 100644 --- a/neutron/plugins/ml2/plugin.py +++ b/neutron/plugins/ml2/plugin.py @@ -23,6 +23,7 @@ from sqlalchemy.orm import exc as sa_exc from neutron.agent import securitygroups_rpc as sg_rpc from neutron.api.rpc.agentnotifiers import dhcp_rpc_agent_api +from neutron.api.rpc.handlers import dhcp_rpc from neutron.api.v2 import attributes from neutron.common import constants as const from neutron.common import exceptions as exc @@ -134,6 +135,7 @@ class Ml2Plugin(db_base_plugin_v2.NeutronDbPluginV2, def start_rpc_listeners(self): self.endpoints = [rpc.RpcCallbacks(self.notifier, self.type_manager), + dhcp_rpc.DhcpRpcCallback(), agents_db.AgentExtRpcCallback()] self.topic = topics.PLUGIN self.conn = n_rpc.create_connection(new=True) diff --git a/neutron/plugins/ml2/rpc.py b/neutron/plugins/ml2/rpc.py index 1da6084a0..8e77e309d 100644 --- a/neutron/plugins/ml2/rpc.py +++ b/neutron/plugins/ml2/rpc.py @@ -20,7 +20,6 @@ from neutron.common import exceptions from neutron.common import rpc as n_rpc from neutron.common import topics from neutron.common import utils -from neutron.db import dhcp_rpc_base from neutron.db import securitygroups_rpc_base as sg_db_rpc from neutron.extensions import portbindings from neutron import manager @@ -40,7 +39,6 @@ TAP_DEVICE_PREFIX_LENGTH = 3 class RpcCallbacks(n_rpc.RpcCallback, - dhcp_rpc_base.DhcpRpcCallbackMixin, dvr_rpc.DVRServerRpcCallbackMixin, sg_db_rpc.SecurityGroupServerRpcCallbackMixin, type_tunnel.TunnelRpcCallbackMixin): diff --git a/neutron/plugins/mlnx/mlnx_plugin.py b/neutron/plugins/mlnx/mlnx_plugin.py index 6b31425ff..ea5a4bc92 100644 --- a/neutron/plugins/mlnx/mlnx_plugin.py +++ b/neutron/plugins/mlnx/mlnx_plugin.py @@ -20,6 +20,7 @@ from oslo.config import cfg from neutron.agent import securitygroups_rpc as sg_rpc from neutron.api.rpc.agentnotifiers import dhcp_rpc_agent_api from neutron.api.rpc.agentnotifiers import l3_rpc_agent_api +from neutron.api.rpc.handlers import dhcp_rpc from neutron.api.rpc.handlers import l3_rpc from neutron.api.v2 import attributes from neutron.common import constants as q_const @@ -121,6 +122,7 @@ class MellanoxEswitchPlugin(db_base_plugin_v2.NeutronDbPluginV2, svc_constants.L3_ROUTER_NAT: topics.L3PLUGIN} self.conn = n_rpc.create_connection(new=True) self.endpoints = [rpc_callbacks.MlnxRpcCallbacks(), + dhcp_rpc.DhcpRpcCallback(), l3_rpc.L3RpcCallback(), agents_db.AgentExtRpcCallback()] for svc_topic in self.service_topics.values(): diff --git a/neutron/plugins/mlnx/rpc_callbacks.py b/neutron/plugins/mlnx/rpc_callbacks.py index f30904e44..9337290fa 100644 --- a/neutron/plugins/mlnx/rpc_callbacks.py +++ b/neutron/plugins/mlnx/rpc_callbacks.py @@ -17,7 +17,6 @@ from oslo.config import cfg from neutron.common import constants as q_const from neutron.common import rpc as n_rpc from neutron.db import api as db_api -from neutron.db import dhcp_rpc_base from neutron.db import securitygroups_rpc_base as sg_db_rpc from neutron.openstack.common import log as logging from neutron.plugins.mlnx.db import mlnx_db_v2 as db @@ -26,7 +25,6 @@ LOG = logging.getLogger(__name__) class MlnxRpcCallbacks(n_rpc.RpcCallback, - dhcp_rpc_base.DhcpRpcCallbackMixin, sg_db_rpc.SecurityGroupServerRpcCallbackMixin): # History # 1.1 Support Security Group RPC diff --git a/neutron/plugins/nec/nec_plugin.py b/neutron/plugins/nec/nec_plugin.py index 7c5f6fe8d..936057ba1 100644 --- a/neutron/plugins/nec/nec_plugin.py +++ b/neutron/plugins/nec/nec_plugin.py @@ -17,6 +17,7 @@ from neutron.agent import securitygroups_rpc as sg_rpc from neutron.api import extensions as neutron_extensions from neutron.api.rpc.agentnotifiers import dhcp_rpc_agent_api +from neutron.api.rpc.handlers import dhcp_rpc from neutron.api.rpc.handlers import l3_rpc from neutron.api.v2 import attributes as attrs from neutron.common import constants as const @@ -27,7 +28,6 @@ from neutron.db import agents_db from neutron.db import agentschedulers_db from neutron.db import allowedaddresspairs_db as addr_pair_db from neutron.db import db_base_plugin_v2 -from neutron.db import dhcp_rpc_base from neutron.db import external_net_db from neutron.db import portbindings_base from neutron.db import portbindings_db @@ -146,7 +146,7 @@ class NECPluginV2(db_base_plugin_v2.NeutronDbPluginV2, self.callback_sg = SecurityGroupServerRpcCallback() self.endpoints = [ NECPluginV2RPCCallbacks(self.safe_reference), - DhcpRpcCallback(), + dhcp_rpc.DhcpRpcCallback(), l3_rpc.L3RpcCallback(), self.callback_sg, agents_db.AgentExtRpcCallback()] @@ -680,12 +680,6 @@ class NECPluginV2AgentNotifierApi(n_rpc.RpcProxy, topic=self.topic_port_update) -class DhcpRpcCallback(n_rpc.RpcCallback, - dhcp_rpc_base.DhcpRpcCallbackMixin): - # DhcpPluginApi BASE_RPC_API_VERSION - RPC_API_VERSION = '1.1' - - class SecurityGroupServerRpcCallback( n_rpc.RpcCallback, sg_db_rpc.SecurityGroupServerRpcCallbackMixin): diff --git a/neutron/plugins/oneconvergence/plugin.py b/neutron/plugins/oneconvergence/plugin.py index d1743a567..b0c0f3e17 100644 --- a/neutron/plugins/oneconvergence/plugin.py +++ b/neutron/plugins/oneconvergence/plugin.py @@ -21,6 +21,7 @@ from oslo.config import cfg from neutron.agent import securitygroups_rpc as sg_rpc from neutron.api.rpc.agentnotifiers import dhcp_rpc_agent_api from neutron.api.rpc.agentnotifiers import l3_rpc_agent_api +from neutron.api.rpc.handlers import dhcp_rpc from neutron.api.rpc.handlers import l3_rpc from neutron.common import constants as q_const from neutron.common import exceptions as nexception @@ -29,7 +30,6 @@ from neutron.common import topics from neutron.db import agents_db from neutron.db import agentschedulers_db from neutron.db import db_base_plugin_v2 -from neutron.db import dhcp_rpc_base from neutron.db import external_net_db from neutron.db import extraroute_db from neutron.db import l3_agentschedulers_db @@ -52,7 +52,6 @@ IPv6 = 6 class NVSDPluginRpcCallbacks(n_rpc.RpcCallback, - dhcp_rpc_base.DhcpRpcCallbackMixin, sg_db_rpc.SecurityGroupServerRpcCallbackMixin): RPC_API_VERSION = '1.1' @@ -161,6 +160,7 @@ class OneConvergencePluginV2(db_base_plugin_v2.NeutronDbPluginV2, l3_rpc_agent_api.L3AgentNotifyAPI() ) self.endpoints = [NVSDPluginRpcCallbacks(), + dhcp_rpc.DhcpRpcCallback(), l3_rpc.L3RpcCallback(), agents_db.AgentExtRpcCallback()] for svc_topic in self.service_topics.values(): diff --git a/neutron/plugins/openvswitch/ovs_neutron_plugin.py b/neutron/plugins/openvswitch/ovs_neutron_plugin.py index ca3a4e9b7..f72a82e36 100644 --- a/neutron/plugins/openvswitch/ovs_neutron_plugin.py +++ b/neutron/plugins/openvswitch/ovs_neutron_plugin.py @@ -20,6 +20,7 @@ from oslo.config import cfg from neutron.agent import securitygroups_rpc as sg_rpc from neutron.api.rpc.agentnotifiers import dhcp_rpc_agent_api from neutron.api.rpc.agentnotifiers import l3_rpc_agent_api +from neutron.api.rpc.handlers import dhcp_rpc from neutron.api.rpc.handlers import l3_rpc from neutron.api.v2 import attributes from neutron.common import constants as q_const @@ -31,7 +32,6 @@ from neutron.db import agents_db from neutron.db import agentschedulers_db from neutron.db import allowedaddresspairs_db as addr_pair_db from neutron.db import db_base_plugin_v2 -from neutron.db import dhcp_rpc_base from neutron.db import external_net_db from neutron.db import extradhcpopt_db from neutron.db import extraroute_db @@ -59,7 +59,6 @@ LOG = logging.getLogger(__name__) class OVSRpcCallbacks(n_rpc.RpcCallback, - dhcp_rpc_base.DhcpRpcCallbackMixin, sg_db_rpc.SecurityGroupServerRpcCallbackMixin): # history @@ -345,6 +344,7 @@ class OVSNeutronPluginV2(db_base_plugin_v2.NeutronDbPluginV2, l3_rpc_agent_api.L3AgentNotifyAPI() ) self.endpoints = [OVSRpcCallbacks(self.notifier, self.tunnel_type), + dhcp_rpc.DhcpRpcCallback(), l3_rpc.L3RpcCallback(), agents_db.AgentExtRpcCallback()] for svc_topic in self.service_topics.values(): diff --git a/neutron/plugins/ryu/ryu_neutron_plugin.py b/neutron/plugins/ryu/ryu_neutron_plugin.py index 68baa3388..cb6ee8780 100644 --- a/neutron/plugins/ryu/ryu_neutron_plugin.py +++ b/neutron/plugins/ryu/ryu_neutron_plugin.py @@ -20,6 +20,7 @@ from ryu.app import client from ryu.app import rest_nw_id from neutron.agent import securitygroups_rpc as sg_rpc +from neutron.api.rpc.handlers import dhcp_rpc from neutron.api.rpc.handlers import l3_rpc from neutron.common import constants as q_const from neutron.common import exceptions as n_exc @@ -27,7 +28,6 @@ from neutron.common import rpc as n_rpc from neutron.common import topics from neutron.db import api as db from neutron.db import db_base_plugin_v2 -from neutron.db import dhcp_rpc_base from neutron.db import external_net_db from neutron.db import extraroute_db from neutron.db import l3_gwmode_db @@ -46,7 +46,6 @@ LOG = logging.getLogger(__name__) class RyuRpcCallbacks(n_rpc.RpcCallback, - dhcp_rpc_base.DhcpRpcCallbackMixin, sg_db_rpc.SecurityGroupServerRpcCallbackMixin): RPC_API_VERSION = '1.1' @@ -139,6 +138,7 @@ class RyuNeutronPluginV2(db_base_plugin_v2.NeutronDbPluginV2, self.conn = n_rpc.create_connection(new=True) self.notifier = AgentNotifierApi(topics.AGENT) self.endpoints = [RyuRpcCallbacks(self.ofp_api_host), + dhcp_rpc.DhcpRpcCallback(), l3_rpc.L3RpcCallback()] for svc_topic in self.service_topics.values(): self.conn.create_consumer(svc_topic, self.endpoints, fanout=False) diff --git a/neutron/plugins/vmware/dhcp_meta/rpc.py b/neutron/plugins/vmware/dhcp_meta/rpc.py index e4e06134b..ba68cef00 100644 --- a/neutron/plugins/vmware/dhcp_meta/rpc.py +++ b/neutron/plugins/vmware/dhcp_meta/rpc.py @@ -22,9 +22,7 @@ from neutron.api.rpc.agentnotifiers import dhcp_rpc_agent_api from neutron.api.v2 import attributes from neutron.common import constants as const from neutron.common import exceptions as ntn_exc -from neutron.common import rpc as n_rpc from neutron.db import db_base_plugin_v2 -from neutron.db import dhcp_rpc_base from neutron.db import l3_db from neutron.db import models_v2 from neutron.openstack.common import log as logging @@ -40,12 +38,6 @@ METADATA_GATEWAY_IP = '169.254.169.253' METADATA_DHCP_ROUTE = '169.254.169.254/32' -class NSXRpcCallbacks(n_rpc.RpcCallback, - dhcp_rpc_base.DhcpRpcCallbackMixin): - - RPC_API_VERSION = '1.1' - - def handle_network_dhcp_access(plugin, context, network, action): pass diff --git a/neutron/plugins/vmware/dhcpmeta_modes.py b/neutron/plugins/vmware/dhcpmeta_modes.py index 6312700b7..7832c36aa 100644 --- a/neutron/plugins/vmware/dhcpmeta_modes.py +++ b/neutron/plugins/vmware/dhcpmeta_modes.py @@ -18,6 +18,7 @@ from oslo.config import cfg from neutron.api.rpc.agentnotifiers import dhcp_rpc_agent_api +from neutron.api.rpc.handlers import dhcp_rpc from neutron.common import constants as const from neutron.common import rpc as n_rpc from neutron.common import topics @@ -71,7 +72,7 @@ class DhcpMetadataAccess(object): def _setup_rpc_dhcp_metadata(self, notifier=None): self.topic = topics.PLUGIN self.conn = n_rpc.create_connection(new=True) - self.endpoints = [nsx_rpc.NSXRpcCallbacks(), + self.endpoints = [dhcp_rpc.DhcpRpcCallback(), agents_db.AgentExtRpcCallback()] self.conn.create_consumer(self.topic, self.endpoints, fanout=False) self.agent_notifiers[const.AGENT_TYPE_DHCP] = ( diff --git a/neutron/tests/unit/openvswitch/test_agent_scheduler.py b/neutron/tests/unit/openvswitch/test_agent_scheduler.py index f8641e0cb..0bdd2737d 100644 --- a/neutron/tests/unit/openvswitch/test_agent_scheduler.py +++ b/neutron/tests/unit/openvswitch/test_agent_scheduler.py @@ -23,12 +23,12 @@ from webob import exc from neutron.api import extensions from neutron.api.rpc.agentnotifiers import dhcp_rpc_agent_api +from neutron.api.rpc.handlers import dhcp_rpc from neutron.api.rpc.handlers import l3_rpc from neutron.api.v2 import attributes from neutron.common import constants from neutron import context from neutron.db import agents_db -from neutron.db import dhcp_rpc_base from neutron.db import l3_agentschedulers_db from neutron.extensions import agent from neutron.extensions import dhcpagentscheduler @@ -263,16 +263,16 @@ class OvsAgentSchedulerTestCase(OvsAgentSchedulerTestCaseBase): cfg.CONF.set_override('allow_overlapping_ips', True) with contextlib.nested(self.subnet(), self.subnet()): - dhcp_rpc = dhcp_rpc_base.DhcpRpcCallbackMixin() + dhcp_rpc_cb = dhcp_rpc.DhcpRpcCallback() self._register_agent_states() hosta_id = self._get_agent_id(constants.AGENT_TYPE_DHCP, DHCP_HOSTA) hostc_id = self._get_agent_id(constants.AGENT_TYPE_DHCP, DHCP_HOSTC) self._disable_agent(hosta_id) - dhcp_rpc.get_active_networks(self.adminContext, host=DHCP_HOSTA) + dhcp_rpc_cb.get_active_networks(self.adminContext, host=DHCP_HOSTA) # second agent will host all the networks since first is disabled. - dhcp_rpc.get_active_networks(self.adminContext, host=DHCP_HOSTC) + dhcp_rpc_cb.get_active_networks(self.adminContext, host=DHCP_HOSTC) networks = self._list_networks_hosted_by_dhcp_agent(hostc_id) num_hostc_nets = len(networks['networks']) networks = self._list_networks_hosted_by_dhcp_agent(hosta_id) @@ -284,15 +284,15 @@ class OvsAgentSchedulerTestCase(OvsAgentSchedulerTestCaseBase): cfg.CONF.set_override('allow_overlapping_ips', True) with contextlib.nested(self.subnet(enable_dhcp=False), self.subnet(enable_dhcp=False)): - dhcp_rpc = dhcp_rpc_base.DhcpRpcCallbackMixin() + dhcp_rpc_cb = dhcp_rpc.DhcpRpcCallback() self._register_agent_states() hosta_id = self._get_agent_id(constants.AGENT_TYPE_DHCP, DHCP_HOSTA) hostc_id = self._get_agent_id(constants.AGENT_TYPE_DHCP, DHCP_HOSTC) self._disable_agent(hosta_id) - dhcp_rpc.get_active_networks(self.adminContext, host=DHCP_HOSTA) - dhcp_rpc.get_active_networks(self.adminContext, host=DHCP_HOSTC) + dhcp_rpc_cb.get_active_networks(self.adminContext, host=DHCP_HOSTA) + dhcp_rpc_cb.get_active_networks(self.adminContext, host=DHCP_HOSTC) networks = self._list_networks_hosted_by_dhcp_agent(hostc_id) num_hostc_nets = len(networks['networks']) networks = self._list_networks_hosted_by_dhcp_agent(hosta_id) @@ -305,14 +305,14 @@ class OvsAgentSchedulerTestCase(OvsAgentSchedulerTestCaseBase): cfg.CONF.set_override('allow_overlapping_ips', True) with contextlib.nested(self.subnet(), self.subnet()): - dhcp_rpc = dhcp_rpc_base.DhcpRpcCallbackMixin() + dhcp_rpc_cb = dhcp_rpc.DhcpRpcCallback() self._register_agent_states() hosta_id = self._get_agent_id(constants.AGENT_TYPE_DHCP, DHCP_HOSTA) hostc_id = self._get_agent_id(constants.AGENT_TYPE_DHCP, DHCP_HOSTC) - dhcp_rpc.get_active_networks(self.adminContext, host=DHCP_HOSTA) - dhcp_rpc.get_active_networks(self.adminContext, host=DHCP_HOSTC) + dhcp_rpc_cb.get_active_networks(self.adminContext, host=DHCP_HOSTA) + dhcp_rpc_cb.get_active_networks(self.adminContext, host=DHCP_HOSTC) networks = self._list_networks_hosted_by_dhcp_agent(hostc_id) num_hostc_nets = len(networks['networks']) networks = self._list_networks_hosted_by_dhcp_agent(hosta_id) @@ -323,10 +323,10 @@ class OvsAgentSchedulerTestCase(OvsAgentSchedulerTestCaseBase): def test_network_auto_schedule_restart_dhcp_agent(self): cfg.CONF.set_override('dhcp_agents_per_network', 2) with self.subnet() as sub1: - dhcp_rpc = dhcp_rpc_base.DhcpRpcCallbackMixin() + dhcp_rpc_cb = dhcp_rpc.DhcpRpcCallback() self._register_agent_states() - dhcp_rpc.get_active_networks(self.adminContext, host=DHCP_HOSTA) - dhcp_rpc.get_active_networks(self.adminContext, host=DHCP_HOSTA) + dhcp_rpc_cb.get_active_networks(self.adminContext, host=DHCP_HOSTA) + dhcp_rpc_cb.get_active_networks(self.adminContext, host=DHCP_HOSTA) dhcp_agents = self._list_dhcp_agents_hosting_network( sub1['subnet']['network_id']) self.assertEqual(1, len(dhcp_agents['agents'])) @@ -336,11 +336,11 @@ class OvsAgentSchedulerTestCase(OvsAgentSchedulerTestCaseBase): cfg.CONF.set_override('allow_overlapping_ips', True) with contextlib.nested(self.subnet(), self.subnet()) as (sub1, sub2): - dhcp_rpc = dhcp_rpc_base.DhcpRpcCallbackMixin() + dhcp_rpc_cb = dhcp_rpc.DhcpRpcCallback() self._register_agent_states() - dhcp_rpc.get_active_networks(self.adminContext, host=DHCP_HOSTA) + dhcp_rpc_cb.get_active_networks(self.adminContext, host=DHCP_HOSTA) # second agent will not host the network since first has got it. - dhcp_rpc.get_active_networks(self.adminContext, host=DHCP_HOSTC) + dhcp_rpc_cb.get_active_networks(self.adminContext, host=DHCP_HOSTC) dhcp_agents = self._list_dhcp_agents_hosting_network( sub1['subnet']['network_id']) hosta_id = self._get_agent_id(constants.AGENT_TYPE_DHCP, @@ -359,7 +359,7 @@ class OvsAgentSchedulerTestCase(OvsAgentSchedulerTestCaseBase): def test_network_auto_schedule_with_hosted_2(self): # one agent hosts one network - dhcp_rpc = dhcp_rpc_base.DhcpRpcCallbackMixin() + dhcp_rpc_cb = dhcp_rpc.DhcpRpcCallback() dhcp_hosta = { 'binary': 'neutron-dhcp-agent', 'host': DHCP_HOSTA, @@ -373,13 +373,13 @@ class OvsAgentSchedulerTestCase(OvsAgentSchedulerTestCaseBase): cfg.CONF.set_override('allow_overlapping_ips', True) with self.subnet() as sub1: self._register_one_agent_state(dhcp_hosta) - dhcp_rpc.get_active_networks(self.adminContext, host=DHCP_HOSTA) + dhcp_rpc_cb.get_active_networks(self.adminContext, host=DHCP_HOSTA) hosta_id = self._get_agent_id(constants.AGENT_TYPE_DHCP, DHCP_HOSTA) self._disable_agent(hosta_id, admin_state_up=False) with self.subnet() as sub2: self._register_one_agent_state(dhcp_hostc) - dhcp_rpc.get_active_networks(self.adminContext, + dhcp_rpc_cb.get_active_networks(self.adminContext, host=DHCP_HOSTC) dhcp_agents_1 = self._list_dhcp_agents_hosting_network( sub1['subnet']['network_id']) diff --git a/neutron/tests/unit/test_db_rpc_base.py b/neutron/tests/unit/test_dhcp_rpc.py similarity index 97% rename from neutron/tests/unit/test_db_rpc_base.py rename to neutron/tests/unit/test_dhcp_rpc.py index 9e0f70d71..6a2ed16d7 100644 --- a/neutron/tests/unit/test_db_rpc_base.py +++ b/neutron/tests/unit/test_dhcp_rpc.py @@ -16,22 +16,22 @@ import mock from oslo.db import exception as db_exc +from neutron.api.rpc.handlers import dhcp_rpc from neutron.common import constants from neutron.common import exceptions as n_exc -from neutron.db import dhcp_rpc_base from neutron.tests import base -class TestDhcpRpcCallbackMixin(base.BaseTestCase): +class TestDhcpRpcCallback(base.BaseTestCase): def setUp(self): - super(TestDhcpRpcCallbackMixin, self).setUp() + super(TestDhcpRpcCallback, self).setUp() self.plugin_p = mock.patch('neutron.manager.NeutronManager.get_plugin') get_plugin = self.plugin_p.start() self.plugin = mock.MagicMock() get_plugin.return_value = self.plugin - self.callbacks = dhcp_rpc_base.DhcpRpcCallbackMixin() - self.log_p = mock.patch('neutron.db.dhcp_rpc_base.LOG') + self.callbacks = dhcp_rpc.DhcpRpcCallback() + self.log_p = mock.patch('neutron.api.rpc.handlers.dhcp_rpc.LOG') self.log = self.log_p.start() def test_get_active_networks(self):