Yoga Series Release Notes

17.6.0

New Features

  • Added support for microversion 2.90. This microversion provides the ability to manually configure the instance hostname attribute when creating a new instance (nova boot --hostname HOSTNAME ...), updating an existing instance (nova update --hostname HOSTNAME ...), or rebuilding an existing instance (nova rebuild --hostname HOSTNAME). This attribute is published via the metadata service and config drive and can be used by init scripts such as cloud-init to configure the guest’s hostname.

  • Added support for microversion 2.89. This microversion removes the id field while adding the attachment_id and bdm_uuid fields to the responses of GET /servers/{server_id}/os-volume_attachments and GET /servers/{server_id}/os-volume_attachments/{volume_id} with these changes reflected in novaclient under the nova volume-attachments command.

17.4.0

New Features

  • Added support for microversion 2.88. The novaclient.v2.hypervisors.HypervisorManager.uptime method will now transparently switch between the /os-hypervisors/{id}/uptime API, which is deprecated in 2.88, and the /os-hypervisors/{id} API, which now includes uptime information, based on the microversion.

Deprecation Notes

  • The nova hypervisor-stats command and underlying novaclient.v2.hypervisors.HypervisorStatsManager.statistics API are deprecated starting in microversion 2.88 and will return an error starting on this version.

17.3.0

Deprecation Notes

  • The following CLIs are deprecated.

    • nova agent-create

    • nova agent-delete

    • nova agent-list

    • nova agent-modify

    The CLIs will be removed in the first major release after Nova 24.0.0 X is released.

Bug Fixes

  • Bug #1903727: Fixed raw Python error message when using nova without a subcommand while passing an optional argument, such as --os-compute-api-version 2.87.

17.0.0

New Features

  • Added the following filters support for the nova list command, these filters are admin-only restricted until microversion 2.82:

    • –availability-zone

    • –config-drive

    • –no-config-drive

    • –key-name

    • –power-state

    • –task-state

    • –vm-state

    • –progress

    Existing user filter will be available to non admin since microversion 2.83.

  • Support is added for compute API microversion 2.85. This adds the ability to update an attached volume with a delete_on_termination, which specify if the attached volume should be deleted when the server is destroyed.

    • The --delete-on-termination and --no-delete-on-termination options are added to the nova volume-update CLI.

    • New kwarg called delete_on_termination added to the python API binding:

    • novaclient.v2.volumes.VolumeManager.update_server_volume()

Known Issues

  • The nova show command will no longer output the user_data column. This is traditionally binary data of limited value from a CLI perspective.

Upgrade Notes

  • Python 2 is no longer supported. Python 3 is required.

16.0.0

New Features

  • Added support for microversion 2.80 which adds user_id and project_id filter parameters to the GET /os-migrations API.

    New kwargs project_id and user_id have been added to the following python API binding:

    • novaclient.v2.migrations.MigrationManager.list

    The following CLI changes have been made:

    • The --project-id and --user-id options are added to the nova migration-list CLI.

    • The nova server-migration-list and nova server-migration-show commands will show the Project ID and User ID values when using microversion 2.80 or greater.

  • Added support for microversion 2.81 which adds image pre-caching support by aggregate.

    • The aggregate-cache-images command is added to the CLI

    • The cache_images() method is added to the python API binding

Upgrade Notes

  • The --hint option for the boot command expects a key-value argument. Previously, if this was not the case, the argument would be silently ignored. It will now raise an error.

  • The following CLIs and their backing API bindings have been removed.

    • nova list-extensions

    • nova cell-capacities

    • nova cell-show

Bug Fixes

  • A check for a value of the ‘–config-drive’ option has been added on the nova boot command. A boolean value is only allowed in the option now.

15.1.0

New Features

  • Added support for microversion 2.78 which outputs the server NUMA topology information in the following command:

    • nova server-topology

    And associated python API bindings:

    • novaclient.v2.servers.Server.topology

    • novaclient.v2.servers.ServerManager.topology

  • Added support for microversion 2.79 which includes the following changes:

    • The --delete-on-termination option is added to the nova volume-attach CLI.

    • A DELETE ON TERMINATION column is added to the nova volume-attachments table.

    • New kwarg called delete_on_termination added to the python API binding:

      • novaclient.v2.volumes.VolumeManager.create_server_volume()

15.0.0

New Features

  • The --migration-type and --source-compute options are added to the nova migration-list CLI and related kwargs are added to the novaclient.v2.migrations.MigrationManager.list method. These can be used to filter the list of migrations by type (evacuation, live-migration, migration, resize) and the name of the source compute service host involved in the migration.

  • Added support for microversion 2.75. The following changes were made:

    • Return all fields of server in nova rebuild command which are returned in nova show. Both command will return the same set of fields of server representation.

    • Default return value of swap field will be 0 (integer) in below commands:

      • nova flavor-list

      • nova flavor-show

      • nova flavor-create

      • nova flavor-update

  • Support has been added for microversion 2.77. This microversion allows specifying an availability zone to unshelve a shelve offloaded server.

