[openstack-dev] [OSLO][RPC] AMQP / ZeroMQ control_exchange vs port numbers

Ray Pekowski pekowski at gmail.com
Thu Apr 25 16:07:34 UTC 2013


I'm not fully following this discussion, but have an idea for cross project
RPC that has been on the back of my mind for a while.  The idea is to
define an RPC class that behaves differently based upon an input config
file, basically a nova.conf file.  That way there could be a nova.conf for
each project that you want to send RPCs to.  The passed in config file
would specify the implementation, the port numbers, the topic names as
today, but they can be different for each instance of the RPC object.  The
RPC API would remain untouched.

This could be done by adding to the config file name to the __init__ method
of the RpcProxy class in openstack/common/rpc/proxy.py.  The __init__
method could create a _rpcimpl instance variable with the loaded method
names imported using the same technique as the _get_impl method does in
__init__.py.

Then, the usage of rpc.call(), for example, in the RpcProxy class would be
replaced with self._rpcimpl.call().

Cross project RPC would simply be an instantiation of an RPC object for the
given project as identified by a config file and then usage of that object.

I believe several other things would have to be worked out in the RPC
modules (amqp, kombu, qpid, zmq) to make sure the appropriate config file
object were accessed.  And perhaps the nova/openstack/common/cfg module
would have be made to allow the instantiation of different objects based
upon a config file name input.

Half baked idea, I know, but maybe worth considering.

Ray
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20130425/1b0df1f1/attachment.html>


More information about the OpenStack-dev mailing list