2023.1 Series Release Notes

5.0.1

Bug Fixes

  • OpenStackSDK log messages are no longer sent to stdout and no longer break parsing the output.

  • The logging configuration now respects the --verbose flag.

  • Some warnings are no longer duplicated.

4.11.0

New Features

  • Adds support for API version 1.78 and “node history” functionality allowing users to query a list of events, and retrieve a single history event from a baremetal node.

  • Adds get_history_list and get_history_event methods to the python client library. These methods allow operators to query recorded node event information from an ironic API, where supported and enabled.

4.9.0

New Features

  • Adds support for fields selector in driver cli. See story 1674775.

    • openstack baremetal driver list --fields <field> [<field> ...]

    • openstack baremetal driver show <driver_name> --fields <field> [<field> ...]

Bug Fixes

  • Embedded configuration drive generation support has been updated to support mkisofs and xorrisofs in adition to the previously supported genisoimage utility. This is as distributions such as Debian and OpenSUSE do not ship genisoimage.

4.8.0

New Features

  • Adds new params to the baremetal node bios setting list command to include support for the BIOS registry. The --long option will retrieve and display the additonal BIOS registry fields, the --fields option will retrieve and display selected fields. The baremetal node bios setting show includes these fields by default with no changes.

  • Adds support to display node fields boot_mode and secure_boot which are introduced in API 1.75.

  • Adds support for changing node states boot_mode and secure_boot in sync with functionality introduced in API 1.76.

4.7.0

Bug Fixes

  • The --debug option now works correctly with the built-in baremetal command line tool.

  • Fixes using network_data with the --fields parameter.

4.6.0

New Features

  • Adds support for providing optional deploy steps when deploying or rebuilding; available with ironic-api-version 1.69 or higher. Baremetal CLI is baremetal node <provision-state> <node> --deploy-steps <deploy-steps> where <provision-state> is ‘deploy’ or ‘rebuild’ and <deploy-steps> are deploy steps in JSON format. May be path to a file containing deploy steps; OR ‘-’, with the deploy steps being read from standard input; OR a string. The value should be a list of deploy-step dictionaries; each dictionary should have keys ‘interface’, ‘step’ and ‘priority’, and optional key ‘args’. When overlapping, these steps override deploy template and driver steps. For more information see Deploy Steps in Node Deployment documentation.

  • YAML files are now supported for the --network-data, --deploy-steps, --clean-steps and --target-raid-config arguments, as well as for the --steps argument of deploy template commands.

4.5.0

New Features

  • Following a similar change to ironic, it is now possible to set the node’s automated_clean to False using the new --no-automated-clean argument to baremetal node set.

4.3.0

New Features

  • Methods of all Manager objects now support passing global_request_id argument, which is passed to ironic API in the header of an HTTP request. Also it is now possible to instantiate IronicClient object passing global_request_id and additional_headers, which will be passed to all requests this client object will be doing. global_request_id passed to the method of the Manager object will override the global_request_id specified through IronicClient constructor.

  • Updates the node vif attach API action to accept an optional port_uuid parameter. If specified, then Ironic will attempt to attach to the specified port.

4.2.0

New Features

  • Adds support for adding static network configuration to ports and portgroups by adding network-data attribute to port/portgroup commands.

Upgrade Notes

  • The Python API used to accepts byte arrays and other non-serializable in JSON data types in a few places where strings are required. This is no longer supported, an attempt to do it will result in an exception.

4.1.0

Prelude

This release includes a new standalone CLI tool baremetal that is mostly identical to the existing OSC plugin, but

  • Does not require commands to be prefixed with openstack.

  • Does not require python-openstackclient to be installed.

  • Defaults to no authentication.

New Features

  • Adds ability to get list of nodes that are not marked for retirement adding the –no-retired optional argument to the openstack baremetal node list command.

  • Adds support to display and update the lessee field of nodes, which is introduced in API 1.64.

  • Adds a new baremetal CLI tool, mostly targeted at standalone users.

Upgrade Notes

  • The dependency on oslo.i18n is now optional. If you would like messages from ironicclient to be translated, you need to install it explicitly.

  • When no session is provided in the get_client call, a session is now created using OpenStackSDK. Only arguments that are supported by it are supported now.

4.0.0

New Features

  • Adds support to create an allocation with an owner, as well as display it. Introduced in API 1.60.

  • Adds the ability to set and unset the retired and retired_reason with API 1.61. Setting the retired field on a node excludes it from scheduling, but still allows the node to be cleaned (unlike maintenance, for instance). The fields can be set irrespective of the node’s state and are meant to be used to prepare nodes for removal from ironic.