Upgrade Notes

  • The following properties have been removed.

    • novaclient.client.SessionClient

      • management_url

    • novaclient.v2.client.Client

      • projectid

      • tenant_id

    The following methods have been removed.

    • novaclient.client.get_client_class

    • novaclient.v2.client.Client

      • set_management_url

      • authenticate

    The novaclient.v2.client.Client.__enter__ method now raises the InvalidUsage runtime error.

Deprecation Notes

  • The following CLIs and their backing API bindings are deprecated.

    • nova list-extensions

    • nova cell-capacities

    • nova cell-show

    The CLIs and API bindings will be removed in the first major release after Nova 20.0.0 Train is released.

14.2.0

New Features

  • Support is added for the 2.74 microversion which allows specifying the --host and --hypervisor-hostname options on the nova boot command. The novaclient.v2.servers.ServerManager.create() method now also supports host and hypervisor_hostname parameters.

14.1.0

New Features

  • The novaclient.v2.hypervisors.HypervisorManager.search method now accepts a detailed boolean kwarg which defaults to False but when True will search for the given hypervisor hostname match and return details about any matching hypervisors. Specifying detailed=True requires compute API version 2.53 or greater.

14.0.0

New Features

  • Added a --reason option to nova lock command that enables users to specify a reason when locking a server and a locked filtering/sorting option to nova list command which enables users to filter/sort servers based on their locked value in microversion 2.73.

Upgrade Notes

  • The following deprecated options have been removed.

    • --endpoint-override (Authentication option)

    • --instance-name (nova list command)

13.0.0

New Features

  • From microversion 2.69 the results of nova list, nova show and nova service-list may contain missing information in their outputs when there are partial infrastructure failure periods in the deployment. See Handling Down Cells for more information on the missing keys/info.

  • Added support for microversion 2.71 which outputs the server_groups field in the following commands:

    • nova show

    • nova rebuild

  • Support has been added for microversion 2.72. This microversion allows creating a server using the nova boot command with pre-existing ports having a resource_request value to enable features such as guaranteed minimum bandwidth for quality of service.

  • Added support for microversion 2.70 which outputs the Tag field in the following commands:

    • nova interface-list

    • nova interface-attach

    • nova volume-attachments

    • nova volume-attach

Upgrade Notes

  • Added support for microversion 2.68, which removes the --force option from the nova evacuate, nova live-migration, nova host-evacuate and nova host-evacuate-live commands.

  • The nova interface-attach command shows output of its result when it is successful.

  • The following methods return a NetworkInterface object instead of a Server object.

    • The interface_attach method in the novaclient.v2.Server class

    • The interface_attach method in the novaclient.v2.ServerManager class

Other Notes

  • The novaclient.v2.servers.Server.networks property method now returns an OrderedDict where the keys are sorted in natural (ascending) order. This means the nova show and nova list output will have predictable sort order on the networks attached to a server.

12.0.0

Upgrade Notes

  • All modules of novaclient.v2.contrib have been removed.

  • The only_contrib parameter for the novaclient.client.discover_extensions method is no longer valid.

Deprecation Notes

  • The --instance-name option has been deprecated from the nova list command because the instance name query parameter is ignored by the compute REST API.

11.1.0

New Features

  • Added support for microversion 2.66 which adds changes-before parameter to the servers, os-instance-actions or os-migrations APIs.

    • This parameter (changes-before) does not change any read-deleted behavior in the os-instance-actions or os-migrations APIs.

    • Like the changes-since filter, the changes-before filter will also return deleted servers.

    • The --changes-before options is added to the nova list, nova instance-action-list and nova migration-list CLIs.

  • Support is added for the 2.67 microversion which allows specifying a volume_type with the --block-device option on the nova boot command. The novaclient.v2.servers.ServerManager.create() method now also supports a volume_type entry in the block_device_mapping_v2 parameter.

Bug Fixes

  • The user data argument in the nova rebuild command was passing the filename as userdata. Now this passes the contents of the file as intended.

11.0.0

New Features

  • Added support for microversion 2.63, which includes the following changes:

    • New environment variable called OS_TRUSTED_IMAGE_CERTIFICATE_IDS

    • New nova boot option called --trusted-image-certificate-id

    • New nova rebuild options called --trusted-image-certificate-id and --trusted-image-certificates-unset

    • New kwarg called trusted_image_certificates added to python API bindings:

      • novaclient.v2.servers.ServerManager.create()

      • novaclient.v2.servers.ServerManager.rebuild()

  • Added support for microversion 2.64, which includes the following changes:

    • The --rule options is added to the nova server-group-create CLI that enables user to create server group with specific policy rules.

    • Remove metadata column in the output of nova server-group-create, nova server-group-get, nova server-group-list.

    • Remove policies column, add policy and rules columns in the output of nova server-group-create, nova server-group-get, nova server-group-list.

  • Support has been added for the compute API 2.65 microversion. This allows calling nova live-migration-abort on live migrations that are in queued or preparing status in addition to the already accepted running status.

