Yoga Series Release Notes¶
4.3.0¶
Bug Fixes¶
Fixes missing
get_auth_ref
call for thenone
andhttp_basic
authentication plugins. The implementation simply returnsNone
.
4.2.1¶
Bug Fixes¶
Fixes
get_api_major_version
for non-keystone authentication methods when the provided endpoint is not versioned.
4.2.0¶
New Features¶
A new
http_basic
auth plugin is added which enables HTTP Basic authentication for standalone services. Like thenoauth
plugin, theendpoint
needs to be specified explicitly, along with theusername
andpassword
.
Upgrade Notes¶
Python 3.5 is no longer supported.
4.1.0¶
Bug Fixes¶
[bug 1876317] The v3 authentication plugins now attempt to add /v3 to the token path if it’s not present on the authentication URL.
4.0.0¶
Upgrade Notes¶
Python 2.7 support has been dropped. Last release of keystoneauth to support python 2.7 is OpenStack Train. The minimum version of Python now supported is Python 3.6.
3.18.0¶
New Features¶
[feature bug 1840235] Adds
connect_retries
to Session.__init__(), that can then be used by projects when creating session objects, to set the required number of retries for new connection requests. This would specifically help avoid a scalability issue that results in number of ConnectTimeout errors when doing endpoint discovery and fetching roles using an auth plugin under heavy load. This still allows for it to be overridden per service with the adapter interface.
Upgrade Notes¶
If keystoneauth and openstacksdk are both in use and keystoneauth is upgraded to this release before upgrading openstacksdk to
0.36.1
or later, creation of ServerGroup objects with policies and use of Ansible Inventory could be adversely affected. See https://review.opendev.org/#/c/685999/ for more details.
Bug Fixes¶
[bug 1838704] When consuming keystoneauth1.session.Session, if a requests session is not provided one is created. The Session used for requests may result in a ResourceWarning being generated if it is not properly closed. The code has been updated to close the session correctly when the Session object is deleted.
Retry version discovery with auth token when the initial request throws 401 Unauthorized. There are some services that are erroneously defaulting to authenticated discovery, and this allows discovery to work properly on them.
3.17.0¶
New Features¶
[bug 1839748] Keystoneauth now supports MFA authentication and Auth Receipts. Responses from Keystone containing and auth receipt will now raise a
MissingAuthMethods
exception which will contain the auth receipt itself, and information about the missing methods. There are now also ways to easily do more than one method when authenticating to Keystone and those have been documented.
3.16.0¶
New Features¶
Allows configuring fixed retry delay for connection and status code retries via the new parameters
connect_retry_delay
andstatus_code_retry_delay
accordingly.
3.15.0¶
New Features¶
Fix handling of HTTP error payloads that conform to the API SIG formatting guidelines.
The
X-Openstack-Request-Id
header can now be set per-request via aglobal_request_id
kwarg toAdapter
andSession
request methods (request()
,get()
,put()
, etc.)
The Adapter parameters
connect_retries
andstatus_code_retries
can now be set via configuration optionsconnect-retries
andstatus-code-retries
accordingly.
Bug Fixes¶
Add logic to handle HTTP error responses that do not conform to a known schema.
The retry interval for retries enabled by
connect_retries
andstatus_code_retries
is now limited at 60 seconds. Previously it would grow exponentially.
3.13.0¶
New Features¶
Support added for client-side rate limiting. Two new parameters now exist for
keystoneauth1.adapter.Adapter
.rate
expresses a maximum rate at which to execute requests.parallel_limit
allows for the creation of a semaphore to control the maximum number of requests that can be active at any one given point in time. Both default toNone
which has the normal behavior or not limiting requests in any manner.
3.11.2¶
Bug Fixes¶
A workaround for misformed discovery documents was being applied too soon causing ironic discovery documents to be mistakenly ignored.
3.11.1¶
Bug Fixes¶
Fixed an issue where https://example.com and https://example.com/ were being treated as different urls in the discovery cache resulting in a second unneeded discovery call when someone sets an
endpoint_override
that didn’t match the trailing-slash form given by that service’s discovery document.
3.11.0¶
New Features¶
Added ability to filter the results of
get_all_version_data
by service-type.
Added
get_all_version_data
toadapter.Adapter
that uses the adapter’sservice_type
to filter the version data fetched.
Bug Fixes¶
Fixed support for detecting microversion ranges on older Ironic installations.
3.10.0¶
Bug Fixes¶
[bug 1733052] Now the version discovery mechanism only fetches the version info from server side if the versioned url has been overrode. So that the request url’s path won’t be changed completely.
3.8.0¶
New Features¶
Addes support for retrying certain HTTP status codes when doing requests via the new
status_code_retries
andretriable_status_codes
parameters forSession
andAdapter
.
3.7.0¶
New Features¶
Added
collect_timing
option tokeystoneauth1.session.Session
. The option, which is off by default, causes theSession
to collect API timing information for every call it makes. Methodsget_timings
andreset_timings
have been added to allow getting and clearing the data.
Added
split-loggers
option to the oslo.config Session options.
Exposed
keystoneauth1.discover.version_between
as a public function that can be used to determine if a given version is within a range.
3.6.2¶
Bug Fixes¶
[bug 1766235] Fixed an issue where passing headers in as bytes rather than strings would cause a sorting issue.
3.6.1¶
Bug Fixes¶
The docstring for
keystoneauth1.session.Session.get_all_version_data
correctly listed'public'
as the default value, but the argument list hadNone
. The default has been fixed to match the documented value.
3.6.0¶
New Features¶
Added a ‘status’ field to the EndpointData object which contains a canonicalized version of the information in the status field of discovery documents.
Added support for service-type aliases as defined in the Service Types Authority when doing catalog lookups.
3.4.0¶
New Features¶
[blueprint application-credentials] Support for authentication via an application credential has been added. Keystoneauth can now be used to authenticate to Identity servers that support application credentials.
[blueprint system-scope] Keystoneauth now has the ability to authenticate for system-scoped tokens, which were implemented during the Queens development cycle. System-scoped tokens will eventually be required to separate system-level APIs from project-level APIs, allowing for better security via scoped RBAC.
3.2.0¶
New Features¶
A new
none
auth plugin is added with purpose to simplify loading clients from configuration file options. It does not accept any arguments and sets the token to ‘notused’. It does not have any endpoint/url associated with it, and thus must be used together withadapter.Adapter
’sendpoint_override
option to instantiate a session for client to a service that is deployed in noauth/standalone mode.
3.0.0¶
New Features¶
Added support for specifying a microversion to use on a given REST request. The microversion can be specified on session request calls and a default can be set on Adapter construction.
Added support for the API Working Group recommendations on service and version discovery. New methods on Session and Adapter, “get_endpoint_data” will return endpoint metadata including microversion information. Additionally, versions can be requested with a range and with the string “latest”, and interface values can be given as a list in case a user wants to express a ‘best available’ set of preferences.
2.21.0¶
Prelude¶
Allow setting EndpointReference in ADFSPassword
New Features¶
Add the ability to specify the WS-Policy EndpointReference used in the ADFSPassword plugin’s RequestSecurityToken message via the ‘service-provider-entity-id’ option. Also added ‘identity-provider-url’ option which was required, but missing from option list.
Bug Fixes¶
[bug 1689424] Allow setting EndpointReference in ADFSPassword.
2.19.0¶
New Features¶
A new flag allow_version_hack was added to identity plugins and the adapter which will allow a client to opt out of making guesses at the version url page of a service. This means that if a deployment is misconfigured and the service catalog contains a versioned endpoint that does not match the requested version the request will fail. This will be useful in beginning to require correctly deployed catalogs rather than continue to hide the problem.
2.17.0¶
Bug Fixes¶
[bug 1616105] Only log the response body when the
Content-Type
header is set toapplication/json
. This avoids logging large binary objects (such as images). OtherContent-Type
will not be logged. AdditionalContent-Type
strings can be added as required.
The
X-Service-Token
header value is now properly masked, and is displayed as a hash value, in the log.
2.14.0¶
Prelude¶
Allow adding client and application name and version to the session and adapter that will generate a userful user agent string.
New Features¶
You can specify a
app_name
andapp_version
when creating a session. This information will be encoded into the user agent.
You can specify a
client_name
andclient_version
when creating an adapter. This will be handled by client libraries and incluced into the user agent.
Libraries like shade that modify the way requests are made can add themselves to additional_user_agent and have their version reflected in the user agent string.
Deprecation Notes¶
We suggest you fill the name and version for the application and client instead of specifying a custom
user_agent
. This will then generate a standard user agent string.
2.12.0¶
Prelude¶
HTTP connections work under Windows Subsystem for Linux
Bug Fixes¶
[bug 1614688] HTTP connections were failing under Windows subsystem for Linux because TCP_KEEPCNT was being set and that environment does not support such override yet.
2.10.0¶
Prelude¶
Add the prompt parameter to loader Opts
Allow specifying additional_headers to the session and the adapter to add headers to all requests that pass through these objects.
New Features¶
Add support for the Client Credentials OpenID Connect grant type.
Add support for the OpenID Connect Discovery Document into the OpenID Connect related plugins. Now it is possible to only pass the discovery-url option and the plugins will try to fetch the required metadata from there.
The prompt parameter was added to the Opts provided by auth plugins. The presence of the prompt parameter on an Option will indicate to plugin loaders that it is ok to prompt the user for input for this parameter if none is provided initially. Actual implementation of this prompting mechanism will be handled by the individual loaders such as os-client-config.
Add the ability to provide additional_headers to the session and adapter object. This will allow clients particularly to provide additional ways to identify their requests. It will also hopefully provide an intermediate way to handle setting microversions until we support them directly with keystoneauth.
Bug Fixes¶
[bug 1583682] OpenID Connect plugins should support OpenID Connect Discovery.
2.9.0¶
New Features¶
[blueprint totp-auth] Add an auth plugin to handle Time-Based One-Time Password (TOTP) authentication via the
totp
method. This new plugin will accept the following identity options: -user-id
: user ID -username
: username -user-domain-id
: user’s domain ID -user-domain-name
: user’s domain name -passcode
: passcode generated by TOTP app or device User is uniquely identified by eitheruser-id
or combination ofusername
anduser-domain-id
oruser-domain-name
.
Bug Fixes¶
Fix passing scope parameters in Oidc* auth plugins. [Bug 1582774]
2.8.0¶
New Features¶
Added a new OidcAccessToken plugin, accessible via the ‘v3oidcaccesstoken’ entry point, making possible to authenticate using an existing OpenID Connect Access token.
Bug Fixes¶
[bug 1583780] OpenID connect support should include authenticating using directly an access token.
2.2.0¶
Bug Fixes¶
[bug 1527131] Do not provide socket values for OSX and Windows.
Other Notes¶
Added a betamax fixture for keystoneauth sessions.
Added a RFC 7231 compliant user agent string.