2023.1 Series Release Notes

1.0.0

Prelude

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.

New Features

  • The find_snapshot and find_backup methods have been added to the v2 block storage proxy API. These were previously only available for the v3 proxy API.

  • The openstack.image.Image.import_image method and import_image image proxy method now accept the following additional paramters:

    • remote_region

    • remote_image_id

    • remote_service_interface

    These are required to support the glance-download image import method.

  • A number of APIs support passing an admin-only all_projects filter 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)

      • find_snapshot

      • snapshots

      • find_volume

      • volumes

    • Block storage (v3)

      • find_snapshot

      • snapshots

      • find_volume

      • volumes

    • Compute (v2)

      • find_server

      • find_server_group

      • server_groups

    • Workflow (v2)

      • find_cron_triggers

      • cron_triggers

  • 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

  • Add Tap Service and Tap Flow resources, and introduce support for CRUD operations for these.

  • Adds get_boot_device and get_supported_boot_devices to openstack.baremetal.v1.Node.

  • Adds get_node_boot_device and get_node_supported_boot_devices to the baremetal Proxy.

  • Adds get_console and set_console_state to openstack.baremetal.v1.Node.

  • Adds get_node_console, enable_node_console and disable_node_console to the baremetal Proxy.

  • Adds inject_nmi openstack.baremetal.v1.Node.

  • Adds inject_nmi_to_node to the baremetal Proxy.

  • Cloud layer is now consistently returning Resource class 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)

      • find_volume

      • find_snapshot

      • find_backup

    • Block storage (v3)

      • find_volume

      • find_snapshot

      • find_backup

      • find_group

      • find_group_snapshot

    • Compute (v2)

      • find_image

      • find_server

      • find_hypervisor

  • 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.

Upgrade Notes

  • 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_image has changed. All arguments except image and method are now kwarg-only.

  • Cloud layer methods are returning Resource class objects instead of Munch objects. In some cases this cause renaming of the attributes. Resource class is Munch compatible and allows both dictionary and attribute base access.

  • Some historical methods, which were never properly tested were dropped.

Deprecation Notes

  • The following Compute service proxy methods are now deprecated:

    • find_image

    • get_image

    • delete_image

    • images

    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.

  • Munch is 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 Munch pieces. They are going to be consistently eliminated in next releases.

0.103.0

New Features

  • 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.

Upgrade Notes

  • 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:

    • create_volume_attachment

    • delete_volume_attachment

    • update_volume_attachment

    • get_volume_attachment

    • volume_attachments

  • cloud.get_compute_usage method return instance of compute.usage.Usage class instead of munch.

Bug Fixes

  • Make sure find_server returns server details when looking up by name.

0.102.0

New Features

  • 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.

  • Added update_volume to the block storage proxy.

Upgrade Notes

  • Changes the baremetal create_node call 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 available state 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_machine call has been modified to run cleaning by default, if enabled in Ironic. You can pass provision_state="enroll"/"manageable" to avoid it.