reformat REST API Version History page

This reformats the REST API Version History page so that:

* the ugly indents are gone
* each API version is in its own section and appears in the page
  contents (bottom, left-hand-side)
* added semver numbers of the ironic release where the API version
  was introduced

Change-Id: I37cdb7dcc4ebbc367ead277488ed805694a19450
Partial-Bug: #1712860
This commit is contained in:
Ruby Loo
2017-09-06 17:00:11 -04:00
parent e9318c7574
commit 72f8b11e33

View File

@@ -2,74 +2,80 @@
REST API Version History REST API Version History
======================== ========================
**1.34** (Pike) 1.34 (Pike, 9.0.0)
------------------
Adds a ``physical_network`` field to the port object. All ports in a Adds a ``physical_network`` field to the port object. All ports in a
portgroup must have the same value in their ``physical_network`` field. portgroup must have the same value in their ``physical_network`` field.
**1.33** (Pike) 1.33 (Pike, 9.0.0)
------------------
Added ``storage_interface`` field to the node object to allow getting and Added ``storage_interface`` field to the node object to allow getting and
setting the interface. setting the interface.
Also added ``default_storage_interface`` and ``enabled_storage_interfaces``
fields to the driver object to show the information.
**1.32** (Pike) Added ``default_storage_interface`` and ``enabled_storage_interfaces``
fields to the driver object to show the information.
Added new endpoints for remote volume configuration: 1.32 (Pike, 9.0.0)
------------------
* GET /v1/volume as a root for volume resources Added new endpoints for remote volume configuration:
* GET /v1/volume/connectors for listing volume connectors
* POST /v1/volume/connectors for creating a volume connector
* GET /v1/volume/connectors/<UUID> for showing a volume connector
* PATCH /v1/volume/connectors/<UUID> for updating a volume connector
* DELETE /v1/volume/connectors/<UUID> for deleting a volume connector
* GET /v1/volume/targets for listing volume targets
* POST /v1/volume/targets for creating a volume target
* GET /v1/volume/targets/<UUID> for showing a volume target
* PATCH /v1/volume/targets/<UUID> for updating a volume target
* DELETE /v1/volume/targets/<UUID> for deleting a volume target
Volume resources also can be listed as sub resources of nodes: * GET /v1/volume as a root for volume resources
* GET /v1/volume/connectors for listing volume connectors
* POST /v1/volume/connectors for creating a volume connector
* GET /v1/volume/connectors/<UUID> for showing a volume connector
* PATCH /v1/volume/connectors/<UUID> for updating a volume connector
* DELETE /v1/volume/connectors/<UUID> for deleting a volume connector
* GET /v1/volume/targets for listing volume targets
* POST /v1/volume/targets for creating a volume target
* GET /v1/volume/targets/<UUID> for showing a volume target
* PATCH /v1/volume/targets/<UUID> for updating a volume target
* DELETE /v1/volume/targets/<UUID> for deleting a volume target
* GET /v1/nodes/<node identifier>/volume Volume resources also can be listed as sub resources of nodes:
* GET /v1/nodes/<node identifier>/volume/connectors
* GET /v1/nodes/<node identifier>/volume/targets
**1.31** (Ocata) * GET /v1/nodes/<node identifier>/volume
* GET /v1/nodes/<node identifier>/volume/connectors
* GET /v1/nodes/<node identifier>/volume/targets
Added the following fields to the node object, to allow getting and 1.31 (Ocata, 7.0.0)
setting interfaces for a dynamic driver: -------------------
* boot_interface Added the following fields to the node object, to allow getting and
* console_interface setting interfaces for a dynamic driver:
* deploy_interface
* inspect_interface
* management_interface
* power_interface
* raid_interface
* vendor_interface
**1.30** (Ocata) * boot_interface
* console_interface
* deploy_interface
* inspect_interface
* management_interface
* power_interface
* raid_interface
* vendor_interface
Added dynamic driver APIs. 1.30 (Ocata, 7.0.0)
-------------------
* GET /v1/drivers now accepts a ``type`` parameter (optional, one of Added dynamic driver APIs:
* GET /v1/drivers now accepts a ``type`` parameter (optional, one of
``classic`` or ``dynamic``), to limit the result to only classic drivers ``classic`` or ``dynamic``), to limit the result to only classic drivers
or dynamic drivers (hardware types). Without this parameter, both or dynamic drivers (hardware types). Without this parameter, both
classic and dynamic drivers are returned. classic and dynamic drivers are returned.
* GET /v1/drivers now accepts a ``detail`` parameter (optional, one of * GET /v1/drivers now accepts a ``detail`` parameter (optional, one of
``True`` or ``False``), to show all fields for a driver. Defaults to ``True`` or ``False``), to show all fields for a driver. Defaults to
``False``. ``False``.
* GET /v1/drivers now returns an additional ``type`` field to show if the * GET /v1/drivers now returns an additional ``type`` field to show if the
driver is classic or dynamic. driver is classic or dynamic.
* GET /v1/drivers/<name> now returns an additional ``type`` field to show * GET /v1/drivers/<name> now returns an additional ``type`` field to show
if the driver is classic or dynamic. if the driver is classic or dynamic.
* GET /v1/drivers/<name> now returns additional fields that are null for * GET /v1/drivers/<name> now returns additional fields that are null for
classic drivers, and set as following for dynamic drivers: classic drivers, and set as following for dynamic drivers:
* The value of the default_<interface-type>_interface is the entrypoint * The value of the default_<interface-type>_interface is the entrypoint
@@ -98,176 +104,206 @@ REST API Version History
* enabled_raid_interfaces * enabled_raid_interfaces
* enabled_vendor_interfaces * enabled_vendor_interfaces
**1.29** (Ocata) 1.29 (Ocata, 7.0.0)
-------------------
Add a new management API to support inject NMI, Add a new management API to support inject NMI,
'PUT /v1/nodes/(node_ident)/management/inject_nmi'. 'PUT /v1/nodes/(node_ident)/management/inject_nmi'.
**1.28** (Ocata) 1.28 (Ocata, 7.0.0)
-------------------
Add '/v1/nodes/<node identifier>/vifs' endpoint for attach, detach and list of VIFs. Add '/v1/nodes/<node identifier>/vifs' endpoint for attach, detach and list of VIFs.
**1.27** (Ocata) 1.27 (Ocata, 7.0.0)
-------------------
Add ``soft rebooting`` and ``soft power off`` as possible values Add ``soft rebooting`` and ``soft power off`` as possible values
for the ``target`` field of the power state change payload, and for the ``target`` field of the power state change payload, and
also add ``timeout`` field to it. also add ``timeout`` field to it.
**1.26** (Ocata) 1.26 (Ocata, 7.0.0)
-------------------
Add portgroup ``mode`` and ``properties`` fields. Add portgroup ``mode`` and ``properties`` fields.
**1.25** (Ocata) 1.25 (Ocata, 7.0.0)
-------------------
Add possibility to unset chassis_uuid from a node. Add possibility to unset chassis_uuid from a node.
**1.24** (Ocata) 1.24 (Ocata, 7.0.0)
-------------------
Added new endpoints '/v1/nodes/<node>/portgroups' and '/v1/portgroups/<portgroup>/ports'. Added new endpoints '/v1/nodes/<node>/portgroups' and '/v1/portgroups/<portgroup>/ports'.
Added new field ``port.portgroup_uuid``. Added new field ``port.portgroup_uuid``.
**1.23** (Ocata) 1.23 (Ocata, 7.0.0)
-------------------
Added '/v1/portgroups/ endpoint. Added '/v1/portgroups/ endpoint.
**1.22** (Newton, 6.1.0) 1.22 (Newton, 6.1.0)
--------------------
Added endpoints for deployment ramdisks. Added endpoints for deployment ramdisks.
**1.21** (Newton, 6.1.0) 1.21 (Newton, 6.1.0)
--------------------
Add node ``resource_class`` field. Add node ``resource_class`` field.
**1.20** (Newton, 6.1.0) 1.20 (Newton, 6.1.0)
--------------------
Add node ``network_interface`` field. Add node ``network_interface`` field.
**1.19** (Newton, 6.1.0) 1.19 (Newton, 6.1.0)
--------------------
Add ``local_link_connection`` and ``pxe_enabled`` fields to the port object. Add ``local_link_connection`` and ``pxe_enabled`` fields to the port object.
**1.18** (Newton, 6.1.0) 1.18 (Newton, 6.1.0)
--------------------
Add ``internal_info`` readonly field to the port object, that will be used Add ``internal_info`` readonly field to the port object, that will be used
by ironic to store internal port-related information. by ironic to store internal port-related information.
**1.17** (Newton, 6.0.0) 1.17 (Newton, 6.0.0)
--------------------
Addition of provision_state verb ``adopt`` which allows an operator Addition of provision_state verb ``adopt`` which allows an operator
to move a node from ``manageable`` state to ``active`` state without to move a node from ``manageable`` state to ``active`` state without
performing a deployment operation on the node. This is intended for performing a deployment operation on the node. This is intended for
nodes that have already been deployed by external means. nodes that have already been deployed by external means.
**1.16** (Mitaka, 5.0.0) 1.16 (Mitaka, 5.0.0)
--------------------
Add ability to filter nodes by driver. Add ability to filter nodes by driver.
**1.15** (Mitaka, 5.0.0) 1.15 (Mitaka, 5.0.0)
--------------------
Add ability to do manual cleaning when a node is in the manageable Add ability to do manual cleaning when a node is in the manageable
provision state via PUT v1/nodes/<identifier>/states/provision, provision state via PUT v1/nodes/<identifier>/states/provision,
target:clean, clean_steps:[...]. target:clean, clean_steps:[...].
**1.14** (Liberty, 4.2.0) 1.14 (Liberty, 4.2.0)
---------------------
Make the following endpoints discoverable via Ironic API: Make the following endpoints discoverable via Ironic API:
* '/v1/nodes/<UUID or logical name>/states' * '/v1/nodes/<UUID or logical name>/states'
* '/v1/drivers/<driver name>/properties' * '/v1/drivers/<driver name>/properties'
**1.13** (Liberty, 4.2.0) 1.13 (Liberty, 4.2.0)
---------------------
Add a new verb ``abort`` to the API used to abort nodes in Add a new verb ``abort`` to the API used to abort nodes in
``CLEANWAIT`` state. ``CLEANWAIT`` state.
**1.12** (Liberty, 4.2.0) 1.12 (Liberty, 4.2.0)
---------------------
This API version adds the following abilities: This API version adds the following abilities:
* Get/set ``node.target_raid_config`` and to get * Get/set ``node.target_raid_config`` and to get
``node.raid_config``. ``node.raid_config``.
* Retrieve the logical disk properties for the driver. * Retrieve the logical disk properties for the driver.
**1.11** (Liberty, 4.0.0, breaking change) 1.11 (Liberty, 4.0.0, breaking change)
--------------------------------------
Newly registered nodes begin in the ``enroll`` provision state by default, Newly registered nodes begin in the ``enroll`` provision state by default,
instead of ``available``. To get them to the ``available`` state, instead of ``available``. To get them to the ``available`` state,
the ``manage`` action must first be run to verify basic hardware control. the ``manage`` action must first be run to verify basic hardware control.
On success the node moves to ``manageable`` provision state. Then the On success the node moves to ``manageable`` provision state. Then the
``provide`` action must be run. Automated cleaning of the node is done and ``provide`` action must be run. Automated cleaning of the node is done and
the node is made ``available``. the node is made ``available``.
**1.10** (Liberty, 4.0.0) 1.10 (Liberty, 4.0.0)
---------------------
Logical node names support all RFC 3986 unreserved characters. Logical node names support all RFC 3986 unreserved characters.
Previously only valid fully qualified domain names could be used. Previously only valid fully qualified domain names could be used.
**1.9** (Liberty, 4.0.0) 1.9 (Liberty, 4.0.0)
--------------------
Add ability to filter nodes by provision state. Add ability to filter nodes by provision state.
**1.8** (Liberty, 4.0.0) 1.8 (Liberty, 4.0.0)
--------------------
Add ability to return a subset of resource fields. Add ability to return a subset of resource fields.
**1.7** (Liberty, 4.0.0) 1.7 (Liberty, 4.0.0)
--------------------
Add node ``clean_step`` field. Add node ``clean_step`` field.
**1.6** (Kilo) 1.6 (Kilo)
----------
Add :ref:`inspection` process: introduce ``inspecting`` and ``inspectfail`` Add :ref:`inspection` process: introduce ``inspecting`` and ``inspectfail``
provision states, and ``inspect`` action that can be used when a node is in provision states, and ``inspect`` action that can be used when a node is in
``manageable`` provision state. ``manageable`` provision state.
**1.5** (Kilo) 1.5 (Kilo)
----------
Add logical node names that can be used to address a node in addition to 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 the node UUID. Name is expected to be a valid `fully qualified domain
name`_ in this version of API. name`_ in this version of API.
**1.4** (Kilo) 1.4 (Kilo)
----------
Add ``manageable`` state and ``manage`` transition, which can be used to Add ``manageable`` state and ``manage`` transition, which can be used to
move a node to ``manageable`` state from ``available``. move a node to ``manageable`` state from ``available``.
The node cannot be deployed in ``manageable`` state. The node cannot be deployed in ``manageable`` state.
This change is mostly a preparation for future inspection work This change is mostly a preparation for future inspection work
and introduction of ``enroll`` provision state. and introduction of ``enroll`` provision state.
**1.3** (Kilo) 1.3 (Kilo)
----------
Add node ``driver_internal_info`` field. Add node ``driver_internal_info`` field.
**1.2** (Kilo, breaking change) 1.2 (Kilo, breaking change)
---------------------------
Renamed NOSTATE (``None`` in Python, ``null`` in JSON) node state to Renamed NOSTATE (``None`` in Python, ``null`` in JSON) node state to
``available``. This is needed to reduce confusion around ``None`` state, ``available``. This is needed to reduce confusion around ``None`` state,
especially when future additions to the state machine land. especially when future additions to the state machine land.
**1.1** (Kilo) 1.1 (Kilo)
----------
This was the initial version when API versioning was introduced. This was the initial version when API versioning was introduced.
Includes the following changes from Kilo release cycle: Includes the following changes from Kilo release cycle:
* Add node ``maintenance_reason`` field and an API endpoint to * Add node ``maintenance_reason`` field and an API endpoint to
set/unset the node maintenance mode. set/unset the node maintenance mode.
* Add sync and async support for vendor passthru methods. * Add sync and async support for vendor passthru methods.
* Vendor passthru endpoints support different HTTP methods, not only * Vendor passthru endpoints support different HTTP methods, not only
``POST``. ``POST``.
* Make vendor methods discoverable via the Ironic API. * Make vendor methods discoverable via the Ironic API.
* Add logic to store the config drive passed by Nova. * Add logic to store the config drive passed by Nova.
This has been the minimum supported version since versioning was This has been the minimum supported version since versioning was
introduced. introduced.
**1.0** (Juno) 1.0 (Juno)
----------
This version denotes Juno API and was never explicitly supported, as API This version denotes Juno API and was never explicitly supported, as API
versioning was not implemented in Juno, and **1.1** became the minimum versioning was not implemented in Juno, and 1.1 became the minimum
supported version in Kilo. supported version in Kilo.
.. _fully qualified domain name: https://en.wikipedia.org/wiki/Fully_qualified_domain_name .. _fully qualified domain name: https://en.wikipedia.org/wiki/Fully_qualified_domain_name