[openstack-dev] [Oslo][Messaging] Do we really need transport_url parameter?
Doug Hellmann
doug.hellmann at dreamhost.com
Tue May 21 11:02:46 UTC 2013
On Tue, May 21, 2013 at 3: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.
>
>
> More complex drivers will, most likely, have to specify custom
>> options
>> anyway, I doubt we'll be able to completely get rid of those. My
>> concern is that those "more complex" drivers will have to create a
>> custom connection url - comma separate netlocs for qpid's case for
>> example - which, IMHO, makes the implementation less cleaner and
>> deployers will have to know how to encode that URL with the accepted
>> parameters anyway.
>>
>> Yes, I agree, that's a problem we need to solve. I haven't done an
>> exhaustive analysis, but it seems like anything set in an individual
>> option now could potentially be made a query parameter. I could see
>> some of the drivers that have required settings using the "path" in the
>> URL for those. For example, an rabbit URL might look like:
>>
>> rabbitmq://user:password@host:**port/exchange?param_only_**
>> rabbit_uses=valu
>> e
>> QPid might do something like:
>>
>> qpid://user:password@primary_**host:port/exchange?alternate_**
>> host=ip&alter
>> nate_host=ip
>> or
>> qpid://user:password@primary_**host:port/exchange?alternate_**
>> host=ip,ip
>>
>
> Makes sense, I was also thinking about:
>
> qpid://user:passwd@host1:**port1,host2:port2,host3:port3/**
> exchange?option=val
>
> The above is basically how mongodb uris work. I like the fact that the
> whole comma-separate list of hosts is part of the netloc so that real
> options can be part of the query params. I guess this could be
> discussed in a separate thread, we might find a common format that
> covers most drivers.
I was just making up those examples, so if there is prior art we should
definitely take our lead from that.
Doug
>
>
> This is very similar to the way we're already specifying the storage
>> settings in ceilometer.
>> If there are driver-specific parameters that control how the driver
>> works but not where it talks (timeouts, etc.) those could conceivably
>> be kept as separate options. I would prefer, though, that drivers not
>> define options at all because it introduces a dependency between the
>> driver and the config library that isn't really necessary.
>>
>
> Agreed.
>
> Thanks for clarifying the need of the transport_url.
>
> Cheers,
>
> FF
>
> --
> { name: "Flavio Percoco",
> gpg: "87112EC1", internal: "8261386",
> phone: "+390687502386",
> irc: ["fpercoco", "flaper87"]}
>
> ______________________________**_________________
> OpenStack-dev mailing list
> OpenStack-dev at lists.openstack.**org <OpenStack-dev at lists.openstack.org>
> http://lists.openstack.org/**cgi-bin/mailman/listinfo/**openstack-dev<http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20130521/ea3d5743/attachment.html>
More information about the OpenStack-dev
mailing list