<div dir="ltr">Hi Vlad,<div><br></div><div class="gmail_extra"><div class="gmail_quote">On Fri, Jul 21, 2017 at 9:09 PM, Vladyslav Drok <span dir="ltr"><<a href="mailto:vdrok@mirantis.com" target="_blank">vdrok@mirantis.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Greetings!<div><br></div><div>I have a patch [0] to deprecate the custom HTTPClient implementation that we have in python-ironicclient. Currently it is used when the 'ironic' command is issued in a standalone mode, that is, with '--ironic-url' and '--os-auth-token' parameters,</div></div></blockquote><div><br></div><div>recently released keystoneauth 3.1.0 has a new 'none' auth plugin that can be used for standalone mode together with endpoint_override Adapter option instead of 'admin_token' auth plugin [1]. Maybe that would allow you to simplify the code a bit. Note that the bump to ironicclient reguirements re keystoneauth is not merged yet [2].</div><div><br></div><div>[1] <a href="https://git.openstack.org/cgit/openstack/keystoneauth/tree/keystoneauth1/noauth.py">https://git.openstack.org/cgit/openstack/keystoneauth/tree/keystoneauth1/noauth.py</a></div><div>[2] <a href="https://review.openstack.org/#/c/488117/">https://review.openstack.org/#/c/488117/</a></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>or when a client is instantiated through the following module [1] directly without passing the session object, or even directly calling HTTPClient constructor at [2]. In other cases, keystoneauth's SessionClient derivative object is used. [0] will basically substitute the HTTPClient with the SessionClient (by using the 'admin_token' auth plugin). It seems like a breaking change, as most likely some HTTP error codes and exceptions thrown may be different, so I think we'll need the major client library version bump. We'll also make it clear in the docs that the only "true" way for instantiating the client is through 'get_client' method in [3].</div><div><br></div><div>After that, we'll need to remove the HTTPClient class completely, and here a question is, whether we should have another major version bump? Or can we remove it right away, and single major version bump should be enough? (as the HTTPClient defined in [2] was not something we advertised as a part of our public python API)</div></div></blockquote><div><br></div><div>There are actually more reasons for a major version  bump - we've reached feature parity of our OSC plugin with 'ironic' CLI and should start to phase the latter out (and drop OSC from hard client requirements).</div><div>So I'd vote for las minor version release with many deprecations warnings, and clean up HTTPClient and officially deprecate 'ironic' CLI in the next release that would be a major version bump.</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><br></div><div>Any suggestions welcome :)</div><div><br></div><div>-Vlad</div><div><br></div><div>[0] <a href="https://review.openstack.org/359061" target="_blank">https://review.openstack.<wbr>org/359061</a></div><div>[1] <a href="https://github.com/openstack/python-ironicclient/blob/master/ironicclient/v1/client.py" target="_blank">https://github.com/<wbr>openstack/python-ironicclient/<wbr>blob/master/ironicclient/v1/<wbr>client.py</a></div><div>[2] <a href="https://github.com/openstack/python-ironicclient/blob/master/ironicclient/common/http.py" target="_blank">https://github.com/<wbr>openstack/python-ironicclient/<wbr>blob/master/ironicclient/<wbr>common/http.py</a><br></div><div>[3] <a href="https://github.com/openstack/python-ironicclient/blob/master/ironicclient/client.py" target="_blank">https://github.com/<wbr>openstack/python-ironicclient/<wbr>blob/master/ironicclient/<wbr>client.py</a><br></div></div>
<br>______________________________<wbr>______________________________<wbr>______________<br>
OpenStack Development Mailing List (not for usage questions)<br>
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.<wbr>openstack.org?subject:<wbr>unsubscribe</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/<wbr>cgi-bin/mailman/listinfo/<wbr>openstack-dev</a><br>
<br></blockquote></div><br><br clear="all"><div>Cheers,</div>-- <br><div class="gmail_signature"><div dir="ltr"><div><div dir="ltr">Dr. Pavlo Shchelokovskyy<div>Senior Software Engineer</div><div>Mirantis Inc</div><div><a href="http://www.mirantis.com" target="_blank">www.mirantis.com</a></div></div></div></div></div>
</div></div>