Upgrade Notes

  • The deprecated --bypass-url command line argument has been removed.

Deprecation Notes

  • The --endpoint-override command line argument has been deprecated. It is renamed to --os-endpoint-override to avoid misinterpreting command line arguments. It defaults to the OS_ENDPOINT_OVERRIDE environment variable. See bug 1778536 for more details.

Bug Fixes

  • A fix is made for bug 1744118 which adds the below missing CLI arguments.

    • OS_PROJECT_DOMAIN_ID

    • OS_PROJECT_DOMAIN_NAME

    • OS_USER_DOMAIN_ID

    • OS_USER_DOMAIN_NAME

10.3.0

New Features

  • Adds support for microversion 2.62 which adds host (hostname) and hostId (an obfuscated hashed host id string) fields to the instance action GET /servers/{server_id}/os-instance-actions/{req_id} API.

    The event columns are already included in the result of “nova instance-action <server> <request-id>” command, therefore does not have any CLI or python API binding impacts in the client.

Upgrade Notes

  • The nova server-group-create command now only supports specifying a single policy name when creating the server group. This is to match the server-side API validation.

10.2.0

New Features

  • Added new client API and CLI (nova instance-usage-audit-log) to get server usage audit logs. By default, it lists usage audits for all servers on all compute hosts where usage auditing is configured. If you specify the --before option, the result is filtered by the date and time before which to list server usage audits.

  • Provides “–strict” option for “nova host-servers-migrate”, “nova host-evacuate”, “nova host-evacuate-live” and “nova host-meta” commands. When “–strict” option is used, the action will be applied to a single compute with the exact hypervisor hostname string match rather than to the computes with hostname substring match. When the specified hostname does not exist in the system, “NotFound” error code will be returned.

Upgrade Notes

  • The flavor-delete command no longer prints out the details of the deleted flavor. On successful deletion, there is no output.

Deprecation Notes

  • novaclient.utils.add_resource_manager_extra_kwargs_hook and novaclient.utils.get_resource_manager_extra_kwargs were designed for supporting extensions in nova/novaclient. Nowadays, this “extensions” feature is abandoned and both add_resource_manager_extra_kwargs_hook, add_resource_manager_extra_kwargs_hook are not used in novaclient’s code. These methods are not documented, so we are removing them without standard deprecation cycle.

Other Notes

  • Starting from microversion 2.61, the responses of the ‘Flavor’ APIs include the ‘extra_specs’ parameter. Therefore ‘Flavors extra-specs’ (os-extra_specs) API calls have been removed in the following commands since microversion 2.61.

    • nova flavor-list

    • nova flavor-show

    There are no behavior changes in the CLI. This is just a performance optimization.

10.1.0

New Features

  • Support is added for the 2.57 microversion:

    • A userdata keyword argument can be passed to the Server.rebuild python API binding. If set to None, it will unset any existing userdata on the server.

    • The --user-data and --user-data-unset options are added to the nova rebuild CLI. The options are mutually exclusive. Specifying --user-data will overwrite the existing userdata in the server, and --user-data-unset will unset any existing userdata on the server.

  • Added support for microversion v2.58 which introduces pagination support for instance actions with the help of new optional parameters limit, marker, and also adds the new filter changes-since. Users can use changes-since filter to filter the results based on the last time the instance action was updated.

  • Added support for microversion v2.59 which introduces pagination support for migrations with the help of new optional parameters limit, marker, and also adds the new filter changes-since. Users can use changes-since filter to filter the results based on the last time the migration was updated.

Upgrade Notes

  • Support is added for the 2.57 microversion:

    • The --file option for the nova boot and nova rebuild CLIs is capped at the 2.56 microversion. Similarly, the file parameter to the Server.create and Server.rebuild python API binding methods is capped at 2.56. Users are recommended to use the --user-data option instead.

    • The --injected-files, --injected-file-content-bytes and --injected-file-path-bytes options are capped at the 2.56 microversion in the nova quota-update and nova quota-class-update commands.

    • The maxPersonality and maxPersonalitySize fields are capped at the 2.56 microversion in the nova limits command and API binding.

    • The injected_files, injected_file_content_bytes and injected_file_path_bytes entries are capped at version 2.56 from the output of the nova quota-show and nova quota-class-show commands and related python API bindings.

10.0.0

New Features

  • Added a new --host option to nova migrate command in microversion 2.56. It enables administrators to specify a target host when cold migating a server. The target host will be validated by the scheduler. The target host cannot be the same as the current host on which the server is running and must be in the same cell that the server is currently in.

  • Adds support for microversion 2.54 which adds resetting keypair and unsetting keypair in rebuild operation. Adds optional --key-name and --key-unset options in the nova rebuild command.

  • Support is added for compute API version 2.55. This adds the ability to create a flavor with a description, show the description of a flavor, and update the description on an existing flavor.

    A new nova flavor-update <flavor> <description> command is added.

