summaryrefslogtreecommitdiff
path: root/api-ref/source/baremetal-api-v1-nodes-traits.inc
blob: ae4b54c545542e0c19d54ee6742d2fca89f6d76c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
.. -*- 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