Current Series Release Notes

4.20.0-52

New Features

  • Add support for the Glance image-cache API POST /v2/cache/clean and POST /v2/cache/prune (clean invalid cache entries and prune cache size). This adds the clean_cache and prune_cache methods on the image v2 proxy and cache resource.

Upgrade Notes

  • The precedence used when resolving statsd metrics configuration has changed. Values are now resolved in the following order, from highest to lowest priority: values passed explicitly (e.g. via the statsd_config argument), environment variables (STATSD_HOST, STATSD_PORT, STATSD_PREFIX) and finally the metrics.statsd section of clouds.yaml. Previously the configuration file took precedence over environment variables, which was inconsistent with how configuration is resolved elsewhere.

Deprecation Notes

  • The statsd_host, statsd_port and statsd_prefix arguments of openstack.config.cloud_region.CloudRegion have been deprecated in favour of the new statsd_config argument, which accepts a single dict of statsd configuration. The legacy arguments continue to work but cannot be combined with statsd_config.

Bug Fixes

  • Remove incorrect TagMixin from Domain resource. The Keystone Identity API does not support tags on domains. [bug 2166512]

  • Connection no longer keeps itself alive for the lifetime of the process. Cleanup was registered with atexit.register(self.close), and because a bound method holds a strong reference to its instance, every Connection ever created stayed reachable from the atexit registry along with its keystoneauth1 session, that session’s urllib3 connection pools and their CA-loaded SSLContext objects. Applications that build a Connection per request, such as Horizon, grew by hundreds of kilobytes per request until the worker was restarted. Cleanup now uses weakref.finalize, which still runs at interpreter shutdown for connections that are still alive but does not prevent them from being garbage collected earlier.

  • Connection.close() now also releases the connection pool of the requests.Session held by the keystoneauth1 session. Previously the pooled (keep-alive) connections were only released when the keystoneauth1 session object was garbage collected, which could leave sockets open for the lifetime of the process. Externally supplied sessions are still left untouched.

4.20.0

New Features

  • Added CloudRegion.clear_auth_cache, which discards any authentication cached for a cloud. Both the copy kept in the keyring and the state held in memory by the plugin are dropped, so that a connection already built from the region cannot keep using the credential or write it back when it closes. The next authentication starts from scratch, which for an interactive plugin means asking the user again. Use it when the cached credential is known to be unusable, such as after it has been revoked or when a different account is wanted. It works whether or not cache.auth is currently enabled and whether or not a keyring is available: the in-memory state is dropped regardless, and a credential cached while caching was on can still be removed once it has been turned off.