On 29 October 2013 16:11, Eddie Sheffield <eddie.sheffi...@rackspace.com> wrote:
>
> "John Garbutt" <j...@johngarbutt.com> said:
>
>> Going back to Joe's comment:
>>> Can both of these cases be covered by configuring the keystone catalog?
>> +1
>>
>> If both v1 and v2 are present, pick v2, otherwise just pick what is in
>> the catalogue. That seems cool. Not quite sure how the multiple glance
>> endpoints works in the keystone catalog, but should work I assume.
>>
>> We hard code nova right now, and so we probably want to keep that route too?
>
> Nova doesn't use the catalog from Keystone when talking to Glance. There is a 
> config value "glance_api_servers" which defines a list of Glance servers that 
> gets randomized and cycled through. I assume that's what you're referring to 
> with "we hard code nova." But currently there's nowhere in this path 
> (internal nova to glance) where the keystone catalog is available.

Yes. I was not very clear. I am proposing we change that. We could try
shoehorn the multiple glance nodes in the keystone catalog, then cache
that in the context, but maybe that doesn't make sense. This is a
separate change really.

But clearly, we can't drop the direct configuration of glance servers
for some time either.

> I think some of the confusion may be that Glanceclient at the programmatic 
> client level doesn't talk to keystone. That happens happens higher in the CLI 
> level which doesn't come into play here.
>
>> From: "Russell Bryant" <rbry...@redhat.com>
>>> On 10/17/2013 03:12 PM, Eddie Sheffield wrote:
>>>> Might I propose a compromise?
>>>>
>>>> 1) For the VERY short term, keep the config value and get the change 
>>>> otherwise
>>>> reviewed and hopefully accepted.
>>>>
>>>> 2) Immediately file two blueprints:
>>>>    - python-glanceclient - expose a way to discover available versions
>>>>    - nova - depends on the glanceclient bp and allowing autodiscovery of 
>>>> glance
>>>> version
>>>>             and making the config value optional (tho not deprecated / 
>>>> removed)
>>>
>>> Supporting both seems reasonable.  At least then *most* people don't
>>> need to worry about it and it "just works", but the override is there if
>>> necessary, since multiple people seem to be expressing a desire to have
>>> it available.
>>
>> +1
>>
>>> Can we just do this all at once?  Adding this to glanceclient doesn't
>>> seem like a huge task.
>>
>> I worry about us never getting the full solution, but it seems to have
>> got complicated.
>
> The glanceclient side is done, as far as allowing access to the list of 
> available API versions on a given server. It's getting Nova to use this info 
> that's a bit sticky.

Hmm, OK. Could we not just cache the detected version, to reduce the
impact of that decision.

>> On 28 October 2013 15:13, Eddie Sheffield <eddie.sheffi...@rackspace.com> 
>> wrote:
>>> So...I've been working on this some more and hit a bit of a snag. The
>>> Glanceclient change was easy, but I see now that doing this in nova will 
>>> require
>>> a pretty huge change in the way things work. Currently, the API version is
>>> grabbed from the config value, the appropriate driver is instantiated, and 
>>> calls
>>> go through that. The problem comes in that the actually glance server isn't
>>> communicated with until very late in the process. Nothing "sees" the 
>>> servers at
>>> the level where the driver is determined. Also there isn't a single glance 
>>> server
>>> but a list of them, and in the even of certain communication failures the 
>>> list is
>>> cycled through until success or a number of retries has passed.
>>>
>>> So to change this to auto configuring will require turning this upside down,
>>> cycling through the servers at a higher level, choosing the appropriate 
>>> driver
>>> for that server, and handling retries at that same level.
>>>
>>> Doable, but a much larger task than I first was thinking.
>>>
>>> Also, I don't really want the added overhead of getting the api versions 
>>> before
>>> every call, so I'm thinking that going through the list of servers at 
>>> startup and
>>> discovering the versions then and caching that somehow would be helpful as 
>>> well.
>>>
>>> Thoughts?
>>
>> I do worry about that overhead. But with Joe's comment, does it not
>> just boil down to caching the keystone catalog in the context?
>>
>> I am not a fan of all the specific talk to glance code we have in
>> nova, moving more of that into glanceclient can only be a good thing.
>> For the XenServer itegration, for efficiency reasons, we need glance
>> to talk from dom0, so it has dom0 making the final HTTP call. So we
>> would need a way of extracting that info from the glance client. But
>> that seems better than having that code in nova.
>
> I know in Glance we've largely taken the view that the client should be as 
> thin and lightweight as possible so users of the client can make use of it 
> however they best see fit. There was an earlier patch that would have moved 
> the whole image service layer into glanceclient that was rejected. So I think 
> there is a division in philosophies here as well

Hmm, I would be a fan of supporting both use cases, "nova style" and
more complex. Just seems better for glance to own as much as possible
of the glance client-like code. But I am a nova guy, I would say that!
Anyway, that's a different conversation.

John

_______________________________________________
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

Reply via email to