Upgrade Notes

  • The nova x509-create-cert and nova x509-get-root-cert commands and novaclient.v2.certs API binding were deprecated in the 9.0.0 release and have now been removed.

  • The deprecated nova cloudpipe-list, nova cloudpipe-create, and nova cloudpipe-configure commands and the novaclient.v2.cloudpipe API bindings have been removed.

  • The following CLIs and their backing API bindings were deprecated and capped at microversion 2.43:

    • nova host-describe - superseded by nova hypervisor-show

    • nova host-list - superseded by nova hypervisor-list

    • nova host-update - superseded by nova service-enable and nova service-disable

    • nova host-action - no alternative by design

    The CLIs and API bindings have now been removed.

  • The run_tests.sh shell script that was deprecated in Newton has been removed.

  • The deprecated binary argument to the nova service-enable, nova service-disable, and nova service-force-down commands has been removed.

  • The following CLIs and their backing API bindings were deprecated and capped at microversion 2.44:

    • nova add-fixed-ip: use python-neutronclient or openstacksdk

    • nova remove-fixed-ip: use python-neutronclient or openstacksdk

    • nova floating-ip-associate: use python-neutronclient or openstacksdk

    • nova floating-ip-disassociate: use python-neutronclient or openstacksdk

    • nova virtual-interface-list: there is no replacement as this is only implemented for nova-network which is deprecated

    The CLIs and API bindings have now been removed.

Bug Fixes

  • Fix an ability to boot server with multiple nics which was broken with microversion 2.42 (fix tag attribute disappearing).

9.1.0

New Features

  • Added support for microversion 2.47 which returns the flavor details directly embedded in the server details when listing or showing servers. With this change, CLI requests with microversion >= 2.47 will no longer need to do additional queries to get the flavor and flavor extra_specs information. Instead, the flavor information will be output as separate key/value pairs with the keys namespaced with the “flavor:” prefix. As one would expect, these keys can also be specified as output fields when listing servers, like this:

    nova list  --fields name,flavor:original_name

    When displaying details of a single server, the --minimal option will display a flavor field with a value of the original_name of the flavor. Prior to this microversion the value was the id of the flavor.

  • Added support for microversion 2.49 that enables users to attach tagged interfaces and volumes. A new --tag option is added to nova volume-attach and nova interface-attach commands.

  • Microversion 2.52 is now supported which adds the --tags option to the nova boot command and a tags kwarg to the novaclient.v2.servers.ServerManager.create() python API binding method.

  • Added support for microversion 2.53. The following changes were made for the services commands and python API bindings:

    • The nova service-list command and API will have a UUID value for the id field in the output and response, respectively.

    • The nova service-enable command and API will require a UUID service id value to uniquely identify the service rather than a host and binary value. The UUID id field will also be in the command output.

    • The nova service-disable command and API will require a UUID service id value to uniquely identify the service rather than a host and binary value. The UUID id field will also be in the command output.

    • The nova service-force-down command and API will require a UUID service id value to uniquely identify the service rather than a host and binary value. The UUID id field will also be in the command output.

    • The nova service-delete command and API will require a UUID service id value to uniquely identify the service rather than an integer service id value.

    The following changes were made for the hypervisors commands and python API bindings:

    • The ID field in the various nova hypervisor-* commands and Hypervisor.id attribute in the API binding will now be a UUID value.

    • If paging over hypervisors using nova hypervisor-list, the --marker must be a UUID value.

    • The nova hypervisor-show and nova hypervisor-uptime commands and APIs now take a UUID value for the hypervisor ID.

Upgrade Notes

  • The novaclient.v2.quota_classes.QuotaClassSetManager.update method now defines specific kwargs starting with microversion 2.50 since updating network-related resource quota class values is not supported on the server with microversion 2.50. The list of excluded resources is:

    • fixed_ips

    • floating_ips

    • networks

    • security_groups

    • security_group_rules

Deprecation Notes

  • The binary argument to the nova service-enable, nova service-disable, and nova service-force-down commands has been deprecated. The only binary that it makes sense to use is nova-compute since disabling a service like nova-scheduler or nova-conductor does not actually do anything, and starting in the 16.0.0 Pike release the compute API will not be able to look up services other than nova-compute for these operations.

