We are pleased to announce the release of: openstacksdk 0.11.0: An SDK for building applications to work with OpenStack This release is part of the queens release series. Download the package from: https://pypi.python.org/pypi/openstacksdk For more details, please see below. 0.11.0 ^^^^^^ New Features ************ * Added a new method *openstack.connection.Connection.add_service* which allows the registration of Proxy/Resource classes defined externally. * "availability_zone_hints" now accepted for "create_network()" when "network_availability_zone" extension is enabled on target cloud. * "availability_zone_hints" now accepted for "create_router()" when "router_availability_zone" extension is enabled on target cloud. Upgrade Notes ************* * Removed the metric service. It is not an OpenStack service and does not have an entry in service-types-authority. * Meter and Alarm services have been removed. The Ceilometer REST API has been deprecated for quite some time and is no longer supported. * The "Resource2" and "Proxy2" migration has been completed. The original "Resource" and "Proxy" clases have been removed and replaced with "Resource2" and "Proxy2". Deprecation Notes ***************** * "openstack.profile.Profile" has been deprecated and will be removed in the "1.0" release. Users should use the functions in "openstack.config" instead. * The "shade" functionality that has been merged in to openstacksdk is found in "openstack.cloud" currently. None of these interfaces should be relied upon as the merge has not yet completed. Other Notes *********** * Add betacloud region for Germany Changes in openstacksdk 0.10.0..0.11.0 -------------------------------------- 64d56d7 Move profile helper method to openstack.profile af55076 Add betacloud to the vendors aba5425 Clean up the release notes a bit 97827cd Add supported method for checking the network exts ff23cd0 Baremetal NIC list should return a list baef9e5 Add retry logic mechanism a50a784 Merge OpenstackCloud and OperatorCloud files ad73e46 Updated from global requirements bd3fad7 Remove inner_exceptions plumbing 5872184 Use devstack functional test base job 63f41e8 Throw OpenStackCloudCreateException on create errors 07c8649 Pass through all_projects for get_server 586fca4 Fix batching for floating ips and ports be8a3c6 Raise error when supplying invalid query params 861446b Implement availability_zone_hints for networks and routers. f39ae3d Add some docs about not using Profile 3a531d7 Adds get encrypted password support 91b6410 Do not apply format expansions to passwords db271b7 Add resource2/proxy2 wrappers with deprecations 15e78f5 Rename resource2 and proxy2 to resource and proxy aebf019 Remove resource and proxy 3326bb0 Update type conversion to handle subtypes more better d26bc12 Update docs and pep8 tox environments 7803466 Add clustering guides node file, examples node code 3c782b5 Add clustering guides cluster file, examples cluster code 04bafdc Fix clustering detach policy describe error a984bd3 Add OSC functional tips jobs 119a26d Fix an error about listing projects in connection doc be063c4 Make floating IP to be prefered over fixed when looking for IP a85f52d Make meta.find_best_address() more generic 3afec75 Fixed a few nits in the README e1c16e6 Fix typo in the external service loader code 7b59cc1 Clean up a bit after the mapping inversion 32751d6 v2 image update fix 4df6125 Fix releasenotes builds 2eed3d2 Handle resource deletion properly c0b2d08 Add clustering guides file, Examples code. 27e767f Replace clustering examples code cluster to clustering 7fd8217 Invert the attribute mapping aa52477 Add clustering guides receiver file,examples receiver code e636890 Move openstack_cloud helper functions 34f1e04 Use version definition from openstack.version 111a27b Make sure we use config defaults in profile compat code 8cd35fb change spell error 34bae5a Migrate object_store to resource2/proxy2 a292e47 Add deprecation warnings to profile d42e200 modify spelling error of resource 4bbbffc Update Release Notes links and add bugs links dc8fc95 fix misspelling of 'configuration' 536f347 Remove message v1 support cb4c425 Remove metric service 1f05e3a Remove meter service dffe0f0 Add ability to register non-official services da2406b Rationalize logging helpers and docs 7edf9f7 Use Zuul v3 fetch-subunit-output 40d425c Merge user and users sections of the docs 26732e8 Change update/create method options 1149329 Remove the deprecated "giturl" option 6fefc92 Remove 'conditions' section in heat stack template Diffstat (except docs and test files) ------------------------------------- .zuul.yaml | 19 +- README.rst | 101 +- SHADE-MERGE-TODO.rst | 5 +- .../contributor/create/examples/resource/fake.py | 11 +- .../user/examples/create-server-name-or-id.py | 25 - .../user/examples/service-conditional-overrides.py | 5 - .../user/resources/baremetal/v1/port_group.rst | 12 + .../user/resources/block_storage/v2/snapshot.rst | 21 + .../user/resources/block_storage/v2/type.rst | 13 + .../user/resources/block_storage/v2/volume.rst | 21 + .../user/resources/clustering/v1/build_info.rst | 12 + .../user/resources/clustering/v1/cluster.rst | 12 + .../resources/clustering/v1/cluster_policy.rst | 13 + .../user/resources/clustering/v1/policy_type.rst | 12 + .../user/resources/clustering/v1/profile.rst | 12 + .../user/resources/clustering/v1/profile_type.rst | 12 + .../user/resources/clustering/v1/receiver.rst | 12 + .../user/resources/compute/v2/server_interface.rst | 13 + .../user/resources/identity/v2/extension.rst | 12 + .../user/resources/identity/v3/credential.rst | 12 + .../user/resources/key_manager/v1/container.rst | 12 + .../user/resources/key_manager/v1/secret.rst | 12 + .../resources/load_balancer/v2/health_monitor.rst | 13 + .../user/resources/load_balancer/v2/l7_policy.rst | 12 + .../user/resources/load_balancer/v2/l7_rule.rst | 12 + .../user/resources/load_balancer/v2/listener.rst | 12 + .../resources/load_balancer/v2/load_balancer.rst | 12 + .../user/resources/load_balancer/v2/member.rst | 12 + .../user/resources/load_balancer/v2/pool.rst | 12 + .../user/resources/network/v2/address_scope.rst | 12 + .../network/v2/auto_allocated_topology.rst | 13 + .../resources/network/v2/availability_zone.rst | 13 + .../user/resources/network/v2/floating_ip.rst | 12 + .../user/resources/network/v2/health_monitor.rst | 13 + .../user/resources/network/v2/load_balancer.rst | 12 + .../user/resources/network/v2/metering_label.rst | 13 + .../resources/network/v2/metering_label_rule.rst | 13 + .../network/v2/network_ip_availability.rst | 13 + .../user/resources/network/v2/pool_member.rst | 12 + .../network/v2/qos_bandwidth_limit_rule.rst | 13 + .../resources/network/v2/qos_dscp_marking_rule.rst | 13 + .../network/v2/qos_minimum_bandwidth_rule.rst | 13 + .../user/resources/network/v2/qos_policy.rst | 12 + .../user/resources/network/v2/qos_rule_type.rst | 12 + .../user/resources/network/v2/rbac_policy.rst | 12 + .../user/resources/network/v2/security_group.rst | 13 + .../resources/network/v2/security_group_rule.rst | 13 + .../user/resources/network/v2/service_profile.rst | 13 + .../user/resources/network/v2/service_provider.rst | 13 + .../user/resources/network/v2/subnet_pool.rst | 12 + .../user/resources/object_store/v1/account.rst | 12 + .../user/resources/object_store/v1/container.rst | 12 + .../user/resources/orchestration/v1/resource.rst | 12 + .../user/resources/orchestration/v1/stack.rst | 12 + .../user/resources/workflow/v2/execution.rst | 12 + .../users/guides/clustering/profile_type.rst | 44 - .../users/resources/baremetal/v1/chassis.rst | 12 - .../users/resources/baremetal/v1/port_group.rst | 12 - .../users/resources/block_storage/v2/snapshot.rst | 21 - .../users/resources/block_storage/v2/type.rst | 13 - .../users/resources/block_storage/v2/volume.rst | 21 - .../users/resources/clustering/v1/action.rst | 12 - .../users/resources/clustering/v1/build_info.rst | 12 - .../users/resources/clustering/v1/cluster.rst | 12 - .../resources/clustering/v1/cluster_policy.rst | 13 - .../users/resources/clustering/v1/policy.rst | 12 - .../users/resources/clustering/v1/policy_type.rst | 12 - .../users/resources/clustering/v1/profile.rst | 12 - .../users/resources/clustering/v1/profile_type.rst | 12 - .../users/resources/clustering/v1/receiver.rst | 12 - .../users/resources/compute/v2/extension.rst | 12 - .../resources/compute/v2/server_interface.rst | 13 - .../users/resources/compute/v2/server_ip.rst | 12 - .../users/resources/database/v1/database.rst | 12 - .../users/resources/database/v1/instance.rst | 12 - .../users/resources/identity/v2/extension.rst | 12 - .../users/resources/identity/v3/credential.rst | 12 - .../users/resources/identity/v3/endpoint.rst | 12 - .../users/resources/key_manager/v1/container.rst | 12 - .../users/resources/key_manager/v1/order.rst | 12 - .../users/resources/key_manager/v1/secret.rst | 12 - .../resources/load_balancer/v2/health_monitor.rst | 13 - .../users/resources/load_balancer/v2/l7_policy.rst | 12 - .../users/resources/load_balancer/v2/l7_rule.rst | 12 - .../users/resources/load_balancer/v2/listener.rst | 12 - .../resources/load_balancer/v2/load_balancer.rst | 12 - .../users/resources/load_balancer/v2/member.rst | 12 - .../users/resources/load_balancer/v2/pool.rst | 12 - .../users/resources/metric/v1/archive_policy.rst | 13 - .../users/resources/metric/v1/capabilities.rst | 12 - .../users/resources/network/v2/address_scope.rst | 12 - .../network/v2/auto_allocated_topology.rst | 13 - .../resources/network/v2/availability_zone.rst | 13 - .../users/resources/network/v2/extension.rst | 12 - .../users/resources/network/v2/floating_ip.rst | 12 - .../users/resources/network/v2/health_monitor.rst | 13 - .../users/resources/network/v2/load_balancer.rst | 12 - .../users/resources/network/v2/metering_label.rst | 13 - .../resources/network/v2/metering_label_rule.rst | 13 - .../network/v2/network_ip_availability.rst | 13 - .../users/resources/network/v2/pool_member.rst | 12 - .../network/v2/qos_bandwidth_limit_rule.rst | 13 - .../resources/network/v2/qos_dscp_marking_rule.rst | 13 - .../network/v2/qos_minimum_bandwidth_rule.rst | 13 - .../users/resources/network/v2/qos_policy.rst | 12 - .../users/resources/network/v2/qos_rule_type.rst | 12 - .../users/resources/network/v2/rbac_policy.rst | 12 - .../users/resources/network/v2/security_group.rst | 13 - .../resources/network/v2/security_group_rule.rst | 13 - .../users/resources/network/v2/service_profile.rst | 13 - .../resources/network/v2/service_provider.rst | 13 - .../users/resources/network/v2/subnet_pool.rst | 12 - .../users/resources/object_store/v1/account.rst | 12 - .../users/resources/object_store/v1/container.rst | 12 - .../users/resources/orchestration/v1/resource.rst | 12 - .../users/resources/orchestration/v1/stack.rst | 12 - .../users/resources/workflow/v2/execution.rst | 12 - .../users/resources/workflow/v2/workflow.rst | 12 - examples/cloud/cleanup-servers.py | 26 + examples/cloud/create-server-dict.py | 35 + examples/cloud/create-server-name-or-id.py | 38 + examples/cloud/debug-logging.py | 18 + examples/cloud/find-an-image.py | 19 + examples/cloud/http-debug-logging.py | 18 + examples/cloud/munch-dict-object.py | 19 + examples/cloud/normalization.py | 19 + examples/cloud/server-information.py | 34 + examples/cloud/service-conditional-overrides.py | 17 + examples/cloud/service-conditionals.py | 18 + examples/cloud/strict-mode.py | 20 + examples/cloud/upload-large-object.py | 22 + examples/cloud/upload-object.py | 22 + examples/cloud/user-agent.py | 18 + examples/clustering/action.py | 37 + examples/clustering/cluster.py | 172 ++ examples/clustering/event.py | 37 + examples/clustering/node.py | 93 + examples/clustering/policy.py | 16 +- examples/clustering/policy_type.py | 6 +- examples/clustering/profile.py | 16 +- examples/clustering/profile_type.py | 6 +- examples/clustering/receiver.py | 83 + examples/image/create.py | 2 +- examples/image/delete.py | 2 +- examples/image/download.py | 2 +- examples/image/list.py | 2 +- openstack/__init__.py | 125 +- openstack/_adapter.py | 17 +- openstack/_log.py | 98 +- openstack/baremetal/v1/_proxy.py | 4 +- openstack/baremetal/v1/chassis.py | 4 +- openstack/baremetal/v1/driver.py | 2 +- openstack/baremetal/v1/node.py | 6 +- openstack/baremetal/v1/port.py | 4 +- openstack/baremetal/v1/port_group.py | 4 +- openstack/baremetal/version.py | 10 +- openstack/block_storage/v2/_proxy.py | 4 +- openstack/block_storage/v2/snapshot.py | 30 +- openstack/block_storage/v2/stats.py | 9 +- openstack/block_storage/v2/type.py | 10 +- openstack/block_storage/v2/volume.py | 58 +- openstack/cloud/__init__.py | 66 + openstack/cloud/_utils.py | 59 +- openstack/cloud/cmd/inventory.py | 2 +- openstack/cloud/inventory.py | 10 +- openstack/cloud/meta.py | 31 +- openstack/cloud/openstackcloud.py | 2663 ++++++++++++++++++- openstack/cloud/operatorcloud.py | 2597 ------------------ openstack/clustering/v1/_proxy.py | 31 +- openstack/clustering/v1/action.py | 2 +- openstack/clustering/v1/build_info.py | 2 +- openstack/clustering/v1/cluster.py | 4 +- openstack/clustering/v1/cluster_attr.py | 2 +- openstack/clustering/v1/cluster_policy.py | 2 +- openstack/clustering/v1/event.py | 2 +- openstack/clustering/v1/node.py | 4 +- openstack/clustering/v1/policy.py | 6 +- openstack/clustering/v1/policy_type.py | 2 +- openstack/clustering/v1/profile.py | 6 +- openstack/clustering/v1/profile_type.py | 2 +- openstack/clustering/v1/receiver.py | 4 +- openstack/clustering/v1/service.py | 2 +- openstack/clustering/version.py | 2 +- openstack/compute/v2/_proxy.py | 47 +- openstack/compute/v2/availability_zone.py | 10 +- openstack/compute/v2/extension.py | 16 +- openstack/compute/v2/flavor.py | 31 +- openstack/compute/v2/hypervisor.py | 42 +- openstack/compute/v2/image.py | 34 +- openstack/compute/v2/keypair.py | 25 +- openstack/compute/v2/limits.py | 84 +- openstack/compute/v2/server.py | 106 +- openstack/compute/v2/server_group.py | 14 +- openstack/compute/v2/server_interface.py | 16 +- openstack/compute/v2/server_ip.py | 12 +- openstack/compute/v2/service.py | 18 +- openstack/compute/v2/volume_attachment.py | 16 +- openstack/compute/version.py | 2 +- openstack/config/cloud_region.py | 13 +- openstack/config/loader.py | 8 +- openstack/config/vendors/betacloud.json | 14 + openstack/connection.py | 205 +- openstack/database/v1/_proxy.py | 4 +- openstack/database/v1/database.py | 2 +- openstack/database/v1/flavor.py | 2 +- openstack/database/v1/instance.py | 2 +- openstack/database/v1/user.py | 2 +- openstack/exceptions.py | 15 +- openstack/identity/v2/_proxy.py | 2 +- openstack/identity/v2/extension.py | 2 +- openstack/identity/v2/role.py | 2 +- openstack/identity/v2/tenant.py | 2 +- openstack/identity/v2/user.py | 2 +- openstack/identity/v3/_proxy.py | 2 +- openstack/identity/v3/credential.py | 4 +- openstack/identity/v3/domain.py | 4 +- openstack/identity/v3/endpoint.py | 4 +- openstack/identity/v3/group.py | 4 +- openstack/identity/v3/policy.py | 4 +- openstack/identity/v3/project.py | 4 +- openstack/identity/v3/region.py | 4 +- openstack/identity/v3/role.py | 2 +- openstack/identity/v3/role_assignment.py | 2 +- .../identity/v3/role_domain_group_assignment.py | 2 +- .../identity/v3/role_domain_user_assignment.py | 2 +- .../identity/v3/role_project_group_assignment.py | 2 +- .../identity/v3/role_project_user_assignment.py | 2 +- openstack/identity/v3/service.py | 4 +- openstack/identity/v3/trust.py | 2 +- openstack/identity/v3/user.py | 4 +- openstack/identity/version.py | 2 +- openstack/image/v1/_proxy.py | 2 +- openstack/image/v1/image.py | 2 +- openstack/image/v2/_proxy.py | 24 +- openstack/image/v2/image.py | 142 +- openstack/image/v2/member.py | 16 +- openstack/key_manager/v1/_proxy.py | 4 +- openstack/key_manager/v1/container.py | 25 +- openstack/key_manager/v1/order.py | 30 +- openstack/key_manager/v1/secret.py | 53 +- openstack/load_balancer/v2/_proxy.py | 4 +- openstack/load_balancer/v2/health_monitor.py | 2 +- openstack/load_balancer/v2/l7_policy.py | 2 +- openstack/load_balancer/v2/l7_rule.py | 2 +- openstack/load_balancer/v2/listener.py | 2 +- openstack/load_balancer/v2/load_balancer.py | 2 +- openstack/load_balancer/v2/member.py | 2 +- openstack/load_balancer/v2/pool.py | 2 +- openstack/load_balancer/version.py | 2 +- openstack/message/message_service.py | 3 +- openstack/message/v1/__init__.py | 0 openstack/message/v1/_proxy.py | 93 - openstack/message/v1/claim.py | 87 - openstack/message/v1/message.py | 107 - openstack/message/v1/queue.py | 34 - openstack/message/v2/_proxy.py | 8 +- openstack/message/v2/claim.py | 24 +- openstack/message/v2/message.py | 24 +- openstack/message/v2/queue.py | 20 +- openstack/message/v2/subscription.py | 26 +- openstack/message/version.py | 4 +- openstack/meter/__init__.py | 0 openstack/meter/alarm/__init__.py | 0 openstack/meter/alarm/alarm_service.py | 24 - openstack/meter/alarm/v2/__init__.py | 0 openstack/meter/alarm/v2/_proxy.py | 129 - openstack/meter/alarm/v2/alarm.py | 91 - openstack/meter/alarm/v2/alarm_change.py | 52 - openstack/meter/meter_service.py | 24 - openstack/meter/v2/__init__.py | 0 openstack/meter/v2/_proxy.py | 167 -- openstack/meter/v2/capability.py | 37 - openstack/meter/v2/meter.py | 42 - openstack/meter/v2/resource.py | 44 - openstack/meter/v2/sample.py | 52 - openstack/meter/v2/statistics.py | 62 - openstack/metric/__init__.py | 0 openstack/metric/metric_service.py | 24 - openstack/metric/v1/__init__.py | 0 openstack/metric/v1/_proxy.py | 28 - openstack/metric/v1/archive_policy.py | 35 - openstack/metric/v1/capabilities.py | 25 - openstack/metric/v1/metric.py | 39 - openstack/metric/v1/resource.py | 46 - openstack/network/v2/_proxy.py | 8 +- openstack/network/v2/address_scope.py | 2 +- openstack/network/v2/agent.py | 2 +- openstack/network/v2/auto_allocated_topology.py | 2 +- openstack/network/v2/availability_zone.py | 2 +- openstack/network/v2/extension.py | 2 +- openstack/network/v2/flavor.py | 2 +- openstack/network/v2/floating_ip.py | 4 +- openstack/network/v2/health_monitor.py | 2 +- openstack/network/v2/listener.py | 2 +- openstack/network/v2/load_balancer.py | 2 +- openstack/network/v2/metering_label.py | 2 +- openstack/network/v2/metering_label_rule.py | 2 +- openstack/network/v2/network.py | 2 +- openstack/network/v2/network_ip_availability.py | 2 +- openstack/network/v2/pool.py | 2 +- openstack/network/v2/pool_member.py | 2 +- openstack/network/v2/port.py | 2 +- openstack/network/v2/qos_bandwidth_limit_rule.py | 2 +- openstack/network/v2/qos_dscp_marking_rule.py | 2 +- openstack/network/v2/qos_minimum_bandwidth_rule.py | 2 +- openstack/network/v2/qos_policy.py | 2 +- openstack/network/v2/qos_rule_type.py | 2 +- openstack/network/v2/quota.py | 2 +- openstack/network/v2/rbac_policy.py | 2 +- openstack/network/v2/router.py | 2 +- openstack/network/v2/security_group.py | 2 +- openstack/network/v2/security_group_rule.py | 2 +- openstack/network/v2/segment.py | 2 +- openstack/network/v2/service_profile.py | 2 +- openstack/network/v2/service_provider.py | 2 +- openstack/network/v2/subnet.py | 2 +- openstack/network/v2/subnet_pool.py | 2 +- openstack/network/v2/vpn_service.py | 2 +- openstack/network/version.py | 2 +- openstack/object_store/v1/_base.py | 64 +- openstack/object_store/v1/_proxy.py | 111 +- openstack/object_store/v1/account.py | 17 +- openstack/object_store/v1/container.py | 82 +- openstack/object_store/v1/obj.py | 195 +- openstack/orchestration/v1/_proxy.py | 4 +- openstack/orchestration/v1/resource.py | 2 +- openstack/orchestration/v1/software_config.py | 2 +- openstack/orchestration/v1/software_deployment.py | 2 +- openstack/orchestration/v1/stack.py | 2 +- openstack/orchestration/v1/stack_environment.py | 2 +- openstack/orchestration/v1/stack_files.py | 2 +- openstack/orchestration/v1/stack_template.py | 7 +- openstack/orchestration/v1/template.py | 2 +- openstack/orchestration/version.py | 2 +- openstack/profile.py | 98 +- openstack/proxy.py | 158 +- openstack/proxy2.py | 300 +-- openstack/resource.py | 1529 +++++------ openstack/resource2.py | 972 +------ openstack/service_description.py | 167 ++ openstack/task_manager.py | 4 +- .../functional/meter/alarm/v2/test_alarm_change.py | 44 - .../unit/orchestration/v1/test_stack_files.py | 2 +- .../unit/orchestration/v1/test_stack_template.py | 26 +- openstack/utils.py | 92 +- openstack/workflow/v2/_proxy.py | 4 +- openstack/workflow/v2/execution.py | 2 +- openstack/workflow/v2/workflow.py | 2 +- openstack/workflow/version.py | 2 +- playbooks/devstack/post.yaml | 4 - playbooks/devstack/pre.yaml | 8 - playbooks/devstack/run.yaml | 3 - .../notes/add-service-0bcc16eb026eade3.yaml | 5 + .../notes/bug-2001080-de52ead3c5466792.yaml | 3 - .../catch-up-release-notes-e385fad34e9f3d6e.yaml | 7 - .../notes/deprecated-profile-762afdef0e8fc9e8.yaml | 6 + ...ailability_zone_extension-675c2460ebb50a09.yaml | 8 + .../notes/remove-metric-fe5ddfd52b43c852.yaml | 5 + .../removed-glanceclient-105c7fba9481b9be.yaml | 33 +- .../notes/removed-meter-6f6651b6e452e000.yaml | 5 + .../resource2-migration-835590b300bef621.yaml | 11 + .../vendor-add-betacloud-03872c3485104853.yaml | 3 + releasenotes/source/index.rst | 8 +- releasenotes/source/mainline.rst | 5 - releasenotes/source/mitaka.rst | 6 - releasenotes/source/newton.rst | 6 - releasenotes/source/unreleased.rst | 6 - test-requirements.txt | 5 +- tox.ini | 33 +- 744 files changed, 14214 insertions(+), 18473 deletions(-) Requirements updates -------------------- diff --git a/test-requirements.txt b/test-requirements.txt index 4584371..cede4be 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -4,2 +3,0 @@ -hacking!=0.13.0,<0.14,>=0.12.0 # Apache-2.0 - @@ -7 +4,0 @@ coverage!=4.4,>=4.0 # Apache-2.0 -doc8>=0.6.0 # Apache-2.0 @@ -13 +10 @@ python-subunit>=1.0.0 # Apache-2.0/BSD -oslotest>=1.10.0 # Apache-2.0 +oslotest>=3.2.0 # Apache-2.0