23 Commits

Author SHA1 Message Date
Julia Kreger
22ab93e8d6 Allow API user to define list of versions
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
2018-01-18 21:36:12 -08:00
Julia Kreger
5b01c8f2ba Facilitate latest Rest API use
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
2018-01-18 21:27:08 -08:00
Yuriy Zveryanskyy
26a87aa6e7 Fix exception message creation in get_client()
Oslo i18n library does not support addition, use formatting instead.

Change-Id: I5a826409e560e09fe8e3fe4f2b8d03c2cd29742f
Closes-Bug: 1649898
2016-12-14 16:23:28 +02:00
ChangBo Guo(gcb)
6c71d8771d Use function import_versioned_module from oslo.utils
oslo.utils 3.17 provides similar function, just use it.

Closes-Bug: #1627313

Change-Id: I1710faafd69cb098d603135ca8a158129edb6fec
2016-11-02 13:36:17 +08:00
Vladyslav Drok
c9dc5faf20 Set endpoint_override while doing session.request
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
2016-03-21 18:01:28 +02:00
Vladyslav Drok
7226ad44aa Use keystoneauth instead of keystoneclient
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
2016-03-03 18:07:32 +02:00
Vladyslav Drok
fe422e57ab Allow to initialize keystone v3 client
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
2016-01-29 22:28:13 -08:00
John L. Villalovos
2df670cf30 Remove unneeded 'utf-8' coding lines
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
2015-04-21 16:44:47 +00:00
Dmitry Tantsur
28bdd0baeb Implement and enable retries on Conflict
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
2015-04-17 16:25:44 +02:00
Ghe Rivero
9991b26db1 Use oslo.i18n lib
Stop using gettextutils from oslo.incubator and replace with
the graduated library oslo.i18n

Change-Id: I479be348f6e0894ecff5cd93d37ee66648f3ea01
2015-03-19 18:27:24 +01:00
John L. Villalovos
144e82b163 Fix the final PEP8 errors
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
2015-03-10 14:38:30 -07:00
Lin Tan
53095aaa8f Enable ironicclient with --ironic-api-version 1.x
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
2015-03-06 11:40:33 +08:00
Ghe Rivero
47236e2cf1 Bump hacking version
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
2014-10-02 11:12:53 +00:00
Rakesh H S
fa2b68ed4e ironic client to use os_region_name if provided
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
2014-09-14 20:46:49 +05:30
Sergey Lupersolsky
1d05c41ead Fix misspelled class name AmbigiousAuthSystem
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
2014-08-19 23:34:54 +00:00
Michael Davies
55dd2e45c4 Expose auth_ref in ironicclient client object
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
2014-07-10 10:31:08 +09:30
Martin Geisler
af741ec223 Add UTF-8 coding lines to all Python files
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
2014-05-31 13:22:44 +02:00
Ruby Loo
490e5f2468 Fix docstring for client.get_client()
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
2014-04-08 17:05:55 +00:00
Adam Gandelman
3407824179 Avoid traceback with insufficient auth credentials
Raise an exception if configured credentials are not sufficient
for obtaining an endpoint and token.

Change-Id: Ie11a25eb67da2d2c2c8ef40ab984eb2ecb77fdf9
Closes-Bug: 1290601
2014-03-26 15:58:10 -07:00
Ghe Rivero
1b1dd31067 Reorder imports
As per hacking and PEP8, grouping third party libraries in
their own group.

http://www.python.org/dev/peps/pep-0008/#imports

Change-Id: I7a574d311b5171def0c6930162a46ce4c215097d
2013-11-11 18:12:58 +01:00
Kevin McDonald
94e0fb78e4 Fixes Auth Token being sent as lambda function
Change-Id: Id6d7db4b2d3c7350147b26d42fc77f66a530a29b
Closes-Bug: #1244810
2013-10-29 09:41:57 -07:00
Chris Krelle
6752ae8307 Change service_type to baremetal
update default service_type to baremetal.

Change-Id: I58856885268225b79218d7312472d05b0a47b5b7
2013-09-27 09:10:21 -07:00
Lucas Alvares Gomes
ba073c0707 Basic project structure
Mostly taken from other OpenStack client projects and adapted for Ironic.

Change-Id: I1ef9613b9e24bbb6caac9657dc1da3add899478e
2013-09-19 00:21:14 +01:00