openstacksdk 1.0.0 (antelope)
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
participants (1)
-
no-reply@openstack.org