class TunnelRpcCallbackMixin(object):
- def __init__(self, notifier, type_manager):
- self.notifier = notifier
- self.type_manager = type_manager
+ def setup_tunnel_callback_mixin(self, notifier, type_manager):
+ self._notifier = notifier
+ self._type_manager = type_manager
def tunnel_sync(self, rpc_context, **kwargs):
"""Update new tunnel.
if not tunnel_type:
msg = _("Network_type value needed by the ML2 plugin")
raise exc.InvalidInput(error_message=msg)
- driver = self.type_manager.drivers.get(tunnel_type)
+ driver = self._type_manager.drivers.get(tunnel_type)
if driver:
tunnel = driver.obj.add_endpoint(tunnel_ip)
tunnels = driver.obj.get_endpoints()
entry = {'tunnels': tunnels}
# Notify all other listening agents
- self.notifier.tunnel_update(rpc_context, tunnel.ip_address,
- tunnel_type)
+ self._notifier.tunnel_update(rpc_context, tunnel.ip_address,
+ tunnel_type)
# Return the list of tunnels IP's to the agent
return entry
else:
# License for the specific language governing permissions and limitations
# under the License.
-from oslo import messaging
-
from neutron.agent import securitygroups_rpc as sg_rpc
from neutron.common import constants as q_const
from neutron.common import rpc as n_rpc
TAP_DEVICE_PREFIX_LENGTH = 3
-class RpcCallbacks(dhcp_rpc_base.DhcpRpcCallbackMixin,
+class RpcCallbacks(n_rpc.RpcCallback,
+ dhcp_rpc_base.DhcpRpcCallbackMixin,
sg_db_rpc.SecurityGroupServerRpcCallbackMixin,
type_tunnel.TunnelRpcCallbackMixin):
# 1.0 Initial version (from openvswitch/linuxbridge)
# 1.1 Support Security Group RPC
- # FIXME(ihrachys): we can't use n_rpc.RpcCallback here due to
- # inheritance problems
- target = messaging.Target(version=RPC_API_VERSION)
-
def __init__(self, notifier, type_manager):
- # REVISIT(kmestery): This depends on the first three super classes
- # not having their own __init__ functions. If an __init__() is added
- # to one, this could break. Fix this and add a unit test to cover this
- # test in H3.
- super(RpcCallbacks, self).__init__(notifier, type_manager)
+ self.setup_tunnel_callback_mixin(notifier, type_manager)
+ super(RpcCallbacks, self).__init__()
@classmethod
def _device_to_port_id(cls, device):