We high-spiritedly announce the release of: python-ironicclient 4.0.0: OpenStack Bare Metal Provisioning API Client Library This release is part of the ussuri release series. The source is available from: https://opendev.org/openstack/python-ironicclient Download the package from: https://pypi.org/project/python-ironicclient Please report issues through: https://storyboard.openstack.org/#!/project/openstack/python- ironicclient For more details, please see below. 4.0.0 ^^^^^ New Features ************ * Adds support to create an allocation with an "owner", as well as display it. Introduced in API 1.60. * Adds the ability to set and unset the "retired" and "retired_reason" with API 1.61. Setting the "retired" field on a node excludes it from scheduling, but still allows the node to be cleaned (unlike maintenance, for instance). The fields can be set irrespective of the node's state and are meant to be used to prepare nodes for removal from ironic. Upgrade Notes ************* * Python 2.7 support has been dropped. Last release of python- ironicclient to support Python 2.7 is OpenStack Train. The minimum version of Python now supported by python-ironicclient is Python 3.6. * An implicit dependency on "oslo.config" is now explicit. Bug Fixes ********* * Fails with a clear TypeError when a session is not provided to "client.Client" or "v1.client.Client". Before we used to throw: _construct_http_client() takes at least 1 argument * Removes the requirement on passing either "endpoint_override" or "os_ironic_api_version" to "get_client". This is only required for efficient caching of API versions and shouldn't be a hard requirement. * Fixes an issue where some failure modes of communication with the Ironic API could result in an exception that circumvents the client's retry mechanisms. In particular this includes HTTP 503 service unavailable which is seen when Ironic operates behind a load balancer, and no backend is available to handle the request. * "openstack baremetal node list --owner" was returning an error instead of a list of nodes for the specified owner. It has been fixed. See story 2006563 for details. * Fixes a confusing error message when a session is not provided for "ironicclient.v1.client.Client". * With the removal of the "HTTPClient" class in the release 3.0.0, it is now mandatory to pass a session into "ironicclient.v1.client.Client". The helper call "ironicclient.client.get_client" can also be used to construct a session implicitly. * Fixes "TypeError" when the bare metal endpoint cannot be detected from a session. A proper "EndpointNotFound" exception is raised now. * Fixes using "endpoint_override" with the "SessionClient". Changes in python-ironicclient 3.0.0..4.0.0 ------------------------------------------- e8914a7 Provide a clear error message when using client.Client without a session 81eebfc Add support for retired{_reason} fields. c27c848 Remove VerifiedHTTPSConnection class a643707 Add allocation owner 369a203 Enforce running tox with correct python version based on env a572ae2 Stop using six library 0e9bf33 Fix AttributeError in negotiate_version f515665 Drop python 2.7 support and testing 5cb4367 Switch jobs to python3 e88b39e Switch to Ussuri job 6f150a5 Fix source link. fd79e9c Add versions to release notes series 89088e2 Fix usage of --owner filter during node list 66a9c87 Make it clear that a Session is required for v1.client.Client 7f003e1 Fix TypeError when using endpoint_override with SessionClient 7c27668 Make the dependency on oslo.config explicit c3e4908 Remove the requirement on either endpoint_override or os_ironic_api_version 5a9964b Update master for stable/train Diffstat (except docs and test files) ------------------------------------- .gitignore | 2 +- ironicclient/client.py | 23 ++++- ironicclient/common/apiclient/base.py | 12 ++- ironicclient/common/apiclient/exceptions.py | 7 +- ironicclient/common/base.py | 19 ++--- ironicclient/common/http.py | 97 +++++----------------- ironicclient/common/utils.py | 3 +- ironicclient/osc/v1/baremetal_allocation.py | 12 ++- ironicclient/osc/v1/baremetal_node.py | 35 +++++++- .../osc/v1/test_baremetal_deploy_template_basic.py | 5 +- .../osc/v1/test_baremetal_node_create_negative.py | 5 +- .../osc/v1/test_baremetal_node_fields.py | 24 +++--- .../osc/v1/test_baremetal_node_negative.py | 35 ++++---- ironicclient/v1/allocation.py | 9 +- ironicclient/v1/client.py | 41 +++++---- ironicclient/v1/create_resources.py | 8 +- ironicclient/v1/node.py | 20 +++-- ironicclient/v1/resource_fields.py | 5 ++ lower-constraints.txt | 1 - playbooks/functional/run.yaml | 9 +- .../add-allocation-owner-0c6daad4ebfea5e6.yaml | 5 ++ .../notes/add_retired_field-6ec9f97c7c2f86ec.yaml | 10 +++ .../notes/client-session-09e6ced1fbc6a9b0.yaml | 7 ++ .../notes/drop-py-2-7-b0b950c0c2b6a667.yaml | 6 ++ .../endpoint-plus-version-4248f4f229dbc7dd.yaml | 6 ++ ...fix-negotiate-version-503-c3cb8d1d4901541a.yaml | 8 ++ .../notes/fix-owner-feature-2f3f0163ff307727.yaml | 9 ++ .../notes/missing-session-cc11e62dc966b4e0.yaml | 10 +++ .../notes/oslo.config-f67bf37ea35dd7fe.yaml | 4 + releasenotes/notes/typerror-132801fe4541fdb4.yaml | 7 ++ releasenotes/source/index.rst | 1 + releasenotes/source/train.rst | 6 ++ requirements.txt | 2 +- setup.cfg | 2 - tox.ini | 20 +---- zuul.d/ironicclient-jobs.yaml | 17 ---- zuul.d/project.yaml | 7 +- 54 files changed, 578 insertions(+), 307 deletions(-) Requirements updates -------------------- diff --git a/requirements.txt b/requirements.txt index 5e76b37..412c047 100644 --- a/requirements.txt +++ b/requirements.txt @@ -9,0 +10 @@ osc-lib>=1.10.0 # Apache-2.0 +oslo.config>=5.2.0 # Apache-2.0 @@ -15 +15,0 @@ requests>=2.14.2 # Apache-2.0 -six>=1.10.0 # MIT