REST API Version History¶
1.31 (Ocata)
Added the following fields to the node object, to allow getting and setting interfaces for a dynamic driver:
- boot_interface
- console_interface
- deploy_interface
- inspect_interface
- management_interface
- power_interface
- raid_interface
- vendor_interface
1.30 (Ocata)
Added dynamic driver APIs.
GET /v1/drivers now accepts a
type
parameter (optional, one ofclassic
ordynamic
), to limit the result to only classic drivers or dynamic drivers (hardware types). Without this parameter, both classic and dynamic drivers are returned.GET /v1/drivers now accepts a
detail
parameter (optional, one ofTrue
orFalse
), to show all fields for a driver. Defaults toFalse
.GET /v1/drivers now returns an additional
type
field to show if the driver is classic or dynamic.GET /v1/drivers/<name> now returns an additional
type
field to show if the driver is classic or dynamic.GET /v1/drivers/<name> now returns additional fields that are null for classic drivers, and set as following for dynamic drivers:
The value of the default_<interface-type>_interface is the entrypoint name of the calculated default interface for that type:
- default_boot_interface
- default_console_interface
- default_deploy_interface
- default_inspect_interface
- default_management_interface
- default_network_interface
- default_power_interface
- default_raid_interface
- default_vendor_interface
The value of the enabled_<interface-type>_interfaces is a list of entrypoint names of the enabled interfaces for that type:
- enabled_boot_interfaces
- enabled_console_interfaces
- enabled_deploy_interfaces
- enabled_inspect_interfaces
- enabled_management_interfaces
- enabled_network_interfaces
- enabled_power_interfaces
- enabled_raid_interfaces
- enabled_vendor_interfaces
1.29 (Ocata)
Add a new management API to support inject NMI, ‘PUT /v1/nodes/(node_ident)/management/inject_nmi’.
1.28 (Ocata)
Add ‘/v1/nodes/<node identifier>/vifs’ endpoint for attach, detach and list of VIFs.
1.27 (Ocata)
Addsoft rebooting
andsoft power off
as possible values for thetarget
field of the power state change payload, and also addtimeout
field to it.
1.26 (Ocata)
Add portgroupmode
andproperties
fields.
1.25 (Ocata)
Add possibility to unset chassis_uuid from a node.
1.24 (Ocata)
Added new endpoints ‘/v1/nodes/<node>/portgroups’ and ‘/v1/portgroups/<portgroup>/ports’. Added new fieldport.portgroup_uuid
.
1.23 (Ocata)
Added ‘/v1/portgroups/ endpoint.
1.22 (Newton, 6.1.0)
Added endpoints for deployment ramdisks.
1.21 (Newton, 6.1.0)
Add noderesource_class
field.
1.20 (Newton, 6.1.0)
Add nodenetwork_interface
field.
1.19 (Newton, 6.1.0)
Addlocal_link_connection
andpxe_enabled
fields to the port object.
1.18 (Newton, 6.1.0)
Addinternal_info
readonly field to the port object, that will be used by ironic to store internal port-related information.
1.17 (Newton, 6.0.0)
Addition of provision_state verbadopt
which allows an operator to move a node frommanageable
state toactive
state without performing a deployment operation on the node. This is intended for nodes that have already been deployed by external means.
1.16 (Mitaka, 5.0.0)
Add ability to filter nodes by driver.
1.15 (Mitaka, 5.0.0)
Add ability to do manual cleaning when a node is in the manageable provision state via PUT v1/nodes/<identifier>/states/provision, target:clean, clean_steps:[…].
1.14 (Liberty, 4.2.0)
Make the following endpoints discoverable via Ironic API:
- ‘/v1/nodes/<UUID or logical name>/states’
- ‘/v1/drivers/<driver name>/properties’
1.13 (Liberty, 4.2.0)
Add a new verbabort
to the API used to abort nodes inCLEANWAIT
state.
1.12 (Liberty, 4.2.0)
This API version adds the following abilities:
- Get/set
node.target_raid_config
and to getnode.raid_config
.- Retrieve the logical disk properties for the driver.
1.11 (Liberty, 4.0.0, breaking change)
Newly registered nodes begin in theenroll
provision state by default, instead ofavailable
. To get them to theavailable
state, themanage
action must first be run to verify basic hardware control. On success the node moves tomanageable
provision state. Then theprovide
action must be run. Automated cleaning of the node is done and the node is madeavailable
.
1.10 (Liberty, 4.0.0)
Logical node names support all RFC 3986 unreserved characters. Previously only valid fully qualified domain names could be used.
1.9 (Liberty, 4.0.0)
Add ability to filter nodes by provision state.
1.8 (Liberty, 4.0.0)
Add ability to return a subset of resource fields.
1.7 (Liberty, 4.0.0)
Add nodeclean_step
field.
1.6 (Kilo)
Add Hardware Inspection process: introduceinspecting
andinspectfail
provision states, andinspect
action that can be used when a node is inmanageable
provision state.
1.5 (Kilo)
Add logical node names that can be used to address a node in addition to the node UUID. Name is expected to be a valid fully qualified domain name in this version of API.
1.4 (Kilo)
Addmanageable
state andmanage
transition, which can be used to move a node tomanageable
state fromavailable
. The node cannot be deployed inmanageable
state. This change is mostly a preparation for future inspection work and introduction ofenroll
provision state.
1.3 (Kilo)
Add nodedriver_internal_info
field.
1.2 (Kilo, breaking change)
Renamed NOSTATE (None
in Python,null
in JSON) node state toavailable
. This is needed to reduce confusion aroundNone
state, especially when future additions to the state machine land.
1.1 (Kilo)
This was the initial version when API versioning was introduced. Includes the following changes from Kilo release cycle:
- Add node
maintenance_reason
field and an API endpoint to set/unset the node maintenance mode.- Add sync and async support for vendor passthru methods.
- Vendor passthru endpoints support different HTTP methods, not only
POST
.- Make vendor methods discoverable via the Ironic API.
- Add logic to store the config drive passed by Nova.
This has been the minimum supported version since versioning was introduced.
1.0 (Juno)
This version denotes Juno API and was never explicitly supported, as API versioning was not implemented in Juno, and 1.1 became the minimum supported version in Kilo.