[openstack-dev] [Oslo][Messaging] Do we really need transport_url parameter?

Chris Behrens cbehrens at codestud.com
Tue May 21 08:33:11 UTC 2013


On May 21, 2013, at 12:25 AM, Flavio Percoco <flavio at redhat.com> wrote:

> On 20/05/13 17:47 -0400, Doug Hellmann wrote:
>>  On Mon, May 20, 2013 at 4:45 PM, Flavio Percoco <[1]flavio at redhat.com>
>>  wrote:
>> 
>> 
>>  A single conf instance does not solve the problem of connecting to
>>  multiple transports that need different configurations. For example, in
>>  ceilometer, we listen to notifications on the exchanges for all of the
>>  other projects. Right now we create separate connections where only the
>>  exchange varies. However, we would prefer for ceilometer not to know
>>  that exchanges are a meaningful concept to the driver at all, since
>>  they *aren't* for some drivers. In the case of cells, the IP where the
>>  exchange is located also changes (assuming each cell has its own
>>  rabbit/qpid cluster). That might be the case for ceilometer, as well,
>>  if a single ceilometer cluster is being used to collect data about
>>  several cells (or even deployments).
> 
> Oh, this changes my perspective. The transport_url is indeed useful
> for having multiple transports connected to different backends. I
> wasn't thinking about that use case, thanks for pointing it out.

In addition to Doug's needs, I have a big need for this for compute cells communication in nova.  Cells communicate with each other via RPC (actually, the communication mechanism is pluggable, but the only implementation right now is RPC).  Each cell has their own rabbit server.  Cell 1 talks to Cell 2 by putting a message into Cell 2's rabbit server.  This means that the RPC API relying on CONF values does not work, because the CONF values specify the connection information for the *current* cell.  ATM, I'm using a rather hacky method to bypass this:  the cast_to_server() and fanout_cast_to_server() methods.  They allow passing in rabbit connection information to override the CONF values…. though it's currently hacked to only work with kombu (and maybe quid).

In order to clean this up, I really need to be able to instantiate a class, passing in the desired connection information.

- Chris




More information about the OpenStack-dev mailing list