Merge "reformat REST API Version History page"

This commit is contained in:
Jenkins 2017-09-07 21:06:57 +00:00 committed by Gerrit Code Review
commit def07f26e5
1 changed files with 216 additions and 180 deletions

View File

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