In cases where one may need to support multiple API
micro-versions, it makes sense to allow a user to submit
the list of versions their code can support, as long as
they have the visibility into that version.
Adds the ability to pass in a list to the
os_ironic_api_version value during client
initialization, and facilitate the negotiation
of the highest available version.
Change-Id: I0dfa3f7fe0a1e2aaf31d37c46b65cc6c064b5e86
Related-Bug: #1739440
Related-Bug: #1671145
In order to provide insight into the remote
API verison, we need the ability to negotiate
upon the latest API version available, and then
report what that version is.
In order to understand if this has occured,
we also need to provide insight into if version
negotiation has occured.
Adds logic to the session/http clients to faciltate
version negotiation on the latest available version,
and provide user insight into that verison.
Change-Id: I813237eee4b122211f95558f677b25e0675569d5
Related-Bug: #1739440
Related-Bug: #1671145
The recent refactor broke multi-region deployments by not using
endpoint_override when doing _http_request in SessionClient.
This change fixes it.
Closes-bug: #1557105
Change-Id: I99cbcd34eeec1388a00d1a0d910dd5759191f954
This change also enables client to be authenticated via 'token'
keystone auth method, allowing to pass os_auth_token instead of
os_username and os_password.
Closes-bug: #1541411
Closes-bug: #1548907
Change-Id: I9739c95069ebf8d60f8362be154844e74334beb2
Currently, ironic client is only able to use keystone v2 client,
this change fixes it.
Change-Id: I9e5cdc3ce98842eb335e1ff72975fc5f3e2abd4f
Co-Authored-By: John L. Villalovos <john.l.villalovos@intel.com>
Closes-bug: #1539604
This is basically a revert of commit:
af741ec2236619880fa902d68aef4a6ae6cef534
It was decided that only files that need to have the line:
# -*- coding: utf-8 -*-
Should have the line[1] as a general principle
This patch removes the 'utf-8' coding line from files that consist
entirely of ASCII characters.
[1]
http://eavesdrop.openstack.org/meetings/ironic/2015/ironic.2015-04-20-17.00.html
Partial-bug: #1325193
Change-Id: I88c1c37f7b580aa805eae9d4a1e66d33302a325f
Getting Conflict errors is pretty annoying, especially when writing
automation scripts. Nova and ironic-discoverd already have their
own logic for retrying on such errors.
This patch adds 'max_retries' and 'retry_interval' arguments to
get_client for tuning or disabling retries.
Change-Id: Id9720c87ce3846faec61eb40ccf00970ca798ad2
Fix PEP8 E126,E127,E128 errors, which were the only ones remaining.
Fix PEP8 errors:
E126: continuation line over-indented for hanging indent
E127: continuation line over-indented for visual indent
E128: continuation line under-indented for visual indent
Remove the ignore= entries for flake8 in tox.ini
Change-Id: I919551121d85d2aab528f4fa5ecdb3cfd940557a
python-ironic-client doesn't recognize API micro-version parameter.
Reuse --ironic-api-version to recognize this.
1. The client accepts '1.x' or 'latest' as valid API version and send
corresponding headers to Ironic.
2. If the user does not specify a version, client will not sent any
extra headers to Ironic. It will use the minimum version.
Closes-Bug: #1417430
Change-Id: I1db6e2f4e57d6d47d86f068018f143d0044b7211
Current hacking version is incompatible with the one in the
global requirements. Match the hacking module version and made the
necessary changes to pass the tests.
Change-Id: Ie6b13a4ea112084d4c50dc27f97329dfad5777a1
Currently ironicclient does not pass OS_REGION_NAME to Keystone client.
That will cause problems in multiregion deployments.
Modified ironicclient to consider using OS_REGION_NAME if provided.
Closes-Bug: #1314159
Change-Id: I885e57973ccec64471fe2ba5fecfab2224829787
Class name AmbigiousAuthSystem in exc.py is misspelled.
To fix the issue, this patch renames AmbigiousAuthSystem to
AmbiguousAuthSystem in exc.py and creates an alias for compatibility.
Also edits the use of the class in client.py accordingly and adds an
additional assertRaises() to
test_client.py.test_get_client_no_url_and_no_token to test both the
correct exception and the alias.
Change-Id: I18309b045d5eb9e81c72b1ed9de350925927db66
Closes-Bug: 1356512
To implement token expiry in Nova's Ironic driver, we need
to expose additional information obtained from the keystone
client.
Change-Id: I14aa8aca8b83f6c9a233bb19406d03002a76f139
Partial-bug: #1308171
While not strictly necessary for files containing only ASCII
characters, adding a line with "coding: utf-8" can guard against
future SyntaxError's in case someone inserts a Unicode literal.
This commit adds such lines to all .py files. The syntax used by this
commit works with Python (of course). It also works with Emacs, which
will recognize the special "-*-" marker and use the "coding" variable
to correctly decode the file, even in an environment where UTF-8 is
not the default file encoding.
Existing coding lines were normalized to match the new lines added.
Partial-bug: #1325193
Change-Id: I58bf93fea711fd25890356a397e594bd820c99e3
Fix a misspelled word and correct the description for parameter
'api_version'; the only valid value is '1' (because we only have v1).
Change-Id: I51e23f783de5000df96dca26cd87244c3733d359
Raise an exception if configured credentials are not sufficient
for obtaining an endpoint and token.
Change-Id: Ie11a25eb67da2d2c2c8ef40ab984eb2ecb77fdf9
Closes-Bug: 1290601