Bug Fixes

  • Adds support for the 2.50 microversion which fixes the nova quota-class-show and nova quota-class-update commands in the following ways:

    • The server_groups and server_group_members quota resources will now be shown in the output table for nova quota-class-show.

    • The floating_ips, fixed_ips, security_groups and security_group_rules quota resources will no longer be able to be updated using nova quota-class-update nor will they be shown in the output of nova quota-class-show. Use python-openstackclient or python-neutronclient to work with quotas for network resources.

    In addition, the nova quota-class-update CLI was previously incorrectly limiting the ability to update quota class values for floating_ips, fixed_ips, security_groups and security_group_rules based on the 2.36 microversion. That has been changed to limit based on the 2.50 microversion.

9.0.0

New Features

  • A new global_request_id parameter is accepted on the client constructor, which will then pass X-OpenStack-Request-ID on all requests made.

  • A new --instance-uuid option is added to nova migration-list command. This is used to query the migration history of a specific server by the migration-list command. Please use nova server-migration-list command for querying in-progress migrations of a specific server.

  • Support was added for microversion 2.45. This changes how the createImage and createBackup server action APIs return the created snapshot image ID in the response. With microversion 2.45 and later, the image ID is return in a json dict response body with an image_id key and uuid value. The old Location response header is no longer returned in microversion 2.45 or later.

    There are no changes to the nova image-create CLI. However, the nova backup CLI will print out the backup snapshot image information with microversion 2.45 or greater now.

Upgrade Notes

  • The following deprecated options have been removed:

    • --tenant (from flavor access list)

    • --cell_name (from migration list)

    • --volume-service-name (global option)

    As a result, the novaclient.v2.migrations.MigrationManager.list python API binding method no longer takes a cell_name kwarg.

  • remove version 1.1 API support as we only support v2 and v2.1 API in nova side now.

Deprecation Notes

  • The nova x509-create-cert and nova x509-get-root-cert commands and novaclient.v2.certs API binding are now deprecated and will be removed in the first major release after the Nova server 16.0.0 Pike release.

  • The os-cloudpipe API has been removed from Nova. As a result, the nova cloudpipe-list, nova cloudpipe-create, and nova cloudpipe-configure commands and the novaclient.v2.cloudpipe API bindings are now deprecated, and will be removed in the first major release after the Nova server 16.0.0 Pike release.

  • The following CLIs and their backing API bindings are deprecated and capped at microversion 2.43:

    • nova host-describe - superseded by nova hypervisor-show

    • nova host-list - superseded by nova hypervisor-list

    • nova host-update - superseded by nova service-enable and nova service-disable

    • nova host-action - no alternative by design

    The CLIs and API bindings will be removed in the first major release after Nova 16.0.0 Pike is released.

  • The following CLIs and their backing API bindings are deprecated and capped at microversion 2.44:

    • nova add-fixed-ip: use python-neutronclient or openstacksdk

    • nova remove-fixed-ip: use python-neutronclient or openstacksdk

    • nova floating-ip-associate: use python-neutronclient or openstacksdk

    • nova floating-ip-disassociate: use python-neutronclient or openstacksdk

    • nova virtual-interface-list: there is no replacement as this is only implemented for nova-network which is deprecated

    The CLIs and API bindings will be removed in the first major release after Nova 16.0.0 Pike is released.

Bug Fixes

  • Microversion 2.42 is related to the following bug.

    The following options have been changed as of Microversion 2.42.

    • Remove tag attribute in --block-device option on the server boot (nova boot) between microversion 2.33 and 2.41.

    • Remove tag attribute in --nic option on the server boot (nova boot) between microversion 2.37 and 2.41.

8.0.0

Prelude

Deprecated image commands and python API bindings have been removed.

Deprecated network-related resource commands and python API bindings have been removed. From this point on, python-novaclient will no longer work with nova-network except for the nova virtual-interface-list, nova add-fixed-ip and nova remove-fixed-ip commands.

Upgrade Notes

  • The deprecated name and availability_zone positional arguments in the nova aggregate-update command have been removed. Use the --name and --availability-zone options instead.

  • The following deprecated image commands have been removed:

    * nova image-list
    * nova image-show
    * nova image-meta
    * nova image-delete
    

    Along with the related python API bindings in novaclient.v2.images.

  • The following deprecated network-related resource commands have been removed:

    * nova dns-create
    * nova dns-create-private-domain
    * nova dns-create-public-domain
    * nova dns-delete
    * nova dns-delete-domain
    * nova dns-domains
    * nova dns-list
    * nova fixed-ip-get
    * nova fixed-ip-reserve
    * nova fixed-ip-unreserve
    * nova floating-ip-create
    * nova floating-ip-delete
    * nova floating-ip-list
    * nova floating-ip-bulk-create
    * nova floating-ip-bulk-delete
    * nova floating-ip-bulk-list
    * nova floating-ip-pool-list
    * nova net
    * nova net-create
    * nova net-delete
    * nova net-list
    * nova network-create
    * nova network-delete
    * nova network-list
    * nova network-show
    * nova network-associate-host
    * nova-network-associate-project
    * nova network-disassociate
    * nova scrub
    * nova secgroup-create
    * nova secgroup-delete
    * nova secgroup-list
    * nova secgroup-update
    * nova secgroup-add-rule
    * nova secgroup-delete-rule
    * nova secgroup-list-rules
    * nova secgroup-add-default-rule
    * nova secgroup-delete-default-rule
    * nova secgroup-list-default-rules
    * nova secgroup-add-group-rule
    * nova secgroup-delete-group-rule
    * nova tenant-network-create
    * nova tenant-network-delete
    * nova tenant-network-list
    * nova tenant-network-show
    

    Along with the following python API bindings:

    * novaclient.v2.contrib.tenant_networks
    * novaclient.v2.fixed_ips
    * novaclient.v2.floating_ip_dns
    * novaclient.v2.floating_ip_pools
    * novaclient.v2.floating_ips
    * novaclient.v2.floating_ips_bulk
    * novaclient.v2.fping
    * novaclient.v2.networks
    * novaclient.v2.security_group_default_rules
    * novaclient.v2.security_group_rules
    * novaclient.v2.security_groups
    
  • The baremetal CLIs and python API bindings were deprecated in the Newton release and have been removed. Use python-openstackclient or python-ironicclient for CLIs. Use python-ironicclient or openstacksdk for python API bindings

