<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/openstack/python-ironicclient.git/ironicclient/common, branch 3.1.1</title>
<subtitle>opendev.org: openstack/python-ironicclient.git
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/openstack/python-ironicclient.git/'/>
<entry>
<title>Fix AttributeError in negotiate_version</title>
<updated>2019-12-04T11:25:39+00:00</updated>
<author>
<name>Mark Goddard</name>
<email>mark@stackhpc.com</email>
</author>
<published>2019-08-12T15:19:37+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/openstack/python-ironicclient.git/commit/?id=8188c01489f63b5fd10702ebccbd742b62488d6e'/>
<id>8188c01489f63b5fd10702ebccbd742b62488d6e</id>
<content type='text'>
Seen in kolla-ansible CI, if ironic inspector starts up before ironic
API is properly up, we see the following error:

The PXE filter DnsmasqFilter, state=initialized encountered an
exception: StrictVersion instance has no attribute 'version'; resetting
the filter: AttributeError: StrictVersion instance has no attribute
'version'

Example: http://paste.openstack.org/show/756342/

The usual cause of this error is when StrictVersion is initialised with
a version of None. This suggests to me that max_ver is None.

This leads to an exception being raised that circumvents the client's
retry mechanisms.

In the particular case of kolla-ansible CI, Ironic API is behind a load
balancer, and all backends are down resulting in a 503. The lack of a
retry caused ironic inspector to fail on startup.

This patch catches the case where we get a 4xx or 5xx return code when
checking the version, and raises an error that works with the client's
retry mechanisms.

Change-Id: Ib62ca3ee4626084e5e9b90e93e4fa97938023457
Story: 2006393
Task: 36266
(cherry picked from commit 0e9bf337f1f6aa41f67df2966dacf9e8e897b7da)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Seen in kolla-ansible CI, if ironic inspector starts up before ironic
API is properly up, we see the following error:

The PXE filter DnsmasqFilter, state=initialized encountered an
exception: StrictVersion instance has no attribute 'version'; resetting
the filter: AttributeError: StrictVersion instance has no attribute
'version'

Example: http://paste.openstack.org/show/756342/

The usual cause of this error is when StrictVersion is initialised with
a version of None. This suggests to me that max_ver is None.

This leads to an exception being raised that circumvents the client's
retry mechanisms.

In the particular case of kolla-ansible CI, Ironic API is behind a load
balancer, and all backends are down resulting in a 503. The lack of a
retry caused ironic inspector to fail on startup.

This patch catches the case where we get a 4xx or 5xx return code when
checking the version, and raises an error that works with the client's
retry mechanisms.

Change-Id: Ib62ca3ee4626084e5e9b90e93e4fa97938023457
Story: 2006393
Task: 36266
(cherry picked from commit 0e9bf337f1f6aa41f67df2966dacf9e8e897b7da)
</pre>
</div>
</content>
</entry>
<entry>
<title>Make it clear that a Session is required for v1.client.Client</title>
<updated>2019-09-24T13:33:04+00:00</updated>
<author>
<name>Dmitry Tantsur</name>
<email>dtantsur@protonmail.com</email>
</author>
<published>2019-09-24T11:31:43+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/openstack/python-ironicclient.git/commit/?id=4420811710d0ad2b5e245b4b48369b7313e08df8'/>
<id>4420811710d0ad2b5e245b4b48369b7313e08df8</id>
<content type='text'>
Change-Id: Icfb5f11a59a6b7cc65dcda0b87240c57c120e228
(cherry picked from commit 66a9c87c39a08727e3a3b8c18ba3281c9999b528)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change-Id: Icfb5f11a59a6b7cc65dcda0b87240c57c120e228
(cherry picked from commit 66a9c87c39a08727e3a3b8c18ba3281c9999b528)
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix TypeError when using endpoint_override with SessionClient</title>
<updated>2019-09-24T11:20:25+00:00</updated>
<author>
<name>Dmitry Tantsur</name>
<email>dtantsur@protonmail.com</email>
</author>
<published>2019-09-23T12:26:37+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/openstack/python-ironicclient.git/commit/?id=cbd4418e09774098ed1d003faf7a1adcd42aec3a'/>
<id>cbd4418e09774098ed1d003faf7a1adcd42aec3a</id>
<content type='text'>
First, when endpoint cannot be detected from a session None is returned
from get_endpoint, causing subsequent code to fail. This changes fixes it.

