We are pumped to announce the release of: openstacksdk 0.28.0: An SDK for building applications to work with OpenStack This release is part of the train 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/760 For more details, please see below. 0.28.0 ^^^^^^ New Features ************ * Adds support for dns (https://developer.openstack.org/api- ref/dns/) service. * Add floating IP Port Forwarding related methods. * Add image service info discovery (import constraints and supported stores) * In microversion 1.1, Masakari returns "recovery_workflow_details" information of the notification in "GET /notifications/{notification_id}" API. Added "recovery_workflow_details" attribute to Notification class to read the recovery_workflow_details of the notification. * When generating a config drive for baremetal, "mkisofs" and "xorrisofs" are now supported beside the already available "genisoimage" binary. This is useful on environment where the "genisoimage" binary is not available but "mkisofs" and/or "xorrisofs" are available. * Adds support for the bare metal introspection service. * Implements updating the baremetal Node's "maintenance_reason". * Adds support for changing bare metal resources by providing a JSON patch. Adds the following calls to the bare metal proxy: "patch_node", "patch_port", "patch_port_group" and "patch_chassis". * Supports Bare Metal API version 1.56, which allows building a config drive on the server side from a provided dictionary. * Added methods to manage object store temp-url keys and generate signatures needed for FormPost middleware. * The "auth_url" will be used for the default value of "identity_endpoint_override" in the absence of project or system- scope information. This should simplify some actions such as listing available projects. * Added support for collecting and reporting stats on calls made to statsd and prometheus. Upgrade Notes ************* * When a known service cannot be resolved to a supported version, an exception is now thrown instead of just returning a blank Proxy object. This allows returning sane errors to users. Deprecation Notes ***************** * The "set_node_instance_info" call is deprecated, use "patch_machine" with the same arguments instead. * The "purge_node_instance_info" call is deprecated, use "patch_machine" or "update_machine" instead. * Requesting volumes or backups with details from block_storage will return objects of classes Volume and Backup correspondingly, instead of VolumeDetail and BackupDetail. * Listing servers with details *servers(details=True)* will return instances of the Server class instead of ServerDetails. Bug Fixes ********* * The "get_server_by_id" method is supposed to return "None" if the server in question can't be found, but a regression was introduced causing it to raise "ResourceNotFound" instead. This has been corrected and "get_server_by_id" returns "None" correctly again. * Fixes "openstack.baremetal.configdrive.build" to actually handle the "network_data" argument. Other Notes *********** * "openstack.resource.Resource.find" now can use the database back- end to filter by name. If the resource class has "name" in the query parameters, this function will add this filter parameter in the "list" command, instead of retrieving the whole list and then manually filtering. Changes in openstacksdk 0.26.0..0.28.0 -------------------------------------- 1e810595 Continue refactoring of the image 364b17e2 Workaround older octavia version discovery f9483e5d Skip attaching FloatingIP if it is already attached bc0cff52 Add support for all_tenants in OpenStackInventory 21bb881d fixing timing 83cd4f9d Uncap jsonschema 790fefbc Add "name" filter in "list" call when retrieving a single register 769646c5 Update compute.server resource 9fb79904 Deduplicate next-page URL's query params 737bcb0e Finish updating links to point to opendev f1983475 OpenDev Migration Patch 598c994e Support for the baremetal introspection service d6a53c92 Remove now unused task_manager file 667fc55b Update baremetal to use proxy logger d8db601f Actually pass on network_data when building configdrive e8e99af4 Return None from get_server_by_id on 404 1c051733 Try to fix the masakari CI job 842d3caa Support microversion 2.61 for nova flavors 5c06d139 Add logger to Proxy object 0df7372b Removing region La1 from the list of regions. 8fed470b baremetal: Add support for mkisofs and xorrisofs for configdrive 8bbd44c9 Add floating IP port forwarding related methods d1f880fc Clarify error if no version can be found be753eac Bail earlier on a version mismatch for a supported service e9a5d45e Expand on a brief error message 16afacbc Move Orchestration methods into Proxy 6c81f736 Expose locked status for Server 0aabfb0a Remove and rearrange object bonged proxy tests af8888af Move set_temp_url_key logic into resource objects fdd364ee Add support for generating form-post signatures 3fe09b84 Allow replacing service implementation 7f0a6087 Cleanup split of openstackcloud 9ace77e6 Make PATCH a first class operation and support it for baremetal a0ec8ef7 Do not disregard tags when updating stacks 7f2efade Adds missing "params" attribute for creating a Mistral workflow execution 1a4ed826 Split OpenStackCloud into reasonable pieces b3723bed add python 3.7 unit test job 82aaf190 Update master for stable/stein 4b89bc25 Fix wait_for_server docstring e8622646 Create runtime descriptor for new service 6dcf92fc Add unit tests for connection.add_service 16f2dbe3 Add proxy API reference to baremetal user guide bde55433 baremetal: implement the correct update of the maintenance_reason field 72504d7f Use auth_url as identity endpoint when not project scoped 55235c5c Replace openstack.org git:// URLs with https:// c8b96cdd Collect request stats f9b09111 Collapse OpenStackSDKAdapter into Proxy b548c0ee added support for binding:profile parameter in create_port/update_port e7a9b529 Revert "Revert "Replace TaskManager with a keystoneauth concurrency"" 8748f4a4 Move pep8 requirements in to test-requirements cf583cca Fix some typos ddd8d84c Deprecate ServerDetails class 334f8acb Remove outdated devstack section from docs bb8b4bf5 Swap human-facing links to use opendev.org 0eaf2c95 Deprecate VolumeDetail and BackupDetail classes baa70256 Move object methods to object_store proxy 371db82c baremetal: support server-side configdrive building (API 1.56) 8d14cbaa Add DNS support a49f2056 Get rid of setUpClass and block it for forever e9e1bbe9 Add image.service_info resources 45629a9e Test _alternate_id logic Diffstat (except docs and test files) ------------------------------------- .gitreview | 2 +- .zuul.yaml | 30 +- CONTRIBUTING.rst | 4 +- HACKING.rst | 14 +- README.rst | 2 +- devstack/plugin.sh | 2 +- .../user/proxies/baremetal_introspection.rst | 25 + .../resources/baremetal_introspection/index.rst | 7 + .../baremetal_introspection/v1/introspection.rst | 13 + .../user/resources/block_storage/v2/backup.rst | 9 - .../user/resources/block_storage/v2/volume.rst | 9 - .../user/resources/image/v2/service_info.rst | 20 + .../cloud/_heat => examples/dns}/__init__.py | 0 examples/dns/list.py | 24 + lower-constraints.txt | 6 +- openstack/_adapter.py | 162 - openstack/_hacking.py | 44 + openstack/baremetal/configdrive.py | 40 +- openstack/baremetal/v1/_proxy.py | 96 +- openstack/baremetal/v1/allocation.py | 11 +- openstack/baremetal/v1/chassis.py | 1 + openstack/baremetal/v1/node.py | 106 +- openstack/baremetal/v1/port.py | 1 + openstack/baremetal/v1/port_group.py | 1 + openstack/baremetal_introspection/__init__.py | 0 .../baremetal_introspection_service.py | 22 + openstack/baremetal_introspection/v1/__init__.py | 0 openstack/baremetal_introspection/v1/_proxy.py | 130 + .../baremetal_introspection/v1/introspection.py | 131 + openstack/block_storage/v2/_proxy.py | 24 +- openstack/block_storage/v2/backup.py | 9 +- openstack/block_storage/v2/volume.py | 43 +- openstack/block_storage/v3/_proxy.py | 22 +- openstack/block_storage/v3/backup.py | 9 +- openstack/block_storage/v3/volume.py | 43 +- openstack/cloud/_baremetal.py | 704 ++ openstack/cloud/_block_storage.py | 870 ++ openstack/cloud/_clustering.py | 567 + openstack/cloud/_coe.py | 425 + openstack/cloud/_compute.py | 1939 +++ openstack/cloud/_dns.py | 296 + openstack/cloud/_floating_ip.py | 1178 ++ openstack/cloud/_identity.py | 1534 +++ openstack/cloud/_image.py | 384 + openstack/cloud/_network.py | 2566 ++++ openstack/cloud/_network_common.py | 370 + openstack/cloud/_normalize.py | 84 +- openstack/cloud/_object_store.py | 837 ++ openstack/cloud/_orchestration.py | 254 + openstack/cloud/_security_group.py | 387 + openstack/cloud/inventory.py | 6 +- openstack/cloud/openstackcloud.py | 12006 +------------------ openstack/compute/v2/_proxy.py | 59 +- openstack/compute/v2/flavor.py | 7 + openstack/compute/v2/server.py | 177 +- openstack/config/cloud_region.py | 137 +- openstack/config/defaults.json | 1 + openstack/config/loader.py | 22 +- openstack/config/schema.json | 2 +- openstack/config/vendor-schema.json | 2 +- openstack/config/vendors/citycloud.json | 1 - openstack/connection.py | 83 +- openstack/dns/__init__.py | 0 openstack/dns/dns_service.py | 22 + openstack/dns/v2/__init__.py | 0 openstack/dns/v2/_proxy.py | 494 + openstack/dns/v2/floating_ip.py | 40 + openstack/dns/v2/recordset.py | 64 + openstack/dns/v2/zone.py | 96 + openstack/dns/v2/zone_export.py | 86 + openstack/dns/v2/zone_import.py | 86 + openstack/dns/v2/zone_transfer.py | 72 + openstack/image/_base_proxy.py | 112 +- openstack/image/v1/_proxy.py | 55 +- openstack/image/v1/image.py | 64 + openstack/image/v2/_proxy.py | 257 +- openstack/image/v2/image.py | 54 +- openstack/image/v2/service_info.py | 36 + openstack/instance_ha/v1/host.py | 5 - openstack/instance_ha/v1/notification.py | 5 - openstack/instance_ha/v1/segment.py | 5 - openstack/network/v2/_proxy.py | 117 + openstack/object_store/v1/_base.py | 7 +- openstack/object_store/v1/_proxy.py | 451 +- openstack/object_store/v1/account.py | 16 + openstack/object_store/v1/container.py | 27 +- openstack/object_store/v1/info.py | 75 + openstack/object_store/v1/obj.py | 25 +- openstack/orchestration/util/__init__.py | 0 .../util}/environment_format.py | 2 +- .../_heat => orchestration/util}/event_utils.py | 0 .../util}/template_format.py | 0 .../_heat => orchestration/util}/template_utils.py | 14 +- .../{cloud/_heat => orchestration/util}/utils.py | 4 +- openstack/orchestration/v1/_proxy.py | 67 +- openstack/orchestration/v1/stack.py | 107 +- openstack/proxy.py | 164 +- openstack/resource.py | 273 +- openstack/service_description.py | 44 +- openstack/task_manager.py | 290 - .../functional/baremetal/test_baremetal_chassis.py | 10 + .../functional/baremetal/test_baremetal_node.py | 107 + .../functional/baremetal/test_baremetal_port.py | 13 + .../baremetal/test_baremetal_port_group.py | 10 + .../load_balancer/v2/test_load_balancer.py | 9 +- .../functional/orchestration/v1/test_stack.py | 8 +- .../unit/baremetal_introspection/v1/__init__.py | 0 .../unit/baremetal_introspection/v1/test_proxy.py | 142 + .../unit/cloud/test_server_delete_metadata.py | 2 + openstack/workflow/v2/execution.py | 2 + playbooks/devstack/legacy-git.yaml | 4 +- releasenotes/notes/add-dns-606cc018e01d40fa.yaml | 5 + ...ip-portforwarding-methods-cffc14a6283cedfb.yaml | 4 + .../add-image-service-info-90d6063b5ba0735d.yaml | 3 + .../bail-on-failed-service-cf299c37d5647b08.yaml | 6 + ...igdrive-mkisofs-xorrisofs-075db4d7d80e5a13.yaml | 8 + .../baremetal-introspection-973351b3ee76309e.yaml | 4 + .../baremetal-maintenance-5cb95c6d898d4d72.yaml | 4 + .../notes/baremetal-patch-feebd96b1b92f3b9.yaml | 13 + .../notes/configdrive-f8ca9f94b2981db7.yaml | 5 + .../generate-form-signature-294ca46812f291d6.yaml | 5 + .../get-server-by-id-none-3e8538800fa09d82.yaml | 7 + .../notes/identity-auth-url-f3ae8ef22d2bcab6.yaml | 7 + .../notes/network-data-bd94e4a499ba3e0d.yaml | 5 + ...ock-store-details-classes-158ab1f46655320a.yaml | 6 + ...ve-serverdetails-resource-f66cb278b224627d.yaml | 5 + .../removed-glanceclient-105c7fba9481b9be.yaml | 2 +- .../notes/request-stats-9d70480bebbdb4d6.yaml | 5 + ...ource-find-filter-by-name-e647e5c507ff4b6c.yaml | 7 + releasenotes/source/index.rst | 1 + releasenotes/source/stein.rst | 6 + requirements.txt | 2 +- test-requirements.txt | 8 +- tox.ini | 20 +- 256 files changed, 20136 insertions(+), 14226 deletions(-) Requirements updates -------------------- diff --git a/requirements.txt b/requirements.txt index 78f75851..6181b554 100644 --- a/requirements.txt +++ b/requirements.txt @@ -11 +11 @@ os-service-types>=1.2.0 # Apache-2.0 -keystoneauth1>=3.11.0 # Apache-2.0 +keystoneauth1>=3.13.0 # Apache-2.0 diff --git a/test-requirements.txt b/test-requirements.txt index 54ba19d0..c32f6356 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -3,0 +4,2 @@ +hacking>=1.0,<1.2 # Apache-2.0 + @@ -7 +9 @@ fixtures>=3.0.0 # Apache-2.0/BSD -jsonschema<3.0.0,>=2.6.0 # MIT +jsonschema>=2.6.0 # MIT @@ -8,0 +11 @@ mock>=2.0.0 # BSD +prometheus-client>=0.4.2 # Apache-2.0 @@ -11,0 +15 @@ requests-mock>=1.2.0 # Apache-2.0 +statsd>=3.3.0 @@ -15,0 +20,2 @@ testtools>=2.2.0 # MIT +doc8>=0.8.0 # Apache-2.0 +Pygments>=2.2.0 # BSD license
participants (1)
-
no-reply@openstack.org