Create SecurityGroupServerRpcApi and add some docs

Create SecurityGroupServerRpcApi, which is intended to replace
SecurityGroupServerRpcApiMixin over time.  The new class is the same
code, but used as a standalone class.  This is needed to be able to
eventually move this API into a messaging namespace.

In passing, add docstrings that show where to find the corresponding
other side of this interface in the code base.

Part of blueprint rpc-docs-and-namespaces.

Change-Id: If959b2f8bf21b4963bf6876a3eedc0a4b06c6400
This commit is contained in:
Russell Bryant 2015-01-13 13:06:44 -05:00
parent dff738d028
commit 8364c03d10
3 changed files with 31 additions and 2 deletions

View File

@ -34,7 +34,7 @@ running on the compute nodes, and modifying the IPTables rules on each hyperviso
* `Agent RPC classes <https://github.com/openstack/neutron/blob/master/neutron/agent/securitygroups_rpc.py>`_
* The SecurityGroupServerRpcApiMixin defines the API methods that can be called by agents, back to the plugin that runs on the Neutron controller
* The SecurityGroupServerRpcApi defines the API methods that can be called by agents, back to the plugin that runs on the Neutron controller
* The SecurityGroupAgentRpcCallbackMixin defines methods that a plugin uses to call back to an agent after performing an action called by an agent.

View File

@ -21,6 +21,7 @@ from oslo import messaging
from oslo.utils import importutils
from neutron.agent import firewall
from neutron.common import rpc as n_rpc
from neutron.common import topics
from neutron.i18n import _LI, _LW
from neutron.openstack.common import log as logging
@ -101,6 +102,28 @@ class SecurityGroupServerRpcApiMixin(object):
devices=devices)
# NOTE(russellb) This class currently serves as a transition point as the code
# base is migrated away from using the Mixin class. Once the mixin usage is
# removed, the body of the mixin will be folded into this class. This class
# must become standalone before we can move this API into a messaging
# namespace. For more info on why this should be put in a namespace, see
# http://specs.openstack.org/openstack/neutron-specs/
# specs/kilo/rpc-docs-and-namespaces.html
class SecurityGroupServerRpcApi(SecurityGroupServerRpcApiMixin):
"""RPC client for security group methods in the plugin.
This class implements the client side of an rpc interface. This interface
is used by agents to call security group related methods implemented on the
plugin side. The other side of this interface can be found in
neutron.api.rpc.handlers.SecurityGroupServerRpcCallback. For more
information about changing rpc interfaces, see
doc/source/devref/rpc_api.rst.
"""
def __init__(self, topic):
target = messaging.Target(topic=topic, version='1.0')
self.client = n_rpc.get_client(target)
class SecurityGroupAgentRpcCallbackMixin(object):
"""A mix-in that enable SecurityGroup agent
support in agent implementations.

View File

@ -22,7 +22,13 @@ from neutron import manager
class SecurityGroupServerRpcCallback(object):
"""Callback for SecurityGroup agent RPC in plugin implementations."""
"""Callback for SecurityGroup agent RPC in plugin implementations.
This class implements the server side of an rpc interface. The client side
can be found in neutron.agent.securitygroups_rpc.SecurityGroupServerRpcApi.
For more information on changing rpc interfaces, see
doc/source/devref/rpc_api.rst.
"""
# API version history:
# 1.1 - Initial version