2026.2 Series Release Notes¶
4.20.0¶
New Features¶
When
cache.authis enabled, the unscoped credential of a federated authentication plugin is now kept in the keyring alongside the scoped token. A federated plugin obtains an unscoped token and then rescopes it, and that unscoped token can be rescoped again to any project, domain or system. Keeping it means one authentication serves every scope, so a single cloud entry can be used against several projects without authenticating again for each.This only applies to plugins that report the authentication as needing the user, such as the OpenID Connect authorization code and device authorization flows. Where a plugin can authenticate again on its own, the credential is not stored, since doing so would put a token in the keyring to no purpose.
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 notcache.authis 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.
4.19.0¶
New Features¶
Add
subnet_onboardtoSubnetPoolresource andonboard_network_subnetsto network._proxy.Proxy
The identity v3
Userresource now supports thefederatedattribute and theunique_id,idp_idandprotocol_idquery filters (Keystone API microversion 3.14).
Added the
ip_availability_detailsfield to the networkNetworkIPAvailabilityresource. This exposes the attribute added by the Neutronnetwork-ip-availability-detailsextension, which reports the total and used IP counts of a network separately for the subnet CIDRs and for the subnet allocation pools.
Adds support for bare metal API microversion 1.112, which adds a
descriptionfield and atraitsfield to runbooks. Runbook traits are managed through the newadd_runbook_trait,remove_runbook_traitandset_runbook_traitsproxy methods.
Add support for the Glance image-cache API
GET /v2/cache/nodes/{image_id}(list node reference URLs where an image is cached when centralized caching is enabled). This adds thecached_image_nodesmethod on the image v2 proxy andimage_nodeson the cache resource.
Added
project_cleanupsupport for the load_balancer (Octavia) and key_manager (Barbican) services. Load balancers are cleaned up withcascade=Truebefore compute and network resources. Barbican secrets and containers are cleaned up independently.
Bug Fixes¶
Fixed the
Groupresource in the block storage service to support theadd_volumesandremove_volumesbody attributes. Previously these attributes were not declared on the resource, so values passed toupdate_groupwere silently discarded and an empty update request was sent to the block storage service. Volumes can now be added to or removed from an existing group by passing a comma-separated list of volume IDs, for example:conn.block_storage.update_group(group, add_volumes='vol-1,vol-2') conn.block_storage.update_group(group, remove_volumes='vol-3')
Accessing a service proxy attribute on a
Connection(for exampleconn.block_storage) no longer raisesEndpointNotFoundat attribute-access time when the service is enabled in configuration but not present in the cloud’s service catalog. Instead a disabled-service shim is returned andServiceDisabledExceptionis raised if and when the proxy is actually used. This prevents callers that fetch proxies for services they may never use – such as python-openstackclient’sserver create, which touches the block-storage proxy unconditionally – from failing on clouds that do not deploy that service. Connections created withstrict_proxies=Trueretain the previous fail-fast behaviour.
Fixed the expected provision state for the bare metal
adoptverb. Adoption moves a node frommanageabletoactive, but the SDK expectedavailable, soset_node_provision_stateandNode.set_provision_statecalled withwait=Truewaited for a state that is never reached and eventually failed with aResourceTimeout.
Fixed
block_storage.get_groupto forward thelist_volumeargument as a request query parameter. Previously it was dropped, so the server never returned the group’s volume IDs and callers (including theopenstack volume group show --volumescommand) always saw an empty result. Requires block storage microversion 3.25 or later.
Deleting a static large object (SLO) now correctly removes the underlying segment objects in addition to the manifest object. Previously the
multipart-manifest=deleteinstruction was sent to swift as an HTTP header rather than a query string parameter, so it was ignored and the segments were left behind, which could in turn prevent the containing container from being deleted.
4.18.0¶
New Features¶
Add support for passing image size to Glance API during upload and stage operations.
Add
sizeparameter toImage.upload()andImage.stage()methodsAdd
sizeparameter toProxy.stage_image()methodAdd
get_file_size()utility function to calculate file size from file-like objectsAutomatically calculate and pass size header when size is not provided but data is available
Pass size as
X-OpenStack-Image-Sizeheader to Glance APIAdd comprehensive unit tests for size parameter functionality
This change allows users to explicitly specify the size of image data being uploaded, which can improve performance and reliability of image uploads. When size is not provided, the SDK will automatically calculate it from file-like objects that support seek/tell operations.
4.17.0¶
New Features¶
Add ability to add the location to an existing image.
Add ability to get the locations associated to an image.
The SDK now implements a new feature from the Glance API and allows users to pass a list of preferred stored when downloading an image.
Bug Fixes¶
The compute proxy API always returns the image that was created as a result of the server backup instance action, bringing the backup API bindings inline with the snapshot API bindings. For details see: https://bugs.launchpad.net/python-openstackclient/+bug/2110035
4.16.0¶
New Features¶
Add support for QoS spec actions and associations to the block storage service. The following proxy methods are now available for both v2 and v3:
associate_qos_specdisassociate_qos_specdisassociate_all_qos_specdelete_qos_spec_metadataqos_spec_associations
Add support for retrieving resource usages via the
fetch_resource_provider_usagesmethod on the Placement proxy and thefetch_usagesmethod on theResourceProviderresource class.
4.15.0¶
New Features¶
Added
router_routesfield to the networkQuota,QuotaDefaultandQuotaDetailsresources. This exposes the new Neutronrouter_routeper-project quota that controls the total number of extra routes across all routers in a project.
Adds support for Private VLAN (PVLAN) attributes to the networking service Users can now specify whether
pvlanis enabled in a network, and setpvlan_typeandpvlan_communityproperties in a port when managing these Neutron objects.
Added support to list services associated with the shared file system service.
Added support to list, get, create, update, and delete share network subnet metadata from shared file system service.
Added
reset_statusandforce_deletemethods to theShareandShareSnapshotshared file system resources.
Added list, show, update, delete and create methods for Share Types to Shared File Systems service.
Added SDK resource
ServerExternalEventsand proxy methodcreate_server_external_eventsto send server external events to the Nova API (POST /os-server-external-events).
4.14.0¶
New Features¶
Add support for key manager quota API
Added support for key manager secret ACL operations.
Added support list, get, update, delete, and create to share transfers from share file system service.
Upgrade Notes¶
A number of proxy APIs used parameters with
_idsuffixes despite accepting resources instances. These have now been renamed to drop this suffix. Backwards-compatible shims have been provided but these will be removed in the next major release.
Support for Python 3.10 has been dropped. The minimum version of Python now supported in 3.11.
The following accelerator proxy API methods have been renamed:
update_accelerator_request(topatch_accelerator_request)update_deployable(topatch_deployable)
Backwards-compatible shims are provided for all methods, but these are deprecated and will be removed in the next major release.
The folllowing metadata-related proxy methods have been renamed:
Block Storage (v2)
get_snapshot_metadata(tofetch_snapshot_metadata)get_volume_metadata(tofetch_volume_metadata)
Block Storage (v3)
get_backup_metadata(tofetch_backup_metadata)get_snapshot_metadata(tofetch_snapshot_metadata)get_volume_metadata(tofetch_volume_metadata)
Clustering (v1)
get_cluster_metadata(tofetch_cluster_metadata)
Compute (v2)
set_image_metadata(tofetch_image_metadata)set_server_metadata(tofetch_server_metadata)
Placement (v1)
get_resource_provider_aggregates(tofetch_resource_provider_aggregates)
Shared File System (v2)
get_share_metadata(tofetch_share_metadata)get_share_metadata_item(tofetch_share_metadata_item)create_share_metadata(toset_share_metadata)update_share_metadata(toset_share_metadata)
Backwards-compatible shims are provided for all methods, but these are deprecated and will be removed in the next major release.
In addition, the
set_aggregate_metadatacompute API proxy method now expects metadata to be provided as keyword arguments. A backwards compatible shim is also provided for this.
Deprecation Notes¶
The
ignore_missingoption provided to allfind_*proxy methods has been deprecated for removal. This option, and its default value ofTrue, has been the source of many bugs and its use is almost always unintentional. Users are requested to explicitly passFalseand to catch theopenstack.exceptions.NotFoundExceptionif the ignore missing behavior was indeed intentional.
4.13.0¶
New Features¶
Add
vip_sg_idsattribute to the load balancer resource, which contains a list of security group IDs for the VIP port.
Deprecation Notes¶
The
openstack.versionmodule and associated objects has been deprecated for removal. Prefer use ofimportlib.metadatato inspect version information for installed packages.
4.12.0¶
New Features¶
Add
update_passwordmethod to the identity proxy to support user self-service password reset.
Added
ha_chassis_priorityattribute to the networkAgentresource. This field is populated by the Neutronl3-agent-scheduler-ha-priorityAPI extension and indicates the OVN HA_Chassis failover priority for each gateway chassis hosting a router. The value isNonefor non-OVN mechanism drivers.
Added
update_router_in_agentmethod to the network proxy and theAgentresource. This allows updating properties (such asha_chassis_priority) of a router already associated with an L3 agent, using a PUT request on the l3-agent-scheduler API.
Bug Fixes¶
Fixed the
ZoneImportresourcebase_pathfrom/zones/tasks/importto/zones/tasks/importsto match the Designate API endpoint.
4.11.0¶
New Features¶
The 2.97 API microversion is now supported for the compute service. This adds a new API to manage shares, represented by the
openstack.compute.v2.server_share.ShareMappingresource.
Deprecation Notes¶
Support for reporting metrics to InfluxDB has been deprecated for removal. The implementation relied on an EOL Python library and only supported InfluxDB v1.
Bug Fixes¶
Fixed port binding activation and deletion methods to correctly pass the
hostparameter as a path parameter instead of in the request body. The Neutron API expects the host in the URL path for these endpoints:PUT /v2.0/ports/{port_id}/bindings/{host}/activateDELETE /v2.0/ports/{port_id}/bindings/{host}
Previously, the SDK was incorrectly sending the host parameter in both the URL path and the request body, which caused a TypeError in Neutron. The methods now correctly pass only the host identifier as a positional parameter, matching the Neutron API specification.
For more information see bug 2146296
Session.connect_retry_delayis now configurable viaclouds.yamlusing the<service type>_connect_retry_delayandconnect_retry_delayoptions.