[openstack-dev] Client library consistency

Steve Baker sbaker at redhat.com
Mon Nov 12 03:18:53 UTC 2012


On 11/12/2012 01:00 PM, heckj wrote:
> Welcome to the client consolidation bandwagon :-)
I shall hitch my wagon and sharpen my yak shaving clippers.

> We started on sorting some of this in the summit before last, and 
> while we didn't make as much progress as we'd like, Dean and Doug did 
> excellent work on getting to some common agreement on how the flows 
> should work, documenting those out, and normalizing the CLI patterns. 
> At this past summit, we reconvened and agreed it all still needs work. 
> See: https://launchpad.net/python-openstackclient for the launchpad 
> project that we've been using to track and consolidate the progress on 
> this kind of effort.
I'm aware of python-openstackclient, although it seems to be a unified 
CLI rather than a unified client library. python-openstackclient is like 
Heat and Horizon in that it consumes all the client libs and would 
benefit from them being consistent.

Having said that, I look forward to integrating python-heatclient when 
momentum picks up again.

> Also immediately check out http://wiki.openstack.org/UnifiedCLI, and 
> http://wiki.openstack.org/UnifiedCLI/Authentication which document 
> exactly what you're talking about.
This is still more CLI than library. The client CLIs probably do a 
better job of conforming to 
http://wiki.openstack.org/UnifiedCLI/Authentication, then they all do 
their own thing when initializing their connection object, then they all 
end up making the same correct keystone calls. Its the bit in the middle 
I'd like to fix.

> Keystone also just landed some large updates into the trunk of 
> keystoneclient that should make it much easier to use as well - and to 
> be usable by other clients. Glanceclient was the first to start using 
> keystoneclient to deal with the auth pieces under the covers, and on 
> learning how much of a pain that was, I started working on the client 
> changes that just landed. (those changes haven't yet been released)
>
> My goal is to do an updated release of the keystoneclient library, and 
> then start using it from within the other openstack python client 
> libraries to consolidate how authentication and authorization is done, 
> at least to keep it all consistent.
>
> I would very much appreciate feedback on the keystoneclient to get it 
> to where it can be easily used from other clients. With the updates to 
> keystoneclient, we also updated the method docstrings to hopefully 
> make it much more clear how to use the client.

OK, I'll keep an eye on these changes as they land. It still looks like 
clients will be stuck with a backwards compatibility issue when moving 
to doing things the right way. Would not a deprecation shim still be 
useful in this case?

cheers




More information about the OpenStack-dev mailing list