<div dir="ltr"><div>On Wed, Apr 6, 2016 at 7:28 AM, Ian Cordasco <span dir="ltr"><<a href="mailto:sigmavirus24@gmail.com" target="_blank">sigmavirus24@gmail.com</a>></span> wrote:<br></div><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div class=""><div class="h5"> <br>
<br>
-----Original Message-----<br>
From: Michael Still <<a href="mailto:mikal@stillhq.com">mikal@stillhq.com</a>><br>
Reply: OpenStack Development Mailing List (not for usage questions) <<a href="mailto:openstack-dev@lists.openstack.org">openstack-dev@lists.openstack.org</a>><br>
Date: April 5, 2016 at 16:11:05<br>
To: OpenStack Development Mailing List (not for usage questions) <<a href="mailto:openstack-dev@lists.openstack.org">openstack-dev@lists.openstack.org</a>><br>
Subject:  Re: [openstack-dev] [nova][glance] Proposal to remove `nova image-*` commands from novaclient<br>
<br>
> As a recent newcomer to using our client libraries, my only real objection<br>
> to this plan is that our client libraries as a mess [1][2]. The interfaces<br>
> we expect users to use are quite different for basic things like initial<br>
> auth between the various clients, and by introducing another library we<br>
> insist people use we're going to force a lot of devs to eventually go<br>
> through having to understand how those other people did that thing.<br>
><br>
> I guess I could ease my concerns here if we could agree to some sort of<br>
> standard for what auth in a client library looks like...<br>
><br>
> Some examples of auth at the moment:<br>
><br>
> self.glance = glance_client.Client('2', endpoint, token=token)<br>
> self.ironic = ironic_client.get_client(1, ironic_url=endpoint,<br>
> os_auth_token=token)<br>
> self.nova = nova_client.Client('2', bypass_url=endpoint, auth_token=token)<br>
><br>
> Note how we can't decide if the version number is a string or an int, and<br>
> the argument names for the endpoint and token are different in all three.<br>
> Its like we're _trying_ to make this hard.<br>
><br>
> Michael<br>
><br>
> 1: I guess I might be doing it wrong, but in that case I'll just mutter<br>
> about the API docs instead.<br>
> 2: I haven't looked at the unified openstack client library to see if its<br>
> less crazy.<br>
><br>
<br>
</div></div>What if we just recommend everyone use the openstacksdk (<a href="https://pypi.python.org/pypi/openstacksdk" rel="noreferrer" target="_blank">https://pypi.python.org/pypi/openstacksdk</a>)? We could add more developer resources by deprecating our individual client libraries to use that instead? It's consistent and well-designed and would probably benefit from us actively helping with each service's portion.<br></blockquote><div> </div><div>So like I said, I haven't looked at it at all because I am middle aged, stuck in my ways, hate freedom, and because I didn't think of it.<div><br></div><div>Does it include a command line interface that's not crazy as well?</div><div><br></div><div>If so, why are we maintaining duplicate sets of libraries / clients? It seems like a lot of wasted effort.</div><div><br></div><div>Michael</div></div><div><br></div></div>-- <br><div class="gmail_signature">Rackspace Australia</div>
</div></div>