We high-spiritedly announce the release of: python-openstackclient 4.0.0: OpenStack Command-line Client This release is part of the train release series. The source is available from: https://opendev.org/openstack/python-openstackclient Download the package from: https://pypi.org/project/python-openstackclient Please report issues through: https://bugs.launchpad.net/python-openstackclient/+bugs For more details, please see below. 4.0.0 ^^^^^ New Features ************ * Add floating IP Port Forwarding commands: "floating ip port forwarding create", "floating ip port forwarding delete", "floating ip port forwarding list", "floating ip port forwarding set" and "floating ip port forwarding show". * Add "--host" and "--hypervisor-hostname" options to "server create" command. [Blueprint add-host-and-hypervisor-hostname-flag- to-create- server (https://blueprints.launchpad.net/nova/+spec/add- host-and- hypervisor-hostname-flag-to-create-server)] * Add "--host" option to "server migrate" command (cold migration) to specify the target host of the migration. Requires "--os-compute- api-version" 2.56 or greater to target a specific host for the (cold) migration. [Story 2003325 (https://storyboard.openstack.org/#!/story/2003325)] * Add "server resize confirm" and "server resize revert" commands. These replace the now deprecated "--confirm" and "--revert" options to the "server resize" commands, respectively. * Add "--extra-dhcp-options" parameter to the "port create" command. The neutronclient "port-create" command can accept extra DHCP options, add it to the openstackclient in order to be consistent. * Add "--ethertype" option to "security group rule list" command. Valid values are "ipv4" and "ipv6". * Add "--reason" option to the "server lock" command to specify a reason when locking a server. Requires "–os-compute-api-version" 2.73 or greater. * Add "--locked" option to the "server list" command to list only locked servers. Requires "–os-compute-api-version" 2.73 or greater. * Add "--unlocked" option to the "server list" command list only unlocked servers. Requires "–os-compute-api-version" 2.73 or greater. [Blueprint add-locked-reason (https://blueprints.launchpad.net/nova/+spec/add-locked-reason)] * Add "--availability-zone" option to "server unshelve" command to enable users to specify an availability zone during unshelve of a shelved offloaded server. Note that it requires "--os-compute-api- version 2.77" or greater. [Blueprint support-specifying-az-when- restore-shelved-server (https://blueprints.launchpad.net/nova/+spec /support-specifying-az-when-restore-shelved-server)] * Add "--boot-from-volume" option to the "server create" command to create a volume-backed server from the specified image with the specified size when used in conjunction with the "--image" or "-- image-property" options. [Story 2006302 (https://storyboard.openstack.org/#!/story/2006302)] * The "server create --block-device-mapping" option now supports an "image" type in addition to "volume" and "snapshot". When specifying an image block device the compute service will create a volume from the image of the specified size and attach it to the server. [Story 2006302 (https://storyboard.openstack.org/#!/story/2006302)] Upgrade Notes ************* * Security group rule listings now have the "Ethertype" field displayed by default to more easily differentiate between IPv4 and IPv6 rules. In addition, the "IP Range" field of a security group will be changed to "0.0.0.0/0" for IPv4 and "::/0" for IPv6 if no value is returned for the address, based on the Ethertype field of the rule. For further information see [Bug 1735575 (https://bugs.launchpad.net/bugs/1735575)] * Commands that assumed the default value of "--protocol" to be "tcp" now must include "--protocol tcp" explicitly in Network commands. * Remove deprecated "ip fixed add|remove" commands. Use "server add|remove fixed ip" commands instead. * Remove deprecated "ip floating add|remove" commands. Use "server add|remove floating ip" commands instead. * Remove deprecated "role list" options "--project" and "--user". Use "role assignment list" options "--project" and "--user" instead. * Remove deprecated "user role list" command. Use "role assignment list" options "--project" and "--user" instead. * Remove deprecated "service create" option "--type". The type is supplied as a positional argument in The "service create --name <service-name> type" command. * Remove "image create|set" option "--owner". Use "--project" option instead. * Remove deprecated "port create|set" options "--device-id" and "-- host-id". Use "--device" and "--host" options instead. * Remove deprecated "router set" option "--clear-routes". Use "--no- route" option instead. * Remove deprecated "security group rule create" options "--src-ip" and "--src-group". Use "--remote-ip" and "--remote-group" options instead. * Remove deprecated "backup" commands. Use "volume backup" commands instead. * Remove deprecated "snapshot" commands. Use "volume snapshot" commands instead. * Remove deprecated "volume create" options "--project", "--user" and "--multi-attach". * Change "volume transfer request accept" to use new required option " --auth-key" rather than a second positional argument. * Volume commands now default to Volume API 3. On older clouds that do not support Volume 3.x "--os-volume-api-version 2" or the adition of "volume_api_version: '2'" in "clouds.yaml" will be required. Deprecation Notes ***************** * Deprecate the "--confirm" and "--revert" options for the "server resize" command. They have been replaced with the "server resize confirm" and *server resize revert`* commands, respectively. Bug Fixes ********* * Change the default value of "--protocol" option to "any" in "security group rule create" command when using the Neutron v2 API. [Bug 1716789 (https://bugs.launchpad.net/bugs/1716789)] * The "compute service set" command now properly handles "--os- compute-api-version" 2.53 and greater. [Story 2005349 (https://storyboard.openstack.org/#!/story/2005349)] * Compute API v2.40+ returns all matching entities rather than being limited to the API server configured maximum ("CONF.api.max_limit"). [Story 2005099 (https://storyboard.openstack.org/#!/story/2005099)] Other Notes *********** * The "configuration show" command no longer requires authentication. This is useful in debugging cloud configurations, particularly auth configurations. Changes in python-openstackclient 3.19.0..4.0.0 ----------------------------------------------- cb0c20b2 Update release table for Train and 4.0.0 de8ab5e8 More aggregate functional race chasing 037a8005 Add doc and relnote for review 639652 a96089ff Default to Cinder v3 API ee487772 Clean up app initialization and config dd1ce370 Follow-up: fix the invalid releasenote link fcd46acb Microversion 2.77: Support Specifying AZ to unshelve 7549d260 Bump lower constraint of python-zunclient 31c47ade Remove races in floating ip functional tests a88e9587 Bump min osc-lib to 1.14.0 6ee7b8d1 Format location columns in network commands f044016e Add floating IP Port Forwarding commands 6419533f Bump hacking version 6fcc2608 Remove token_endpoint auth type 03a2accb Format aggregate command fields and de-race functional tests 75f0f82c Add CLI argument tests before making changes 3b2863e3 Fix functional.base.TestCase.openstack() to optionally omit --os-auth-type 1557afb5 Document 2.53 behavior for compute service list/delete b9d63105 Add openstack server create --boot-from-volume option c28ed25e Fix <id> description for --block-device-mapping 6a199bd1 Support type=image with --block-device-mapping option 4bd53dc1 Fix compute service set handling for 2.53+ 7561e062 Add 'openstack server resize (confirm|revert)' commands 865e1829 Make configuration show not require auth ba0a8e93 Fix typo: "to and endpoint" 1bad2cb3 Fix module paths for volumev3 volume backup commands 68809fce openstack port create support --extra-dhcp-option b52a831f Mention compute service set --up|--down requires 2.11 or greater c609b98c Update api-ref location 340f25fa Add host and hypervisor_hostname to create servers 969e6abd Support IPv6 addresses better b41d7518 Add Python 3 Train unit tests 879f8207 docs: clarify compute service --service option d16d98b2 Update the constraints url 5986f473 Add Python 3 Train unit tests bfc34e11 Fix BFV server list handling with --name-lookup-one-by-one 4cd61430 Use cliff formattable columns in volume v2 commands 1af3056e Use cliff formattable columns in volume v1 commands c2630ae9 Use cliff formattable columns in object storage commands 8d63e3f0 Use cliff formattable columns in image commands fa5046a3 Use cliff formattable columns in identity commands 187be0ac Microversion 2.73: Support adding the reason behind a server lock 1aad9434 Allow "server migrate" (not live) to take "--host" option 3df5f92b Add server add/remove volume description for microversion 2.20 eb399c52 Add server event command documentation for compute API 2.21 e76e10c0 Remove deprecated volume commands and args 5a0fc68a Remove deprecated network options 67dadda7 Remove deprecated image commands f9fdc296 Remove deprecated identity commands and args b7742b59 Remove deprecated compute commands aabc67f3 Rename review.openstack.org to review.opendev.org c44f26eb Use cliff formattable columns in network commands 33a25561 Change default security group protocol to 'any' Diffstat (except docs and test files) ------------------------------------- .zuul.yaml | 3 +- README.rst | 16 +- .../cli/command-objects/floating-ip-pool.rst | 2 +- .../floating-ip-port-forwarding.rst | 173 +++++ .../cli/command-objects/security-group-rule.rst | 19 +- lower-constraints.txt | 13 +- openstackclient/api/auth_plugin.py | 61 -- openstackclient/api/compute_v2.py | 38 +- openstackclient/common/client_config.py | 71 -- openstackclient/common/configuration.py | 20 +- openstackclient/compute/v2/aggregate.py | 46 +- openstackclient/compute/v2/fixedip.py | 100 --- openstackclient/compute/v2/flavor.py | 2 +- openstackclient/compute/v2/floatingip.py | 97 --- openstackclient/compute/v2/hypervisor.py | 2 +- openstackclient/compute/v2/server.py | 321 +++++++-- openstackclient/compute/v2/server_event.py | 12 +- openstackclient/compute/v2/service.py | 86 ++- openstackclient/identity/v2_0/catalog.py | 34 +- openstackclient/identity/v2_0/project.py | 3 +- openstackclient/identity/v2_0/role.py | 148 +--- openstackclient/identity/v2_0/service.py | 30 +- openstackclient/identity/v2_0/user.py | 41 +- openstackclient/identity/v3/catalog.py | 24 +- openstackclient/identity/v3/identity_provider.py | 5 +- openstackclient/identity/v3/role.py | 125 +--- openstackclient/image/v1/image.py | 63 +- openstackclient/image/v2/image.py | 56 +- openstackclient/network/v2/address_scope.py | 10 +- openstackclient/network/v2/floating_ip.py | 2 + .../network/v2/floating_ip_port_forwarding.py | 371 +++++++++++ openstackclient/network/v2/ip_availability.py | 5 +- openstackclient/network/v2/network.py | 31 +- openstackclient/network/v2/network_agent.py | 24 +- .../network/v2/network_auto_allocated_topology.py | 17 +- openstackclient/network/v2/network_flavor.py | 10 +- .../network/v2/network_flavor_profile.py | 10 +- openstackclient/network/v2/network_meter.py | 10 +- openstackclient/network/v2/network_meter_rule.py | 10 +- openstackclient/network/v2/network_qos_policy.py | 10 +- openstackclient/network/v2/network_qos_rule.py | 10 +- .../network/v2/network_qos_rule_type.py | 8 +- openstackclient/network/v2/network_rbac.py | 10 +- openstackclient/network/v2/network_segment.py | 10 +- .../network/v2/network_segment_range.py | 11 +- openstackclient/network/v2/port.py | 97 ++- openstackclient/network/v2/router.py | 67 +- openstackclient/network/v2/security_group.py | 18 +- openstackclient/network/v2/security_group_rule.py | 134 ++-- openstackclient/network/v2/subnet.py | 31 +- openstackclient/network/v2/subnet_pool.py | 6 +- openstackclient/object/v1/account.py | 5 +- openstackclient/object/v1/container.py | 3 +- openstackclient/object/v1/object.py | 3 +- openstackclient/shell.py | 42 +- .../functional/network/v2/test_floating_ip.py | 120 ++-- .../functional/network/v2/test_network_agent.py | 4 +- .../functional/network/v2/test_subnet_pool.py | 16 +- .../v2/{test_backup.py => test_volume_backup.py} | 4 +- .../{test_snapshot.py => test_volume_snapshot.py} | 8 +- .../{test_snapshot.py => test_volume_snapshot.py} | 2 +- .../unit/identity/v3/test_identity_provider.py | 20 +- .../network/v2/test_floating_ip_port_forwarding.py | 502 ++++++++++++++ .../unit/network/v2/test_security_group_compute.py | 15 +- .../unit/network/v2/test_security_group_network.py | 20 +- .../network/v2/test_security_group_rule_compute.py | 87 +-- .../network/v2/test_security_group_rule_network.py | 49 +- .../v1/{test_backup.py => test_volume_backup.py} | 24 +- .../v2/{test_backup.py => test_volume_backup.py} | 20 +- openstackclient/volume/client.py | 2 +- openstackclient/volume/v1/qos_specs.py | 13 +- openstackclient/volume/v1/snapshot.py | 318 --------- openstackclient/volume/v1/volume.py | 62 +- .../volume/v1/{backup.py => volume_backup.py} | 130 +--- openstackclient/volume/v1/volume_snapshot.py | 54 +- .../volume/v1/volume_transfer_request.py | 22 +- openstackclient/volume/v1/volume_type.py | 60 +- openstackclient/volume/v2/consistency_group.py | 3 +- openstackclient/volume/v2/qos_specs.py | 13 +- openstackclient/volume/v2/snapshot.py | 351 ---------- openstackclient/volume/v2/volume.py | 98 ++- .../volume/v2/{backup.py => volume_backup.py} | 130 +--- openstackclient/volume/v2/volume_snapshot.py | 54 +- .../volume/v2/volume_transfer_request.py | 23 +- openstackclient/volume/v2/volume_type.py | 63 +- ...p-portforwarding-commands-6e4d8ace698ee308.yaml | 9 + ...ame-flag-to-create-server-cb8b39a9f9311d42.yaml | 6 + ...-server-migrate-with-host-4884a71903c5c8a9.yaml | 8 + ...e-confirm-revert-commands-98854ca98965432a.yaml | 12 + ...e-with-extra-dhcp-options-c2c40e4002b52e2a.yaml | 6 + ...port-security-group-rules-95272847349982e5.yaml | 14 + .../bp-add-locked-reason-425efd2def1144f1.yaml | 13 + ...en-restore-shelved-server-16e864223d51b50a.yaml | 7 + .../notes/bug-1716789-abfae897b7e61246.yaml | 10 + .../notes/config-show-00512dc60882e5c0.yaml | 6 + .../notes/osc4-compute-09246008eff260cb.yaml | 8 + .../notes/osc4-identity-6564257c67d43106.yaml | 12 + .../notes/osc4-image-e922ee6f8e028648.yaml | 5 + .../notes/osc4-network-db2aed696d964ca6.yaml | 12 + .../notes/osc4-volume-470422e5a453310e.yaml | 14 + ...-compute-service-set-2.53-3d2db875154e633a.yaml | 6 + ...6302-add-boot-from-volume-cd411b1ca776bb3c.yaml | 8 + ...02-support-bdm-type-image-0becfb63bd4fb969.yaml | 8 + .../notes/usage-list-all-49ca7a62c50e71d3.yaml | 6 + .../notes/volume-v3-default-0ffa9bebb43b5057.yaml | 7 + releasenotes/source/index.rst | 2 + requirements.txt | 4 +- setup.cfg | 80 +-- test-requirements.txt | 5 +- tox.ini | 15 +- 188 files changed, 4832 insertions(+), 5695 deletions(-) Requirements updates -------------------- diff --git a/requirements.txt b/requirements.txt index aa5debf4..67139bbd 100644 --- a/requirements.txt +++ b/requirements.txt @@ -11 +11 @@ openstacksdk>=0.17.0 # Apache-2.0 -osc-lib>=1.10.0 # Apache-2.0 +osc-lib>=1.14.0 # Apache-2.0 @@ -16 +16 @@ python-keystoneclient>=3.17.0 # Apache-2.0 -python-novaclient>=10.0.0 # Apache-2.0 +python-novaclient>=15.0.0 # Apache-2.0 diff --git a/test-requirements.txt b/test-requirements.txt index 4cb66cfd..4db30c7f 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -4,2 +4 @@ -hacking!=0.13.0,<0.14,>=0.12.0 # Apache-2.0 - +hacking>=1.1.0,<1.2.0 # Apache-2.0 @@ -42 +41 @@ python-zaqarclient>=1.0.0 # Apache-2.0 -python-zunclient>=1.3.0 # Apache-2.0 +python-zunclient>=3.4.0 # Apache-2.0