[release-announce] openstacksdk 1.0.0 (antelope)

no-reply at openstack.org no-reply at openstack.org
Tue Jan 31 14:43:43 UTC 2023


We are amped to announce the release of:

openstacksdk 1.0.0: An SDK for building applications to work with
OpenStack

This release is part of the antelope release series.

The source is available from:

    https://opendev.org/openstack/openstacksdk

Download the package from:

    https://pypi.org/project/openstacksdk

Please report issues through:

    https://storyboard.openstack.org/#!/project/openstack/openstacksdk

For more details, please see below.

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.

Changes in openstacksdk 0.103.0..1.0.0
--------------------------------------

9ea832d6 Prepare release note for R1.0
6e5f34db Drop munch dependency
71dcfba0 Add Tap Services and Flows to SDK
a27619cb Finish Magnum rework
b66c6cc8 Add magnum cluster templates resource
289e5c2d Convert cloud layer to use COE proxy layer
b8038e65 Add BGP Speakers and Peers to SDK
8a8189ad image: Prevent passing conflicts args to stage_image
6baa435a image: Remove unsupported parameters from v1 proxy
e2e5042d image: Modify signatures of various image methods
d99fc112 image: Remove unnecessary abstractions
6462005c image: Remove _base_proxy module
121911fe image: Reformat proxy modules
433d97c4 image: Add missing image import options
e8d351dd Add typing information and documentation
d6ccf29f Drop _normalize class
6a0fd31a Revert "Add 'details' parameter to various 'find' proxy methods"
a79ee9ae Move _normalize_coe_* into _coe class
1046b2e3 tox: Trivial fixes
bfe2c598 Move normalize_server to compute mixin
ea6ed716 Move normalize security group to sg class
0ea056f3 Add query mappings for vpnaas resources
a0f969cf Update tox.ini for tox v4 compatibility
3356e7ce Allow passing more arguments to create_port
f075e908 compute: Pass microversion for actions
f4b9cc85 Fix docs for class SecurityGroupRule
f9a3cc2f Add 'details' parameter to various 'find' proxy methods
6fee18fc Add 'all_projects' support to proxy layers
0c54b099 Remove unnecessary mocks
e350c80a Add missing block storage v2 'find_*' methods
6b937b2c Deprecate all of the compute image proxy APIs
0018c5df Normalise query strings passed to 'find_*' methods
d1384a98 baremetal: Add Node boot_device methods
397562bc baremetal: Add Node console methods
d0e89705 baremetal: Add Node.inject_nmi method
ae22f153 Whitelist cloud functional tests in acceptance
31599337 Rework network functional tests
88d8d53d coe: Add support for clusters
b1f15919 docs: Add overview of supported services to README
62f64754 docs: Add docstring to 'openstack' module
2267d458 Stop normalizing floating ips
6b62d281 Implement unified search_resources method
70dbcfcd Initialize tests of real clouds


Diffstat (except docs and test files)
-------------------------------------