Upgrade Notes

  • Python 2.7 support has been dropped. Last release of python-ironicclient to support Python 2.7 is OpenStack Train. The minimum version of Python now supported by python-ironicclient is Python 3.6.

  • An implicit dependency on oslo.config is now explicit.

Bug Fixes

  • Fails with a clear TypeError when a session is not provided to client.Client or v1.client.Client. Before we used to throw:

    _construct_http_client() takes at least 1 argument
    
  • Removes the requirement on passing either endpoint_override or os_ironic_api_version to get_client. This is only required for efficient caching of API versions and shouldn’t be a hard requirement.

  • Fixes an issue where some failure modes of communication with the Ironic API could result in an exception that circumvents the client’s retry mechanisms. In particular this includes HTTP 503 service unavailable which is seen when Ironic operates behind a load balancer, and no backend is available to handle the request.

  • openstack baremetal node list --owner was returning an error instead of a list of nodes for the specified owner. It has been fixed.

    See story 2006563 for details.

  • Fixes a confusing error message when a session is not provided for ironicclient.v1.client.Client.

  • With the removal of the HTTPClient class in the release 3.0.0, it is now mandatory to pass a session into ironicclient.v1.client.Client. The helper call ironicclient.client.get_client can also be used to construct a session implicitly.

  • Fixes TypeError when the bare metal endpoint cannot be detected from a session. A proper EndpointNotFound exception is raised now.

  • Fixes using endpoint_override with the SessionClient.

3.0.0

Upgrade Notes

  • Removes deprecated argument endpoint from the v1.client.Client constructor. Please use the standard keystoneauth argument name endpoint_override instead.

  • Removes deprecated common.http.HTTPClient class. The common.http.SessionClient class should be used instead.

  • Removing deprecated keystone arguments in favor of standardized argument naming.

  • The long deprecated ironic command has been removed. The openstack baremetal command must now be used. Please update any scripts that you may be using with ironic.