Second, endpoint_override is not passed to a Session (it's an Adapter)
property, doing it has no effect. Use get_endpoint from Adapter instead.

Change-Id: Ia942858abe980abf95c1ca136767983e7a0a285e
Story: #2006600
Task: #36763
(cherry picked from commit 7f003e1e045e3e20b824a94676310315f8fef9fc)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
First, when endpoint cannot be detected from a session None is returned
from get_endpoint, causing subsequent code to fail. This changes fixes it.

Second, endpoint_override is not passed to a Session (it's an Adapter)
property, doing it has no effect. Use get_endpoint from Adapter instead.

Change-Id: Ia942858abe980abf95c1ca136767983e7a0a285e
Story: #2006600
Task: #36763
(cherry picked from commit 7f003e1e045e3e20b824a94676310315f8fef9fc)
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove deprecated endpoint argument</title>
<updated>2019-08-21T12:19:34+00:00</updated>
<author>
<name>Riccardo Pittau</name>
<email>elfosardo@gmail.com</email>
</author>
<published>2019-08-21T08:52:12+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/openstack/python-ironicclient.git/commit/?id=839d9eff4fc02bf55347957b57fd4ba6b734ef4a'/>
<id>839d9eff4fc02bf55347957b57fd4ba6b734ef4a</id>
<content type='text'>
Removing the endpoint argument to the v1.client.Client
constructor.
Please use the standard keystoneauth argument name
endpoint_override instead.

Change-Id: Ie2b26a667485223029fde05b20c39c5687f9e776
Story: 2006422
Task: 36319
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Removing the endpoint argument to the v1.client.Client
constructor.
Please use the standard keystoneauth argument name
endpoint_override instead.

Change-Id: Ie2b26a667485223029fde05b20c39c5687f9e776
Story: 2006422
Task: 36319
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove the ironic command</title>
<updated>2019-08-20T21:51:12+00:00</updated>
<author>
<name>Julia Kreger</name>
<email>juliaashleykreger@gmail.com</email>
</author>
<published>2019-08-14T20:26:41+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/openstack/python-ironicclient.git/commit/?id=f62758cda5953ac22614a783df0165e42e76d60b'/>
<id>f62758cda5953ac22614a783df0165e42e76d60b</id>
<content type='text'>
The ironic command is dead, long live the OSC baremetal command.

Also removed the json_respose tests, which seemed ot be geared
to checking json returned data on the command line. For ironic
these tests seemed to be very explicit for our CLI where as OSC
should be covering the return data handling, the only real end
effect is field level expectation enforcement in the functional
test... which seems excessive and un-needed.

Story: 1726605
Task: 11974
Depends-on: https://review.opendev.org/677183

Change-Id: I3e3ae416a65d8e01956434ba51bd3187ab001f80
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The ironic command is dead, long live the OSC baremetal command.

Also removed the json_respose tests, which seemed ot be geared
to checking json returned data on the command line. For ironic
these tests seemed to be very explicit for our CLI where as OSC
should be covering the return data handling, the only real end
effect is field level expectation enforcement in the functional
test... which seems excessive and un-needed.

Story: 1726605
Task: 11974
Depends-on: https://review.opendev.org/677183

Change-Id: I3e3ae416a65d8e01956434ba51bd3187ab001f80
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove deprecated common.http.HTTPClient class</title>
<updated>2019-08-20T17:49:25+00:00</updated>
<author>
<name>Riccardo Pittau</name>
<email>elfosardo@gmail.com</email>
</author>
<published>2019-06-19T12:36:44+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/openstack/python-ironicclient.git/commit/?id=6fd8ee46e8f1f0a5a835c2250f9f46827efd5433'/>
<id>6fd8ee46e8f1f0a5a835c2250f9f46827efd5433</id>
<content type='text'>
The class common.http.HTTPClient is deprecated and merked for
removal in Stein.
This patch removes it entirely, the class common.http.SessionClient
should be used instead.

Change-Id: I527d39d64c3ded9f61babcdf07d0492799b76fb9
Story: 2006422
Task: 36314
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The class common.http.HTTPClient is deprecated and merked for
removal in Stein.
This patch removes it entirely, the class common.http.SessionClient
should be used instead.

Change-Id: I527d39d64c3ded9f61babcdf07d0492799b76fb9
Story: 2006422
Task: 36314
</pre>
</div>
</content>
</entry>
<entry>
<title>Strip prefix when paginating</title>
<updated>2019-08-01T17:32:31+00:00</updated>
<author>
<name>Jim Rollenhagen</name>
<email>jim@jimrollenhagen.com</email>
</author>
<published>2019-07-12T15:45:42+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/openstack/python-ironicclient.git/commit/?id=347eac50473a9d3d55a8e4030b590e5b9ba7ae17'/>
<id>347eac50473a9d3d55a8e4030b590e5b9ba7ae17</id>
<content type='text'>
The way the next URL is parsed and rebuilt in the pagination code
doesn't take a prefixed path into account like devstack uses, e.g.
/baremetal/v1/nodes. It ends up prepending the base URL and we get
/baremetal/baremetal/v1/nodes. Drop the extra prefix when building
this URL.

Change-Id: I7e46068521c40f19c1e48eedc69b4ecd862e88fc
Story: 2006216
Task: 35809
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The way the next URL is parsed and rebuilt in the pagination code
doesn't take a prefixed path into account like devstack uses, e.g.
/baremetal/v1/nodes. It ends up prepending the base URL and we get
/baremetal/baremetal/v1/nodes. Drop the extra prefix when building
this URL.

Change-Id: I7e46068521c40f19c1e48eedc69b4ecd862e88fc
Story: 2006216
Task: 35809
</pre>
</div>
</content>
</entry>
<entry>
<title>Allocation API: support allocation backfilling</title>
<updated>2019-05-21T11:07:49+00:00</updated>
<author>
<name>Dmitry Tantsur</name>
<email>divius.inside@gmail.com</email>
</author>
<published>2019-03-28T14:14:54+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/openstack/python-ironicclient.git/commit/?id=03adb8103a5c5848f8771cdd086c06962ca6e249'/>
<id>03adb8103a5c5848f8771cdd086c06962ca6e249</id>
<content type='text'>
Change-Id: I61242f05b151630a75bfb25badf2b5c635946170
Depends-On: https://review.openstack.org/648178
Story: #2005014
Task: #30212
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change-Id: I61242f05b151630a75bfb25badf2b5c635946170
Depends-On: https://review.openstack.org/648178
Story: #2005014
Task: #30212
</pre>
</div>
</content>
</entry>
<entry>
<title>Do not try to use /v1/v1 when endpoint_override is used</title>
<updated>2019-05-16T15:01:48+00:00</updated>
<author>
<name>Dmitry Tantsur</name>
<email>divius.inside@gmail.com</email>
</author>
<published>2019-05-16T14:52:36+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/openstack/python-ironicclient.git/commit/?id=4565af8ccd8aaa35868fae6ae31216c3e57014f3'/>
<id>4565af8ccd8aaa35868fae6ae31216c3e57014f3</id>
<content type='text'>
In one of the places where endpoint_override is used we did not strip
the /v1 suffix, resulting in doube /v1/v1 sometimes.

This patch also corrects the way we strip this suffix (str.rstrip accepts
a set of symbols, not a substring; use regex instead).

It remains unclear why the breakage passed the gate initially. I assume
it was not on the active code path until some Nova change.

Story: #2005723
Task: #31051
Change-Id: I3b25f4fb170aa93159ffa8074dc74fa6f50671b7
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In one of the places where endpoint_override is used we did not strip
the /v1 suffix, resulting in doube /v1/v1 sometimes.

This patch also corrects the way we strip this suffix (str.rstrip accepts
a set of symbols, not a substring; use regex instead).

It remains unclear why the breakage passed the gate initially. I assume
it was not on the active code path until some Nova change.

Story: #2005723
Task: #31051
Change-Id: I3b25f4fb170aa93159ffa8074dc74fa6f50671b7
</pre>
</div>
</content>
</entry>
<entry>
<title>Use endpoint_override in version negotiation</title>
<updated>2019-03-15T16:27:29+00:00</updated>
<author>
<name>Jason</name>
<email>jasonanderson@uchicago.edu</email>
</author>
<published>2019-03-15T15:57:57+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/openstack/python-ironicclient.git/commit/?id=8071d5de57c728ce09d25d04c8c9fe48cd7db42e'/>
<id>8071d5de57c728ce09d25d04c8c9fe48cd7db42e</id>
<content type='text'>
Change [1] introduced the usage of endpoint_filter when deciding which
endpoint to use during version negotiation. This requires properly
setting interface/region/service_type in order to properly pick the
endpoint. But, sometimes (for example in Kolla-ansible), the endpoint
url is explicitly defined. In the event of the endpoint being explicitly
defined, it should take priority here.

It should be noted that even though SessionClient extends from
keystoneauth1's adapter.LegacyJsonAdapter, the `request` function within
_make_simple_request is being called on the nested Session object, not
the Adapter itself. If it was called on the Adapter this problem
wouldn't exist, as the `endpoint_override` (or `endpoint`) kwarg passed
in to the constructor of the SessionClient would already take
precedence.

[1]: I42b66daea1f4397273a3f4eb1638abafb3bb28ce

Change-Id: I69dc2c88648ba1d09a9ad3ab3435662e8d1ea6ff
Related-Bug: #1818295
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change [1] introduced the usage of endpoint_filter when deciding which
endpoint to use during version negotiation. This requires properly
setting interface/region/service_type in order to properly pick the
endpoint. But, sometimes (for example in Kolla-ansible), the endpoint
url is explicitly defined. In the event of the endpoint being explicitly
defined, it should take priority here.

It should be noted that even though SessionClient extends from
keystoneauth1's adapter.LegacyJsonAdapter, the `request` function within
_make_simple_request is being called on the nested Session object, not
the Adapter itself. If it was called on the Adapter this problem
wouldn't exist, as the `endpoint_override` (or `endpoint`) kwarg passed
in to the constructor of the SessionClient would already take
precedence.

[1]: I42b66daea1f4397273a3f4eb1638abafb3bb28ce

Change-Id: I69dc2c88648ba1d09a9ad3ab3435662e8d1ea6ff
Related-Bug: #1818295
</pre>
</div>
</content>
</entry>
</feed>
