2023.1 Series Release Notes¶
This is a final R1.0 release of the OpenStackSDK. A few technical issues caused us not to reach this milestone cleanly, therefore we decided to one more time explicitly log everything what should be considered as R1.0. For detailed list of changes please see individual release notes from 0.99.0 to 0.103.0. Most important changes are explicitly repeated here. There were issues with maintainability of multiple available access interfaces, which forced us to consider what we are able to maintain in the long run and what we can not. That means that certain things were dropped, which is why we are releasing this as a major release. R1.0 is considered as a first major release with corresponding promise regarding backwards-compatibility.
find_backupmethods have been added to the v2 block storage proxy API. These were previously only available for the v3 proxy API.
import_imageimage proxy method now accept the following additional paramters:
These are required to support the
glance-downloadimage import method.
A number of APIs support passing an admin-only
all_projectsfilter when listing certain resources, allowing you to retrieve resources from all projects rather than just the current projects. This filter is now explicitly supported at the proxy layer for services and resources that support it. These are:
Block storage (v2)
Block storage (v3)
Add BGP Speaker and BGP Peer resources, and introduce support for CRUD operations for these. Additional REST operations introduced for speakers: add_bgp_peer, remove_bgp_peer, add_gateway_network, remove_gateway_network, get_advertised_routes, get_bgp_dragents, add_bgp_speaker_to_draget, remove_bgp_speaker_from_dragent. One new REST method is added to agents to cover the features of Dynamic Routing Agents schedulers: get_bgp_speakers_hosted_by_dragent
Tap Flowresources, and introduce support for CRUD operations for these.
get_node_supported_boot_devicesto the baremetal Proxy.
disable_node_consoleto the baremetal Proxy.
inject_nmi_to_nodeto the baremetal Proxy.
Cloud layer is now consistently returning
Resourceclass objects. Previously this was not always the case.
API response caching is implemented deep inside the code which will minimize roundtrips for repeated requests.
The majority of services were verified and adapted to the latest state of the API.
Certain code reorganization to further help in code reduction has been made (metadata, tag and quota support moved to standalone common classes).
The following proxy
find_*operations will now retrieve a detailed resource by default when retrieving by name:
Block storage (v2)
Block storage (v3)
Add search_resources method implementing generic search interface accepting resource name (as “service.resource”), name_or_id and list of additional filters and returning 0 or many resources matching those. This interface is primarily designed to be used by Ansible modules.
Server actions such as reboot and resize will now default to the latest microversion instead of 2.1 as before.
Convert container_infrastructure_management cloud operations to rely fully on service proxy with all resource classes created.
No Munch conversion and normalization of the floating ips is happening anymore. For Neutron network a pure FloatingIP object is being returned, for Nova still munch object.
The signatures of the
openstack.image.v2.import_imagehas changed. All arguments except
methodare now kwarg-only.
Cloud layer methods are returning
Resourceclass objects instead of
Munchobjects. In some cases this cause renaming of the attributes.
Munchcompatible and allows both dictionary and attribute base access.
Some historical methods, which were never properly tested were dropped.
The following Compute service proxy methods are now deprecated:
These are proxy APIs for the Image service. You should use the Image service instead via the Image service proxy methods.
search_floating_ips method is deprecated and should not be used anymore. It is going to be dropped approximately after one major cycle.
Munchis dropped as a dependency. The project has no releases since multiple years and was causing huge performance impact already during import. This has directly no negative imapct to SDK users (it now starts faster), but in the code we copied used
Munchpieces. They are going to be consistently eliminated in next releases.
Add possibility to list users in the group.
Add support for Compute API microversion 2.17, which allows admins to trigger a crash dump for a server. This can be useful for debugging misbehaving guests.
Add workflow CronTrigger resource and proxy methods.
The signatures of the various volume attachment-related methods in the compute API proxy layer have changed. These were previously incomplete and did not function as expected in many scenarios. Some callers may need to be reworked. The affected proxy methods are:
cloud.get_compute_usage method return instance of compute.usage.Usage class instead of munch.
Make sure find_server returns server details when looking up by name.
Add support for group snapshots to the block storage service.
-| Adds support to query metadef namespaces from glance.
Add support for metadata definition schema resource in image service.
Project cleanup now supports cleaning Swift (object-store). If supported by the server bulk deletion is used. Currently only filtering based on updated_at (last_modified) is supported.
Added support for the updated_at attribute for volume snapshots.
update_volumeto the block storage proxy.
Changes the baremetal
create_nodecall to be closer to how Ironic behaves. If no provision state is requested, the default state of the current microversion is used (which usually means
enroll). If the
availablestate is requested, the node does not go through cleaning (it won’t work without creating ports), an old API version is used to achieve this provision state.
The default behavior of the
register_machinecall has been modified to run cleaning by default, if enabled in Ironic. You can pass
provision_state="enroll"/"manageable"to avoid it.