Python OpenStack SDK does not return Hypervisor hostname

Monty Taylor mordred at inaugust.com
Thu Jun 25 15:47:06 UTC 2020



> On Jun 25, 2020, at 10:43 AM, Sean Mooney <smooney at redhat.com> wrote:
> 
> On Thu, 2020-06-25 at 08:50 -0500, Monty Taylor wrote:
>>> I’ll get up a patch in just a sec.
>> 
>> https://review.opendev.org/738026 Provide hypervisor_hostname in Hypervisor object
>> 
>> Should do the trick.
>> 
>>> 
>>>> 
>>>> im not sure  if ths is something that can be fix and how widespread the problemn is but really the upstream names
>>>> from
>>>> the api responce should also work IMO and this seams like an sdk bug to me.
>> 
>> In this case it’s pretty easy and seems like a good idea to provide both.
>> 
>> That said - there are MANY places in SDK where we rename upstream names. Sometimes it’s because upstream names are
>> impossible to represent in attribute names ("os-extended-volumes:volumes_attached”)  Sometimes it’s because of
>> confusing REST naming inconsistencies (hostId vs host_status). Sometimes it’s just to keep things consistent across
>> services for SDK users (boolean flags are all verb-prefixed, so it’s is_locked and has_config_drive)
>> 
>> In general, the SDK has an API. It goes well out of its way to make sure that api works across releases and across
>> services. That API may not always match the REST API for a given version of a different service, and not matching is
>> frequently a conscious choice.
>> 
>> But that’s just for context - in this case I think it’s more than reasonable to provide hypervisor_hostname on the
>> Hypervisor resource object.
> 
> ya i was expecting that to be the case. i was debating internal if it would make sense to alter the __getitem__ fucntion

I am certain that everyone would love reviewing more magic in getitem :)

> so that if it does not find the atibute directly on the reouse it waould fall back to looking it up in the body ectra.
> that said i see the other point of view that you want to provide a consitent api so maybe instead of 
> just raising an generic AtributeError we coudl raise a subclass of that which had a more descriptive massage
> to make peopel aware of it.

Ooh - that’s an excellent idea!

> even without looking at the sdk closely before i found it really easy to more or less figured out why that error
> happened. so with a little python knolage and knowing what repo to look at it was not hard to figure out what
> was going on even with the generic message but other might find it useful.
> 
> 




More information about the openstack-discuss mailing list