Deprecation Notes

  • CLI argument --cell_name for nova migration-list command is deprecated. Nova API does not have logic for handling cell_name parameter in os-migrations, and while the parameter is passed to Nova it has never been used.

  • The only_contrib parameter for the novaclient.client.discover_extensions method is deprecated and now results in an empty list returned since all contrib extensions are either required or have been removed.

7.1.0

Prelude

OSprofiler support was added to the client. That makes possible to trigger Nova operation trace generation from the CLI.

New Features

  • A new --profile option was added to allow Nova profiling from the CLI. If the user wishes to trace a nova boot request he or she needs to type the following command – nova --profile <secret_key> boot --image <image> --flavor <flavor> <vm_name>, where secret_key should match one of the keys defined in nova.conf. As a result of this operation additional information regarding trace_id will be printed, that can be used to generate human-friendly html report – osprofiler trace show --html <trace_id> --out trace.html. To enable profiling, user needs to have osprofiler installed in the local environment via pip install osprofiler.

  • Provides a public unified interface ‘get_console_url’ for classes ‘novaclient.v2.servers.Server’ and ‘novaclient.v2.servers.ServerManager’. Users (Heat, OpenStack-client and etc.) can call this public interface instead of calling the individual methods to retrieve a console url of a particular protocol.

  • Added support for microversion 2.41 which shows the aggregate UUID in CLI output when listing, creating, showing, updating, setting metadata, and adding or removing hosts from an aggregate.

Security Issues

  • OSprofiler support, that was added during the Ocata release cycle, requires passing of trace information between various OpenStack services. This information is signed by one of the HMAC keys defined in nova.conf file. That means that only someone who knows this key is able to send the proper header to trigger profiling.

Bug Fixes

  • Fix an ability to authenticate using Keystone Token which was broken with novaclient 7.0.0 release.

  • The contents of the list_extensions.py file was moved from contrib to v2 directory in release 7.0.0, and a stub importing the objects from the new location was left in its place for backward compatibility, together with a warning informing about the new location. However, the stub incorrectly assigned the ListExtResource class to the ListExtManager name. This has now been fixed, and ListExtManager is used instead.

7.0.0

Prelude

All extensions of API V2.0 were merged to 2.1, but NovaClient continued to store them as a separate entities.

The ability to use non-Keystone authentication systems has been removed.

Several deprecated commands have been removed. See the upgrade section for details.

New Features

  • Added microversion v2.40 which introduces pagination support for usage with the help of new optional parameters ‘limit’ and ‘marker’.

  • You can use bypass-url / endpoint-override with Keystone V3.

Upgrade Notes

  • Starting from microversion 2.39 ‘image-metadata’ proxy API in Nova is deprecated and python API bindings will not work, although ‘image-meta’ CLI commands will still work, because of the fallback on the CLI to version 2.35.

  • All managers and resources from novaclient.v2.contrib submodules are moved to appropriate submodules of novaclient.v2 (except barametal and tenant_networks, which were deprecated previously)

  • All shell commands from novaclient.v2.contrib submodules are moved to novaclient.v2.shell module.

  • novaclient.v2.client.Client imports all modules (which were located in submodules of novaclient.v2.contrib) by-default for api version v2

  • Method novaclient.client.discover_extensions returns only barametal and tenant_networks extensions, since they are not included by default.

  • There are no modules and extensions for “deferred_delete”, “host_evacuate”, “host_evacuate_live” and “metadata_extensions” anymore. Previously, they contained only shell commands and shell module auto loads them (there is no ability to not do it).

  • Support for microversion 2.38 added. As of microversion 2.38, invalid statuses passed to nova list --status invalid_status will result in a HTTP 400 Bad Request error response.

  • The --os-auth-system CLI option and OS_AUTH_SYSTEM environment variable usage was deprecated in the 3.1.0 release during the Mitaka development series. This release drops the support for using those options to load non-Keystone authentication systems via the openstack.client.auth_plugin extension point.

  • novaclient.client.Client entry-point accepts only 5 positional arguments:

    version, username, api_key, project_id, auth_url
    

    Using positional arguments for all other options is now an error.

  • The following deprecated commands have been removed:

    • absolute-limits

    • add-floating-ip

    • aggregate-details

    • credentials

    • endpoints

    • rate-limits

    • remove-floating-ip

    • rename

    • root-password

  • When using novaclient as a library (via novaclient.client.Client entry-point), an internal implementation of HTTPClient was used if a session object is not specified. For better user experience we switched to using SessionClient which uses keystoneauth (Keystone folks maintain this library) for all auth stuff. The SessionClient interface is similar to HTTPClient, but there is a small possibility that you will notice a difference.