Bug Fixes

  • Fixes an issue where automatic pagination was broken when ironic is deployed at a subpath (e.g. http://localhost/ironic).

2.8.0

New Features

  • Adds the --node argument to baremetal allocation create to support allocation backfilling.

  • Adds support for the allocation update API introduced in API version 1.57. Adds new commands:

    • openstack baremetal allocation set

    • openstack baremetal allocation unset

Bug Fixes

  • Prevent trying to access endpoints with /v1/v1 when using endpoint overrides containing /v1.

2.7.0

New Features

  • The consumer of ironicclient may be deriving their get_client kwargs from config inherited from ksa, where the interface option has been deprecated in favor of valid_interfaces. To accomodate this, we now accept valid_interfaces as a kwarg, giving it precedence over interface. However, we still accept interface, as the consumer may be deriving kwargs from a non-conf source (such as an already-created ksa Adapter where valid_interfaces has already been translated to interfaces).

  • Adds the ability to list and show conductors known by the Bare Metal service, as well as showing the conductor field on the node, introduced in API 1.49.

  • Adds the Event resource and the client.events.create Python SDK method to support publishing events to the Bare Metal service using the /v1/events API endpoint (introduced in API version 1.54).

    Note

    Events are not intended for end-user usage. (Internal use only.)

  • Adds support for Smart NIC ports by adding the --is-smartnic argument to the following CLI commands:

    • openstack baremetal port create

    • openstack baremetal port set

    • openstack baremetal port unset

    This was introduced in API version 1.53.

  • Adds description field support, which is introduced in ironic API 1.51. This field is used to store informational text about the node. User can also do queries for nodes where their description field contains specified substring.

  • Adds support to display and update the owner field of nodes, which is introduced in API 1.50.

  • Adds Python API and CLI for the allocation API introduced in API version 1.52. Adds new commands:

    • openstack baremetal allocation create

    • openstack baremetal allocation delete

    • openstack baremetal allocation get

    • openstack baremetal allocation list

  • Supports passing a JSON object to --config-drive to build the config drive on the server side (requires API version 1.56) to the following commands:

    • openstack baremetal node deploy <node> --config-drive '{...}'

    • openstack baremetal node rebuild <node> --config-drive '{...}'

  • Adds Python API and CLI for the deploy templates API introduced in API version 1.55. The following new commands are available:

    • openstack baremetal deploy template create

    • openstack baremetal deploy template delete

    • openstack baremetal deploy template list

    • openstack baremetal deploy template set

    • openstack baremetal deploy template show

Bug Fixes

  • The interface argument was being ignored so that the HTTP client was always using the public endpoint for Ironic. This fixes it so that the interface argument is taken into consideration. See story 2005118.

2.6.0

New Features

  • Adds the ability to set the automated_clean field (available starting with API version 1.47) on the baremetal node, to enable the automated cleaning feature at the node level.

  • Adds the ability to set and unset the protected and protected_reason fields introduced in API 1.48. Setting protected allows protecting a deployed node from undeploying, rebuilding and deleting.

2.5.0

New Features

  • Adds support for the --conductor-group argument to the following CLI commands:

    • openstack baremetal node create

    • openstack baremetal node set

    • openstack baremetal node unset

    • openstack baremetal node list

    This feature requires bare metal API 1.46.

  • Adds support for a node’s deploy_step (read-only) field. The deploy step indicates which step is being performed during the deployment/provisioning of a node. It is available starting with Bare Metal API version 1.44. For more details, see story 1753128.

  • Adds new family of arguments to the openstack baremetal node set command: --reset-XXX-interface, where XXX is a name of a hardware interface. This argument resets the node’s XXX_interface field to its calculated default (based on the node’s hardware type and the configuration).

  • Adds the new argument --reset-interfaces to the openstack baremetal node set command. It can be used together with --driver to reset all interfaces to their defaults.

2.4.0

New Features

  • The client now supports none authorization method, which should be used if the Identity service is not present in the deployment that the client talks to. To use it:

    • openstack baremetal CLI – supported starting with osc-lib version 1.10.0, by providing --os-auth-type none and --os-endpoint argument to openstack command

    • ironic CLI – just specify the --ironic-url or --os-endpoint argument in the ironic command (or set the corresponding environment variable)

    • python API – specify the endpoint_override argument to the client.get_client() method (in addition to the required api_version)

  • Supports the node’s fault field, introduced in the Bare Metal API version 1.42, including displaying or querying nodes by this field.

  • Adds two new commands.

    • openstack baremetal node bios setting list <node_ident>

    • openstack baremetal node bios setting show <node_ident> <setting_name>

    The first command returns a list of BIOS settings for a given node, the second command returns a specified BIOS setting from the given node.

    Also adds support of bios_interface for the commands below.

    • openstack baremetal node create

    • openstack baremetal node show

    • openstack baremetal node set

    • openstack baremetal node unset

    • openstack baremetal driver list

    • openstack baremetal driver show

  • Adds support for NodeManager.set_provision_state, NodeManager.update, NodeManager.get, and NodeManager.list to accept an os_ironic_api_version keyword argument to override the API version for that specific call to the REST API.

    When overridden, the API version is not preserved, and if an unsupported version is requested from the remote API, an UnsupportedVersion exception is raised.

Deprecation Notes

  • common.http.HTTPClient class is deprecated and will be removed in the Stein release. If you initialize the ironic client via v1.client.Client class directly, please pass the keystoneauth session to the Client constructor, so that common.http.SessionClient is used instead.

  • As part of standardizing argument naming to the one used by keystoneauth, the following arguments to client.get_client method are deprecated and will be removed in Stein release:

    • os_auth_token: use token instead

    • os_username: use username instead

    • os_password: use password instead

    • os_auth_url: use auth_url instead

    • os_project_id: use project_id instead

    • os_project_name: use project_name instead

    • os_tenant_id: use tenant_id instead

    • os_tenant_name: use tenant_name instead

    • os_region_name: use region_name instead

    • os_user_domain_id: use user_domain_id instead

    • os_user_domain_name: use user_domain_name instead

    • os_project_domain_id: use project_domain_id instead

    • os_project_domain_name: use project_domain_name instead

    • os_service_type: use service_type instead

    • os_endpoint_type: use interface instead

    • ironic_url: use endpoint instead

    • os_cacert, ca_file: use cafile instead

    • os_cert, cert_file: use certfile instead

    • os_key, key_file: use keyfile instead

  • The endpoint argument to the v1.client.Client constructor is deprecated and will be removed in Stein release. Instead, please use the standard keystoneauth argument name endpoint_override.

Bug Fixes

  • Waiting for a provision state to be reached (via CLI --wait argument or the wait_for_provision_state function) no longer aborts when the node’s last_error field gets populated. It can cause a normal deployment to abort if a heartbeat from the ramdisk fails because of locking - see story 2002094.

2.3.0

New Features

  • Adds support for rescue_interface for the commands below. They are available starting with ironic API microversion 1.38.

    • openstack baremetal node create

    • openstack baremetal node show

    • openstack baremetal node set

    • openstack baremetal node unset

    • openstack baremetal driver list

    • openstack baremetal driver show

  • Adds the below commands to OSC to support rescue mode for ironic available starting with API version 1.38:

    • openstack baremetal node rescue

    • openstack baremetal node unrescue

2.2.0

New Features

  • Allows a python API user to pass latest to the client creation request for the os_ironic_api_version parameter. The version utilized for REST API requests will, as a result, be the highest available version understood by both the ironicclient library and the server.

  • Adds base client properties to provide insight to a python API user of what the current REST API version that will be utilized, and if API version negotiation has occured. These new properties are client.current_api_version and client.is_api_version_negotiated respectively.

  • Adds additional base client method to allow a python API user to trigger version negotiation and return the negotiated version. This new method is client.negotiate_api_version().

  • The os_ironic_api_version parameter now accepts a list of REST API micro-versions to attempt to negotiate with the remote server. The highest available microversion in the list will be negotiated for the remaining lifetime of the client session.

  • Adds support for reading and modifying traits for a node, including adding traits to the detailed output of a node. This is available starting with Bare Metal API version 1.37.

    The new commands are:

    • openstack baremetal node trait list <node>

    • openstack baremetal node add trait <node> <trait> [...]

    • openstack baremetal node remove trait <node> [<trait> [...]] [--all]

    It also adds the following methods to the Python SDK:

    • NodeManager.get_traits

    • NodeManager.add_trait

    • NodeManager.set_traits

    • NodeManager.remove_trait

    • NodeManager.remove_all_traits

Bug Fixes

  • Fixes bug 1745099, which prevented a port group’s mode from being set to an integer value via the openstack baremetal port group set command.

Other Notes

  • The maximum supported version supported for negotiation is now defined in the common/http.py file. Any new feature added to the API client library must increment this version.

  • The maximum known version supported by the OpenStackClient plugin is now defined by the maximum supported version for API negotiation as defined in the common/http.py file.

2.1.0

Bug Fixes

  • Replaces openstack baremetal node power <on|off> with the two commands:

    • openstack baremetal node power on and

    • openstack baremetal node power off.

    There is no change to the command the user enters (the actual command line is the same). However, help (e.g. via openstack -h baremetal) will list the two power commands (instead of the original one).

2.0.0

Prelude

The 2.0 release has three major changes:

  • The default API version for the openstack baremetal and ironic commands changed from 1.9 to latest. latest is the maximum version understood by both the client and the server. This change makes the CLI automatically pull in new features and changes (including potentially breaking), from servers.

  • The python-ironicclient package no longer includes the python-openstackclient (OSC) package as a requirement. python-openstackclient is needed if using the openstack baremetal CLI.

  • The ironic command line interface (ironic commands) is deprecated and will be removed in the OpenStack S* release. Please use the openstack baremetal CLI instead.

New Features

  • Adds missing wanboot value to the list of supported boot devices.

  • The ironic command now supports the specification of API version 1. The actual version used will be the maximum 1.x version understood by both the client and the server. Thus, it is currently identical to the latest value.

  • The bare metal OSC client (openstack baremetal commands) now supports the specification of API version 1. The actual version used will be the maximum 1.x version understood by both the client and the server. Thus, it is currently identical to the latest value.

  • Adds the ability to specify a configuration drive when rebuilding a node, via the --config-drive option to the openstack baremetal node rebuild command. This is available starting with Bare Metal API version 1.35.

Upgrade Notes

  • The default API version for the ironic command changed from 1.9 to latest. latest is the maximum version understood by both the client and the server. This change makes the CLI automatically pull in new features and changes (including potentially breaking), when talking to new servers.

    Scripts that used the previous default API version, or that rely on some specific API behavior, should set the IRONIC_API_VERSION environment variable or use the --ironic-api-version CLI argument.

    Note

    This change does not affect the Python API.

  • The default API version for the bare metal OSC client (openstack baremetal commands) changed from 1.9 to latest. latest is the maximum version understood by both the client and the server. This change makes the CLI automatically pull in new features and changes (including potentially breaking), when talking to new servers.

    Scripts that used the previous default API version, or that rely on some specific API behavior, should set the OS_BAREMETAL_API_VERSION environment variable or use the --os-baremetal-api-version CLI argument.

    Note

    This change does not affect the Python API.

  • python-ironicclient package no longer has the python-openstackclient package (OSC) as a requirement.

    Users installing only the python-ironicclient package will not automatically get access to openstack baremetal ... OSC commands. To have them available, the python-openstackclient package must be installed separately, or, when installing python-ironicclient via pip, the new cli extra can be used to also install OSC:

    pip install python-ironicclient[cli]
    
  • These previously deprecated commands were removed and are no longer available:

    • openstack baremetal delete

    • openstack baremetal list

    • openstack baremetal show

    • openstack baremetal set

    • openstack baremetal unset

    Instead, use these corresponding equivalent commands:

    • openstack baremetal node delete

    • openstack baremetal node list

    • openstack baremetal node show

    • openstack baremetal node set

    • openstack baremetal node unset

  • Support for creating a single node via openstack baremetal create had been previously deprecated; it is now no longer available. Instead, use the equivalent command openstack baremetal node create. The only valid usage of openstack baremetal create is to create various resources (chassis, nodes, port groups, and ports) from resource files.

Deprecation Notes

  • The ironic command line interface (ironic commands) is deprecated and will be removed in the OpenStack S* release. Please use the openstack baremetal command line interface instead.

Bug Fixes

  • openstack baremetal commands no longer fail when specifying latest as the API version (via --os-baremetal-api-version or export OS_BAREMETAL_API_VERSION=latest). For more details, see bug 1712935.

  • Fixes a bug where the client could not access the ironic API service when the client was instantiated with a keystone token and an ironic API endpoint that included a virtual host (such as “http://hostname/baremetal”). For more details, see bug 1721599.

  • Users of the ironic command no longer have to specify an explicit API version to use the latest features. The default API version changed from 1.9 to latest, which is the maximum version understood by both the client and the server.

  • Users of the openstack baremetal commands no longer have to specify an explicit API version to use the latest features. The default API version changed from 1.9 to latest, which is the maximum version understood by both the client and the server.

  • When using --os-baremetal-api-version=latest (for openstack baremetal CLI) or --ironic-api-version=latest (for ironic CLI), the resulting API version is now the maximum API version supported by both the client and the server. Previously, the maximum API version supported by the client was used, which prevented latest from working with older servers.

  • No longer emits the incorrect warning “Please specify what to set” (or “unset”) when only the --target-raid-config is specified in the openstack baremetal node set (or unset) command.

1.16.0

New Features

  • Adds support for the port.physical_network field, which was introduced in API version 1.34.

Deprecation Notes

  • Currently, the default API version for the ironic tool is fixed to be 1.9. In the Queens release, it will be changed to the latest version understood by both the client and the server. In this release a warning is logged, if no explicit version is provided.

1.15.0

New Features

  • Adds these openstack baremetal and ironic CLI commands for volume connector resources.

    • openstack baremetal volume connector create

    • openstack baremetal volume connector list

    • openstack baremetal volume connector show

    • openstack baremetal volume connector set

    • openstack baremetal volume connector unset

    • openstack baremetal volume connector delete

    • ironic volume-connector-create

    • ironic volume-connector-list

    • ironic volume-connector-show

    • ironic volume-connector-update

    • ironic volume-connector-delete

    They are available starting with ironic API microversion 1.32.

  • Adds these openstack baremetal and ironic CLI commands for volume target resources.

    • openstack baremetal volume target create

    • openstack baremetal volume target list

    • openstack baremetal volume target show

    • openstack baremetal volume target set

    • openstack baremetal volume target unset

    • openstack baremetal volume target delete

    • ironic volume-target-create

    • ironic volume-target-list

    • ironic volume-target-show

    • ironic volume-target-update

    • ironic volume-target-delete

    They are available starting with ironic API microversion 1.32.

  • Adds support for storage_interface for the commands below. They are available starting with ironic API microversion 1.33.

    • openstack baremetal node create

    • openstack baremetal node show

    • openstack baremetal node set

    • openstack baremetal node unset

    • openstack baremetal driver list

    • openstack baremetal driver show

    • ironic node-create

    • ironic node-show

    • ironic node-update

    • ironic driver-list

    • ironic driver-show

Deprecation Notes

  • Currently, the default API version for the OSC plugin is fixed to be 1.9. In the Queens release, it will be changed to the latest version understood by both the client and the server. In this release a warning is logged, if no explicit version is provided.

Bug Fixes

  • --wrap CLI argument for ironic driver-properties and ironic driver-raid-logical-disk-properties commands now takes only non-negative integers as input. An error is shown if a negative value is passed.

1.14.0

Prelude

With this release, we have achieved feature parity between the ironic and openstack baremetal (OpenStack Client plugin) CLI.

New Features

  • Adds the openstack baremetal driver property list <driver> command. For the specified driver, this returns a list of its properties, along with descriptions for each property. (The values of these properties are specified in a node’s driver_info.)

  • Adds the openstack baremetal driver raid property list <driver> command. For a specified driver, this returns a list of the RAID logical disk properties that can be specified, along with a description for each property. (The values of these properties are specified in a node’s target_raid_config field.)

  • For the OSC command openstack baremetal node list, adds the --driver <driver> option to limit the list to nodes with the specified driver.

  • Adds the --uuid option for the openstack baremetal port create command so that the new port’s UUID can be specified.

  • For openstack baremetal port set, adds these options:

    • --local-link-connection <key=value>: Key/value metadata describing local link connection information. Valid keys are switch_info, switch_id, and port_id. The keys switch_id and port_id are required (repeat option to specify multiple keys).

    • --pxe-enabled: Indicates that this port should be used when PXE booting this node (default)

    • --pxe-disabled: Indicates that this port should not be used when PXE booting this node

1.13.0

New Features

  • To support dynamic drivers (available starting with ironic API microversion 1.30):

    • ironic driver-list has two new optional arguments, --type <type> for the type of driver (‘classic’ or ‘dynamic’) to list, and --detail to show detailed information about the drivers.

    • ironic driver-show returns a lot more information, including the type of driver and the default and enabled interfaces.

    • openstack baremetal driver list has two new optional arguments, --type <type> for the type of driver (‘classic’ or ‘dynamic’) to list, and --long to show detailed information about the drivers.

    • openstack baremetal driver show returns a lot more information, including the type of driver and the default and enabled interfaces.

  • Adds new arguments to the OSC baremetal-node-set to allow setting boot, console, deploy, inspect, management, power, raid, and vendor hardware interfaces. They are available starting with ironic API microversion 1.30.

Bug Fixes

  • Allows all provision states for OSC node list command with –provision-state argument

1.12.0

New Features

  • Add new arguments to the CLI node-create to allow selecting boot, console, deploy, inspect, management, power, raid, and vendor hardware interfaces, when hardware types are used. They are available starting with ironic API microversion 1.31.

Upgrade Notes

  • Hides ‘states’ field in ‘node create’ and ‘node show’ OSC subcommands output because this field is not meant to be present in the output.

Bug Fixes

  • Fixes an issue where certain error messages from the ironic API were suppressed.

1.11.0

New Features

  • Supports creation of port groups via ironic create and openstack baremetal create commands.

  • Add a new command “ironic node-inject-nmi” to support the injection of Non-Masking Interrupts (NMI).

  • For OSC commands, the –os-baremetal-api-version optional argument (or OS_BAREMETAL_API_VERSION environment variable) can have the value ‘latest’. If set to ‘latest’, the latest API version known by client will be used in requests to the Bare Metal service.

  • Add a new OSC command for the injection of Non-Masking Interrupts (NMI), “openstack baremetal node inject nmi”.

  • For OSC, adds ability to get list of nodes that are not in maintenance mode via the –no-maintenance optional argument to the openstack baremetal node list command.

  • Adds an option --unassociated to the openstack baremetal node list command. It provides the ability to get a list of the nodes that are not associated with instances.

  • Adds an option --wait [<time-out>] to all of the OSC provisioning commands, except for abort which is not supported. When specified, provisioning commands will wait for the node to reach the desired state before returning. An optional argument, time-out, can be specified which will end the waiting after the specified amount of time (in seconds). The default value for this timeout is 0, which means it will wait indefinitely.

Bug Fixes

  • Fixes an issue with OpenStackClient plugin not being able to work with versioned ironic endpoints.

1.10.0

New Features

  • Adds ability to set custom VIF information fields via the –vif-info <key=value> option in the ironic node-vif-attach and openstack baremetal node vif attach commands.

  • Enhances OSC to support soft reboot and soft power off with power control timeout option.

  • Add optional arguments ‘–soft’ and ‘–power-timeout’ to the command “node-set-power-state”.

1.9.0

New Features

  • Add possibility to remove chassis_uuid for node by adding ‘–chassis-uuid’ argument to ‘openstack baremetal node unset’ command.

  • Mode and properties fields were added to the portgroup object, along with respective arguments for the ironic CLI and the OpenStackClient plugin, they are available starting with ironic API microversion 1.26.

  • Extends the Ironic CLI with new commands:

    • ironic portgroup-create

    • ironic portgroup-show

    • ironic portgroup-list

    • ironic portgroup-delete

    • ironic portgroup-update

    • ironic portgroup-port-list

    Also extends ironic port-create with –portgroup. Portgroup support was added in Ironic API version 1.24.

  • Adds support for attaching and detaching VIFs. This is available starting with ironic API microversion 1.28.

    The new commands are:

    • ironic node-vif-list <node>

    • ironic node-vif-attach <node> <vif-id>

    • ironic node-vif-detach <node> <vif-id>

    • openstack baremetal node vif list <node>

    • openstack baremetal node vif attach <node> <vif-id>

    • openstack baremetal node vif detach <node> <vif-id>

  • The chassis of a node can be set via the new –chassis-uuid optional argument for openstack baremetal node set.

  • Extend the OpenStackClient plugin with new commands:

    • openstack baremetal port group create

    • openstack baremetal port group show

    • openstack baremetal port group list

    • openstack baremetal port group delete

    • openstack baremetal port group set

    • openstack baremetal port group unset

    Extends the ‘openstack baremetal port’ commands (where applicable) to allow specifying the port group (if any) that a port is a member of, via the new –port-group argument.

Bug Fixes

  • Where applicable, help for commands will output the required arguments in a separate section from the optional arguments. For example, the commands ironic help node-create and ironic help port-create.

1.8.0

Upgrade Notes

  • Hide nodes field in ‘chasiss create’ and ‘chassis show’ OSC subcommand output because this field is not meant for CLI users.

  • Hide ports field in ‘node create’ and ‘node show’ OSC subcommand output because this field is not meant for CLI users.

Bug Fixes

  • If a node does not have chassis_uuid field in the API response, it is added to the output of the node commands as an empty string.

  • Fixes an issue in a python 3 environment, where TypeError exceptions were being raised (due to the “requests” library returning bytes instead of a string).

  • Fixes ‘ironic create <file>’ command so that it handles the file argument(s) correctly.

  • For node resources that had no boot devices, no supported boot devices, or no passthru methods (and driver resources with no properties or no passthru methods), issuing a request to get that information (for example, ‘ironic driver-get-vendor-passthru-methods fake’) would result in the error “‘NoneType’ has no attribute ‘to_dict’”. This is fixed; an empty list is now returned.

  • Fixes the OpenStackClient plugin so that it uses the same default API version as the Ironic CLI (1.9 instead of 1.6).

  • Fixes the OpenStackClient plugin so that microversions 1.21 and 1.22 are supported.

1.7.0

New Features

  • Adds a new ironic create command that creates resources (chassis, nodes, ports) specified in one or more JSON (*.json) or YAML (*.yaml) files.

  • Adds a new openstack baremetal create command. Similar to the ironic create command, this command creates resources specified in one or more files. (Note that openstack baremetal create can also be used to create a node via specified node attributes. However, this feature has been deprecated since 1.4.0.)

  • The ironic port-show, ironic port-list --detail, and ironic node-port-list --detail commands now include the internal_info field in the output.

  • Adds new OpenStackClient commands:

    • openstack baremetal chassis create

    • openstack baremetal chassis delete

    • openstack baremetal chassis list

    • openstack baremetal chassis set

    • openstack baremetal chassis show

    • openstack baremetal chassis unset

    • openstack baremetal driver list

    • openstack baremetal driver passthru call

    • openstack baremetal driver passthru list

    • openstack baremetal driver show

    • openstack baremetal node adopt

    • openstack baremetal node boot device set

    • openstack baremetal node boot device show

    • openstack baremetal node console disable

    • openstack baremetal node console enable

    • openstack baremetal node console show

    • openstack baremetal node passthru call

    • openstack baremetal node passthru list

    • openstack baremetal node validate

    • openstack baremetal port delete

    • openstack baremetal port list

    • openstack baremetal port set

    • openstack baremetal port unset

    Please see the help for each command for more information.

  • Adds an option --chassis <chassis UUID> to the openstack baremetal node list command. It provides the ability to get a list of the nodes of the specified chassis.

  • Allows setting and unsetting (clearing) the node’s target RAID configuration via the OpenStackClient plugin commands openstack baremetal node set --target-raid-config and openstack baremetal node unset --target-raid-config respectively.

  • Adds --wait flag to the ironic node-set-provision-state command and the associated node.wait_for_provision_state method in the Python API. The flag works with all provision state changes except for abort.

Deprecation Notes

  • Deprecates -l argument of openstack baremetal port create command in favor of --local-link-connection, as by OpenStackClient guidelines, the options should be full words.

Bug Fixes

  • Fail with EndpointException instead of IndexError while creating v1 client without endpoint argument if os_ironic_api_version isn’t specified.

1.6.0

New Features

  • Adds support for the new node.resource_class field, which was introduced in API version 1.21.

  • Extend the OpenStackClient plugin with new commands:

    • openstack baremetal port show

1.5.0

New Features

  • Add support of new fields:

    • node.network_interface is introduced in API 1.20, specifies the network interface to use for a node.

    • port.local_link_connection contains the port binding profile.

    • port.pxe_enabled indicates whether PXE is enabled for the port.

    The port.local_link_connection and port.pxe_enabled fields were introduced in API 1.19.

1.4.0

New Features

  • Add support for specifying the expiry (in seconds) of the caching of the ironic API version, via the environment variable “IRONICCLIENT_CACHE_EXPIRY”.

  • Add a –json option to the client to display the JSON response body from the Ironic API without formatting it.

  • Extend the OpenStackClient plugin with new commands:

    • openstack baremetal node abort

    • openstack baremetal node clean

    • openstack baremetal node create

    • openstack baremetal node delete - Supports deleting multiple nodes

    • openstack baremetal node deploy

    • openstack baremetal node inspect

    • openstack baremetal node list

    • openstack baremetal node maintenance set

    • openstack baremetal node maintenance unset

    • openstack baremetal node manage

    • openstack baremetal node power

    • openstack baremetal node provide

    • openstack baremetal node reboot

    • openstack baremetal node rebuild

    • openstack baremetal node set

    • openstack baremetal node show

    • openstack baremetal node undeploy

    • openstack baremetal node unset

    • openstack baremetal port create

  • Support has been added for the node-set-provision-state verb adopt which requires API version 1.17. This feature allows an operator move a node from MANAGABLE state to ACTIVE state without performing cleaning or a deployment operation.

Deprecation Notes

  • Deprecating the following commands in favor of the new commands:

    • openstack baremetal create

    • openstack baremetal delete

    • openstack baremetal list

    • openstack baremetal set

    • openstack baremetal show

    • openstack baremetal unset

    These will be removed in the ‘Queens’ release.

Bug Fixes

  • The client will now retry on keystoneauth retriable connection failures if retries are enabled for a particular request. This ensures that on a temporary network outage to the keystone auth services a request we be retried the requested number of times before raising an exception.

  • Fixes an issue when SessionClient ignores endpoint_override while doing session requests, which leads to undeterministic results in multi-region deployments.

1.2.0

New Features

  • Added a possibility to pass os_auth_token instead of os_username and os_password to authenticate in keystone both in CLI and in get_client function.

  • Add support for filtering nodes using the same driver in list command.

  • Adds support for manual cleaning API; available with ironic-api-version 1.15 or higher. The ironic CLI is “ironic node-set-provision-state –clean-steps <clean-steps> <node> <provision-state>” where <provision-state> is ‘clean’ and <clean-steps> is the clean steps in JSON format. May be the path to a file containing the clean steps; OR ‘-’, with the clean steps being read from standard input; OR a string. The value should be a list of clean-step dictionaries; each dictionary should have keys ‘interface’ and ‘step’, and optional key ‘args’.

  • Adds support for RAID configuration:

    • Ability to set target_raid_config for a node using node-set-target-raid-config.

    • Displays target_raid_config and raid_config in node-show.

    • Displays logical disk properties for a driver using driver-raid-logical-disk-properties.

    API version 1.15 should be used with these features, as RAID configuration was added in 1.12 and manual cleaning (used to trigger RAID configuration) was added in 1.15.

  • Switch HTTP client to requests lib. It allows client to work with API behind the proxy, configure proxies by setting the environment variables HTTP_PROXY and HTTPS_PROXY.

Bug Fixes

  • when deleting multiple nodes, continue with deletes even if one fails.

  • Fixes an issue where deleting nodes ignore failures and just prints the results which nodes are deleted and which are failed, always returning exit code of 0. This now will return a non-zero exit code if at least one node-delete fails.

Other Notes

  • Log the SHA1 hash of X-Auth-Token value prefixed by ‘{SHA}’.

1.1.0

New Features

  • Add support to the openstackclient plugin for all Ironic API versions of the form 1.x, up to the latest known minor version. The regular Ironic CLI already supports all known versions.

Other Notes

  • Start using reno to manage release notes.