ironic/api-ref/source/baremetal-api-v1-nodes-trai...

134 lines
2.6 KiB
ReStructuredText

.. -*- rst -*-
===================
Node Traits (nodes)
===================
.. versionadded:: 1.37
Node traits are used for scheduling in the Compute service, using qualitative
attributes to influence the placement of instances to bare metal compute nodes.
Traits specified for a node in the Bare Metal service will be registered on the
corresponding resource provider in the Compute service's placement API.
Traits can be either standard or custom. Standard traits are listed in the
`os_traits library <https://docs.openstack.org/os-traits/latest/>`_. Custom
traits must meet the following requirements:
* prefixed with ``CUSTOM_``
* contain only upper case characters A to Z, digits 0 to 9, or underscores
* no longer than 255 characters in length
A bare metal node can have a maximum of 50 traits.
List Traits of a Node
=====================
.. rest_method:: GET /v1/nodes/{node_ident}/traits
Return a list of traits for the node.
Normal response code: 200
Error codes: 400,401,403,404
Request
-------
.. rest_parameters:: parameters.yaml
- node_ident: node_ident
Response
--------
.. rest_parameters:: parameters.yaml
- traits: n_traits
**Example list of traits for the node:**
.. literalinclude:: samples/node-traits-list-response.json
:language: javascript
Set all traits of a node
========================
.. rest_method:: PUT /v1/nodes/{node_ident}/traits
Set all traits of a node, replacing any existing traits.
Normal response code: 204
Error codes: 400,401,403,404,409
Request
-------
.. rest_parameters:: parameters.yaml
- node_ident: node_ident
- traits: n_traits
**Example request to set all traits of a Node:**
.. literalinclude:: samples/node-set-traits-request.json
Add a trait to a node
=====================
.. rest_method:: PUT /v1/nodes/{node_ident}/traits/{trait}
Add a single trait to a node.
Normal response code: 204
Error codes: 400,401,403,404,409
Request
-------
.. rest_parameters:: parameters.yaml
- node_ident: node_ident
- trait: trait
Remove all traits from a node
=============================
.. rest_method:: DELETE /v1/nodes/{node_ident}/traits
Normal response code: 204
Error codes: 400,401,403,404,409
Request
-------
.. rest_parameters:: parameters.yaml
- node_ident: node_ident
Remove a trait from a node
==========================
Remove a single trait from a node.
.. rest_method:: DELETE /v1/nodes/{node_ident}/traits/{trait}
Normal response code: 204
Error codes: 400,401,403,404,409
Request
-------
.. rest_parameters:: parameters.yaml
- node_ident: node_ident
- trait: trait