Deprecation Notes

  • Keyword argument tenant_id of novaclient.client.Client entry-point was deprecated in favor of project_id.

  • Keyword argument tenant_name of novaclient.client.Client entry-point was deprecated in favor of project_name.

  • The connection_pool variable is deprecated now and will be ignored.

  • novaclient.client.Client entry-point accepted two arguments with same meaning (no_cache and os_cache). Since os_cache is more widely used in our code, no_cache was deprecated.

  • The proxy_tenant_id and proxy_token arguments to the novaclient.client.Client entry-point were never documented nor tested and are now deprecated for removal in a future release.

  • CLI argument for volume_service_name was deprecated long time ago. All novaclient’s methods for communication with Volume API were deprecated and removed. There is no need to leave volume_service_name argument of novaclient.client.Client entry-point since it is not used anywhere, so it is removed now.

  • All modules of novaclient.v2.contrib are deprecated now and will be removed after OpenStack Pike.

  • The api_key variable of novaclient.client.Client entry-point was deprecated in favor of password. Nothing has changed in the case of positional argument usage.

  • The –bypass-url CLI argument was deprecated in favor of –endpoint-override

  • The bypass_url argument of novaclient.client.Client entry-point was deprecated in favor of endpoint_override.

  • keyword argument interface of novaclient.client.Client entry-point was deprecated in favor of endpoint_type;

Bug Fixes

  • Inability to use bypass-url with keystone session is fixed.

Other Notes

  • The meaning of ‘project_id’ variable of novaclient.client.Client entry-point was not clear. In different cases it was used as ID or Name of project (in terms of Keystone). The time to identify meaning is come, so now project_id/tenant_id variables specifically mean Project ID (in terms of Keystone) and project_name/tenant_name variables mean Project Name (in terms of Keystone).

6.0.0

New Features

  • The 2.37 microversion is now supported. This introduces the following changes:

    • CLI: The –nic value for the nova boot command now takes two

      special values, ‘auto’ and ‘none’. If –nic is not specified, the CLI defaults to ‘auto’.

    • Python API: The nics kwarg is required when creating a server using

      the novaclient.v2.servers.ServerManager.create API. The nics value can be a list of dicts or a string with value ‘auto’ or ‘none’.

Upgrade Notes

  • The ability to update the following network-related resources via the nova quota-update and nova quota-class-update commands is now deprecated:

    • Fixed IPs

    • Floating IPs

    • Security Groups

    • Security Group Rules

    By default the quota and limits CLIs will not update or show those resources using microversion >= 2.36. You can still use them, however, by specifying --os-compute-api-version 2.35. Quota information for network resources should be retrieved from python-neutronclient or python-openstackclient.

  • With the 2.37 microversion, the nics kwarg is required when creating a server using the novaclient.v2.servers.ServerManager.create API. The nics value can be a list of dicts or an enum string with one of the following values:

    • auto: This tells the Compute service to automatically allocate a network for the project if one is not available and then associate an IP from that network with the server. This is the same behavior as passing nics=None before the 2.37 microversion.

    • none: This tells the Compute service to not allocate any networking for the server.

Deprecation Notes

  • The following commands are now deprecated:

    • dns-create

    • dns-create-private-domain

    • dns-create-public-domain

    • dns-delete

    • dns-delete-domain

    • dns-domains

    • dns-list

    • fixed-ip-get

    • fixed-ip-reserve

    • fixed-ip-unreserve

    • floating-ip-create

    • floating-ip-delete

    • floating-ip-list

    • floating-ip-pool-list

    • floating-ip-bulk-create

    • floating-ip-bulk-delete

    • floating-ip-bulk-list

    • network-create

    • network-delete

    • network-disassociate

    • network-associate-host

    • network-associate-project

    • network-list

    • network-show

    • scrub

    • secgroup-create

    • secgroup-delete

    • secgroup-list

    • secgroup-update

    • secgroup-add-group-rule

    • secgroup-delete-group-rule

    • secgroup-add-rule

    • secgroup-delete-rule

    • secgroup-list-rules

    • secgroup-list-default-rules

    • secgroup-add-default-rule

    • secgroup-delete-default-rule

    • tenant-network-create

    • tenant-network-delete

    • tenant-network-list

    • tenant-network-show

    With the 2.36 microversion these will fail in the API. The CLI will fallback to passing the 2.35 microversion to ease the transition. Network resource information should be retrieved from python-neutronclient or python-openstackclient.

