[openstack-dev] usability anti-pattern
Monty Taylor
mordred at inaugust.com
Sat Sep 20 01:52:46 UTC 2014
Hey,
Not to name names, but some of our client libs do this:
client.Client(API_VERSION, os_username, ... )
I'm pretty sure they got the idea from python-glanceclient, so I blame
Brian Waldon, since he left us for CoreOS.
PLEASE STOP DOING THIS - IT CAUSES BABIES TO CRY. MORE.
As a developer, I have no way of knowing what to put here. Also, imagine
I'm writing a script that wants to talk to more than one cloud to do
things - like, say, nodepool for Infra, or an ansible openstack
inventory module. NOW WHAT? What do I put??? How do I discover that?
Let me make a suggestion...
Default it to something. Make it an optional parameter for experts. THEN
- when the client lib talks to keystone, check the service catalog for
the API version.
What's this you say? Sometimes your service doesn't expose a version in
the keystone catalog?
PLEASE STOP DOING THIS - IT CAUSES DOLPHINS TO WEEP
If you have versioned APIs, put the version in keystone. Because
otherwise, as "as a developer" have absolutely zero way to figure it out.
Well, except for the algorithm jeblair suggested: "just start with 11
and count backwards until a number works"
This message brought to you by frustrated humans trying to use the cloud.
More information about the OpenStack-dev
mailing list