README.rst                                         | 157 ++++
.../container_infrastructure_management.rst        |  35 +
.../cluster.rst                                    |  12 +
.../cluster_certificate.rst                        |  13 +
.../cluster_template.rst                           |  13 +
.../container_infrastructure_management/index.rst  |  10 +
.../service.rst                                    |  12 +
.../user/resources/network/v2/bgp_speaker.rst      |  12 +
.../user/resources/network/v2/tap_service.rst      |  12 +
examples/compute/create.py                         |   2 +-
examples/compute/find.py                           |   2 +-
include-acceptance-regular-user.txt                |  12 +
openstack/__init__.py                              |  72 +-
openstack/_services_mixin.py                       |   5 +-
openstack/baremetal/v1/_common.py                  |   3 +
openstack/baremetal/v1/_proxy.py                   |  73 +-
openstack/baremetal/v1/node.py                     | 119 +++
openstack/block_storage/v2/_proxy.py               | 122 ++-
openstack/block_storage/v3/_proxy.py               | 161 +++-
openstack/cloud/_accelerator.py                    |   2 +
openstack/cloud/_baremetal.py                      |   5 +-
openstack/cloud/_block_storage.py                  |   2 +
openstack/cloud/_coe.py                            | 252 ++----
openstack/cloud/_compute.py                        | 170 +++-
openstack/cloud/_dns.py                            |   2 +
openstack/cloud/_floating_ip.py                    | 159 +++-
openstack/cloud/_identity.py                       |   2 +
openstack/cloud/_image.py                          |   2 +
openstack/cloud/_network.py                        |  26 +-
openstack/cloud/_normalize.py                      | 740 ----------------
openstack/cloud/_object_store.py                   |   3 +-
openstack/cloud/_orchestration.py                  |   5 +-
openstack/cloud/_security_group.py                 | 147 +++-
openstack/cloud/_shared_file_system.py             |   2 +
openstack/cloud/meta.py                            |  10 +-
openstack/cloud/openstackcloud.py                  |  84 +-
openstack/compute/v2/_proxy.py                     | 252 ++++--
openstack/compute/v2/server.py                     |  12 +-
.../__init__.py                                    |   0
.../container_infrastructure_management_service.py |  24 +
.../v1/__init__.py                                 |   0
.../v1/_proxy.py                                   | 254 ++++++
.../v1/cluster.py                                  | 169 ++++
.../v1/cluster_certificate.py                      |  32 +
.../v1/cluster_template.py                         | 116 +++
.../v1/service.py                                  |  38 +
openstack/dns/v2/_proxy.py                         |  14 +-
openstack/exceptions.py                            |  15 +-
openstack/identity/v3/_proxy.py                    |  64 +-
openstack/image/_base_proxy.py                     | 282 ------
openstack/image/v1/_proxy.py                       | 351 ++++++--
openstack/image/v2/_proxy.py                       | 834 +++++++++++++-----
openstack/image/v2/image.py                        |  58 +-
openstack/network/v2/_proxy.py                     | 584 ++++++++-----
openstack/network/v2/agent.py                      |  13 +
openstack/network/v2/bgp_peer.py                   |  45 +
openstack/network/v2/bgp_speaker.py                | 169 ++++
openstack/network/v2/load_balancer.py              |   6 +
openstack/network/v2/port.py                       |   8 +-
openstack/network/v2/router.py                     |   4 +-
openstack/network/v2/security_group_rule.py        |  10 +-
openstack/network/v2/tap_flow.py                   |  55 ++
openstack/network/v2/tap_service.py                |  51 ++
openstack/network/v2/vpn_endpoint_group.py         |   7 +
openstack/network/v2/vpn_ike_policy.py             |   5 +
openstack/network/v2/vpn_ipsec_policy.py           |   7 +
openstack/network/v2/vpn_ipsec_site_connection.py  |  10 +
openstack/network/v2/vpn_service.py                |   6 +
openstack/proxy.py                                 |  59 +-
openstack/resource.py                              |  31 +-
.../functional/cloud/test_cluster_templates.py     |   2 +-
.../cloud/test_qos_bandwidth_limit_rule.py         |   2 +
.../functional/cloud/test_qos_dscp_marking_rule.py |   2 +
.../cloud/test_qos_minimum_bandwidth_rule.py       |   2 +
.../functional/network/v2/test_address_group.py    |  47 +-
.../functional/network/v2/test_address_scope.py    |  18 +-
.../network/v2/test_agent_add_remove_network.py    |  34 +-
.../network/v2/test_agent_add_remove_router.py     |  28 +-
.../network/v2/test_auto_allocated_topology.py     |  44 +-
.../network/v2/test_availability_zone.py           |  13 +-
.../functional/network/v2/test_firewall_group.py   |  17 +-
.../functional/network/v2/test_firewall_policy.py  |  17 +-
.../functional/network/v2/test_firewall_rule.py    |  42 +-
.../v2/test_firewall_rule_insert_remove_policy.py  |  75 +-
.../functional/network/v2/test_floating_ip.py      | 154 ++--
.../network/v2/test_l3_conntrack_helper.py         |  34 +-
.../network/v2/test_local_ip_association.py        |  51 +-
.../network/v2/test_network_ip_availability.py     |  43 +-
.../network/v2/test_network_segment_range.py       |  85 +-
.../functional/network/v2/test_port_forwarding.py  | 136 +--
.../network/v2/test_qos_bandwidth_limit_rule.py    |  66 +-
.../network/v2/test_qos_dscp_marking_rule.py       |  41 +-
.../network/v2/test_qos_minimum_bandwidth_rule.py  |  66 +-
.../v2/test_qos_minimum_packet_rate_rule.py        |  66 +-
.../functional/network/v2/test_qos_rule_type.py    |  15 +-
.../functional/network/v2/test_rbac_policy.py      |  76 +-
.../network/v2/test_router_add_remove_interface.py |  38 +-
.../functional/network/v2/test_security_group.py   |  29 +-
.../network/v2/test_security_group_rule.py         |  36 +-
.../functional/network/v2/test_service_profile.py  |  79 +-
.../functional/network/v2/test_service_provider.py |   7 +-
.../network/v2/test_subnet_from_subnet_pool.py     |  25 +-
.../functional/network/v2/test_subnet_pool.py      |  42 +-
.../unit/cloud/test_coe_clusters_certificate.py    |  29 +-
.../__init__.py                                    |   0
.../v1/__init__.py                                 |   0
.../v1/test_cluster.py                             |  56 ++
.../v1/test_cluster_certificate.py                 |  43 +
.../v1/test_cluster_template.py                    |  98 +++
.../v1/test_proxy.py                               | 124 +++
.../v1/test_service.py                             |  49 ++
.../unit/network/v2/test_vpn_endpoint_group.py     |   5 +
openstack/utils.py                                 | 195 ++++-
openstack/workflow/v2/_proxy.py                    |  42 +-
...d-backup-find-snapshot-v2-756a05ccd150db82.yaml |   6 +
...-compute-image-proxy-apis-986263f6aa1b1b25.yaml |  12 +
...floating_ip_normalization-41e0edcdb0c98aee.yaml |  10 +
...image-import-proxy-params-f19d8b6166104ebe.yaml |  12 +
...ayer-kwarg-only-arguments-94c9b2033d386160.yaml |   5 +
.../list-all_projects-filter-27f1d471a7848507.yaml |  33 +
...network_add_bgp_resources-c182dc2873d6db18.yaml |  10 +
...etwork_add_taas_resources-86a947265e11ce84.yaml |   5 +
.../notes/node-boot-devices-2ab4991d75a2ab52.yaml  |   8 +
.../notes/node-consoles-63589f22da98a689.yaml      |   8 +
.../notes/node-inject-nmi-53d12681026e0b6c.yaml    |   6 +
releasenotes/notes/r1-d4efe289ebf0cbcd.yaml        |  40 +
...ew-for-find-proxy-methods-947a3280732c448a.yaml |  25 +
.../notes/search_resource-b9c2f772e01d3b2c.yaml    |   7 +
...ions-microversion-support-f14b293d9c3d3d5e.yaml |   5 +
.../switch-coe-to-proxy-c18789ed27cc1d95.yaml      |   5 +
requirements.txt                                   |   1 -
tools/print-services.py                            |  19 +-
tox.ini                                            |  30 +-
216 files changed, 8147 insertions(+), 4243 deletions(-)


Requirements updates
--------------------

diff --git a/requirements.txt b/requirements.txt
index 78e57b41..6dc4d905 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -12 +11,0 @@ keystoneauth1>=3.18.0 # Apache-2.0
-munch>=2.1.0 # MIT






More information about the Release-announce mailing list