5.1.0

New Features

  • Added microversion v2.33 that adds pagination support for hypervisors with the help of new optional parameters ‘limit’ and ‘marker’ which were added to hypervisor-list command.

  • Added microversion v2.35 that adds pagination support for keypairs with the help of new optional parameters ‘limit’ and ‘marker’ which were added to keypair-list command.

Upgrade Notes

  • Support for microversion 2.34 added.

  • The 2.36 microversion deprecated the image proxy API. As such, CLI calls now directly call the image service to get image details, for example, as a convenience to boot a server with an image name rather than the image id. To do this the following is assumed:

    1. There is an image entry in the service catalog.

    2. The image v2 API is available.

  • The 2.36 microversion deprecated the network proxy APIs in Nova. Because of this we now go directly to neutron for name to net-id lookups. For nova-net deployements the old proxies will continue to be used.

    To do this the following is assumed:

    1. There is a network entry in the service catalog.

    2. The network v2 API is available.

5.0.0

Upgrade Notes

  • Support for microversion 2.31 which fixes a bug in the os-console-auth-tokens API

  • novaclient.v2.client.Client raises an exception in case of direct usage instead of warning message. novaclient.client.Client is a primary interface to initialize the python client for Nova.

Deprecation Notes

  • The following CLIs and python API bindings are now deprecated for removal:

    • nova baremetal-node-list

    • nova baremetal-node-show

    • nova baremetal-interface-list

    These will be removed in the first major python-novaclient release after the Nova 15.0.0 Ocata release. Use python-ironicclient or python-openstackclient for CLI and python-ironicclient or openstacksdk for python API bindings.

4.1.0

Prelude

  • Log ‘x-openstack-request-id’ or ‘x-compute-request-id’ in each API call. If the caller (e.g. heat) uses oslo.log, the caller’s request id in oslo.context and the callee’s request id can be output in the same log message (same line).

New Features

  • Log ‘x-openstack-request-id’ or ‘x-compute-request-id’ in each API call. If the caller (e.g. heat) uses oslo.log, the caller’s request id in oslo.context and the callee’s request id can be output in the same log message (same line).

Upgrade Notes

  • Support v2.28 microversion

  • cpu_info property of hypervisor resource is a json now (previously it was text).

4.0.0

Upgrade Notes

  • Volume, volume-type and volume-snapshot create/update/delete/list CLIs and python API bindings are removed. Use python-cinderclient or python-openstackclient for CLIs instead. Use python-cinderclient or python-openstacksdk for python API bindings instead.

Deprecation Notes

  • The following CLIs and python API bindings are now deprecated for removal:

    • nova image-delete

    • nova image-list

    • nova image-meta

    • nova image-show

    These will be removed in the first major python-novaclient release after the Nova 15.0.0 Ocata release. Use python-glanceclient or python-openstackclient for CLI and python-glanceclient or openstacksdk for python API bindings.

3.3.0

Prelude

Methods in manager classes and resource classes return wrapper classes that wrap values returned originally. For example, a wrapper class for list, a wrapper class for dict, a wrapper class for str and so on. The wrapper classes have a ‘request_ids’ property for request IDs returned from Nova (nova-api). So the caller can get the Nova’s request IDs, then output them to logs with its own request ID. The function to output them to the logs will be implemented in other projects (cinder, heat, etc.).

New Features

  • Methods in manager classes and resource classes return wrapper classes that wrap values returned originally. For example, a wrapper class for list, a wrapper class for dict, a wrapper class for str and so on. The wrapper classes have a ‘request_ids’ property for request IDs returned from Nova (nova-api). So the caller can get the Nova’s request IDs, then output them to logs with its own request ID. The function to output them to the logs will be implemented in other projects (cinder, heat, etc.).

Upgrade Notes

  • In case that methods return a response object and body originally and body is None, the methods return the wrapper class for tuple as ‘body’ instead of the wrapper class for None. The wrapper class for None has not been added.

3.0.0

New Features

  • keystoneauth plugins are now supported.

Upgrade Notes

  • novaclient now requires the keystoneauth library.

  • Python 2.6 support has been removed from python-novaclient.

Deprecation Notes

  • novaclient auth strategy plugins are deprecated. Please use keystoneauth auth plugins instead.

  • nova credentials is deprecated. Please use openstack token issue

  • nova endpoints is deprecated. Please use openstack catalog list instead.