40 Commits

Author SHA1 Message Date
Julia Kreger
3f5e25e182 DPU modeling - parent_node DB/Model/API
Adds the parent node support and tests in one change
including all DB/Model/API changes along with RBAC and
basic API tests.

* Updates the API version to 1.83
* Adds parent_node and related index to the nodes table.
* Adds new API parameters to list by parent node relationship.

Depends-On: https://review.opendev.org/c/openstack/ironic/+/883967
Change-Id: I8d64fee7105718199986db4994e13352d639f04f
2023-05-23 18:23:25 +00:00
Jay Faulkner
a0c1fd8888 Add support for filtering for sharded nodes
This request parameter will allow an operator to ask the question
"Do I need to assign shards to any of my nodes?".

Change-Id: I26b745e5ef2b320a8d8a0667ac61c080fcdcd576
2023-02-13 11:46:21 -08:00
Jay Faulkner
8e34d622af API support for CRUD node.shard
- Basic support and testing for CRUD for node.shard.
- Policy checking for update node.shard.
- New API endpoint: GET /v1/shards
- Policy checking for GET /v1/shards
- Support for querying for nodes in a list of shards

Story: 2010378
Task: 46624
Change-Id: I385594339028c20cfc83fdcc4cbbec107efdacff
2023-02-13 11:46:21 -08:00
Mahnoor Asghar
3e631a5931 Create API documentation from docstrings
Create a new Sphinx extension called 'web_api_docstring' to process
docstrings from the API classes, in order to generate API
documentation.

Story: 2009785
Task: 44291
Change-Id: Ia6b2b3741e2b1cbd29531c21795df4f0f0dc70ca
2022-03-17 01:22:44 +05:00
Bob Fournier
98c9500614 Add bios_interface to api-ref spec
This is a doc change to add bios_interface to the api reference. Its
included in the detailed node list and node show but wasn't shown
in the api-ref.

Change-Id: I8735d10db1644f8a2c872c75c156c75c06b79c0c
2021-05-14 11:31:40 -04:00
Steve Baker
50657a87df Complete the REST API POST documentation
This change adds missing POST request parameters and makes other minor
corrections to the REST API documentation.

Its possible that some of the parameters for /v1/nodes were never
intended to be available for the POST call, but this docs change is to
document what has been implemented, not the original intention.

Change-Id: I1e35586d20bd3eda4d727931235340dd408c7508
2020-12-16 11:14:37 +13:00
Dmitry Tantsur
255fac17a0 Rewrite DHCP-less documentation
The current documentation is basically unreadable and contains a few
factual errors. Rewrite it for simplicity and move to a separate file
since at least 2 hardware types claim its support.

The patch does not concern the current status of the feature, an
easily revertable follow-up will be posted for that.

Change-Id: I3404378333316b0736ce07610a1dbbd7847bac00
2020-12-15 14:45:46 +01:00
Ilya Etingof
653d4e4ef5 Add network_data field to ironic node object
A new dictionary field `network_data` is added to the node object.
This new field can be populated by the operator with node static
network configuration.

Ironic API now performs formal JSON document validation of node
`network_data` field content against user-supplied JSON schema at
driver validation step.

As of this commit, the new `network_data` field is not actually
used by ironic, otherwise it should be perfectly functional. In
the following commits, network static configuration will be taken
from this field and handed over to ironic ramdisk bootstrapping
utilities.

Change-Id: I868b3b56a17f59e5aa1494b2e0ebc9c4e34ef173
Story: 2006691
Task: 36991
2020-05-05 15:57:36 +02:00
Tzu-Mainn Chen
602a467a04 Add node lessee field
This change adds a `lessee` field to nodes, and exposes it
to policy. It also updates the non-admin node list API
to match for both owner and lessee; and updates the
allocation conductor to match owner allocations with nodes
with the appropriate lessee.

Change-Id: Ib31b49c7143ec8fd6cb486fc24038215b197c418
Story: 2006506
Task: 37930
2020-04-07 15:33:42 +00:00
Arne Wiebalck
3ecaadbb35 Support node retirement
This change adds support for node retirement: nodes can
have additional properties 'retired' and 'retired_reason'
which change the way the nodes (can) traverse the FSM
and which operations are allowed. In particular:
- retired nodes cannot move from manageable to available;
- upon instance deletion, retired nodes move to manageable
  (rather than available).

Story: #2005425
Task: #38142

Change-Id: I8113a44c28f62bf83f8e213aeb6704f96055d52b
2020-01-28 11:01:32 +01:00
Dmitry Tantsur
acc4c402de Allocation API: reference documentation
Change-Id: I48f20f0b96931a17c477b9687b0ee963cb7b8879
Story: #2004341
Task: #29574
2019-02-26 10:16:25 +01:00
Kaifeng Wang
d4233e52a9 Expose conductors: api-ref
This patch updates API reference to contain the changes made
by the feature of exposing conductors.

Story: 1724474
Task: 28064

Change-Id: I47dbea2cda1cc0ad73786fe3fe9b80850e1cf289
2019-02-12 07:02:09 -08:00
Kaifeng Wang
96bc6729cf Add description field to node: api-ref
Update api-ref to include the description field.

Also updated a few missing owner field.

Change-Id: I81c5bf1be18ac4109f0e5ef66193ff66f484d107
Story: 2003089
Task: 23178
2019-02-01 10:37:04 +08:00
Julia Kreger
052d90506f Add "owner" information field
Adds "owner" field on the node object and exposes it for updates
via the API.

Additionally, fixed a couple minor items related to the prior
where we missed updating version numbers in rebases.

Change-Id: Iaaf3db97d21de9b11236cf2d18ffcc3f73f6e50c
Story: #2001814
Task: #12550
2018-12-10 14:27:31 -08:00
Dmitry Tantsur
68d62f2bee Support for protecting nodes from undeploying and rebuilding
When handling the "pet" case, some nodes may be critical for the deployment.
For example, in an OpenStack installer like TripleO you may want to make
sure your controllers are not removed by an incorrect operation.

This changes introduces a new field "protected" on nodes. When it is
set to True, the "deleted" and "rebuild" provisioning actions fail with
HTTP 403.  Deleting such nodes is also not possible.

Also adds "protected_reason" for the operators to specify the reason
a node is protected.

Story: #2003869
Task: #26706
Change-Id: I1950bf6dd65b6596cae69d431ef288e578a89d6e
2018-11-27 10:07:30 +01:00
Jim Rollenhagen
d269c47a87 Add api-ref for conductor group
This was missed in the original feature; add it in.

Change-Id: I7bad95be09be90a9d804cf95cde4226ffd98bb46
2018-10-23 07:34:41 -04:00
Mark Goddard
5a14eed467 Deploy steps - API & notifications
Adds a 'deploy_step' field to the nodes API.

Co-Authored-By: Ruby Loo <rloo@oath.com>

Change-Id: I1baeeaaa6ed521e4189958fd7624cd6c5de96707
Story: #1753128
Task: #22592
2018-07-11 16:19:31 +00:00
Sam Betts
233d7d5727 Add detail=[True, False] query string to API list endpoints
We currently support /[nodes, ports, portgroups, chassis]/detail as an
API endpoint for getting a detailed list of each object. This does not
fit the RESTful and resourceful API design principles of <resource
type>/<resource id> and makes it hard to consume the API from frameworks
that expect that structure. We can't remove the old endpoint, so that is
safeguarded by the restricted node names list. This patch adds a
?detail=[True, False] query string to the list API endpoints to allow
those consuming the API to use the expected URL form.

Change-Id: I694919b4a4eaa3419318bbee1cde79de15e19afa
Story: #1662921
Task: #10176
2018-06-18 19:40:07 +00:00
Kaifeng Wang
8ee2f4b58f Power fault recovery follow up
This patch addresses comments relate to API and notification.

[1] https://review.openstack.org/#/c/558152
[2] https://review.openstack.org/#/c/556015/

Story: #1596107
Task: #10469

Change-Id: Ic2f7e6847790ae7af43570ca7af572539e7d5f2c
2018-06-06 13:20:55 +00:00
Kaifeng Wang
b4c4eb99fc Power fault recovery: API implementation
This patch exposes fault field to the API node object,
microversion and compatibility is handled.

Story: #1596107
Task: #10469

Change-Id: I31ed332be12cf98baaf01badcbb09ae4b8c6cae9
Partial-Bug: #1596107
2018-06-01 20:10:25 +08:00
fpxie
36ac2988db Add more parameter explanation when create a node
Change-Id: I8035546a21bf55af5df09aca3038ff377e0758a7
2018-04-20 08:33:17 +08:00
Zuul
6cbcdaee4e Merge "Add Error Codes" 2018-03-16 15:54:32 +00:00
Shivanand Tendulker
8010b07076 Follow-up patch for api-ref documentation for rescue
This patch addresses outstanding comments for commit
9a6c62dd8e54bb07f4ca4da0b4c3c4e71ebf7971

Change-Id: I3072f36a57cfd4d4963d5aa0bd2a60888df4d587
Related-Bug: #1526449
2018-02-02 10:05:47 -05:00
Mario Villaplana
9a6c62dd8e Add api-ref and ironic state documentation for rescue
This patch adds following:
  - Updates ironic state documentation with rescue related states
  - Updates api-ref with rescue interface fields introduced in
    API version 1.38

Co-Authored-By: Mario Villaplana <mario.villaplana@gmail.com>
Co-Authored-By: Aparna <aparnavtce@gmail.com>
Co-Authored-By: Shivanand Tendulker <stendulker@gmail.com>

Partial-Bug: 1526449

Change-Id: Ifcfa52ede62894b1990aaa640944be3431ddfe8f
2018-01-31 04:08:07 -05:00
Mark Goddard
223e9b1faa Add node traits to API reference
The node traits API was added in API microversion 1.37.

Change-Id: I8c48f2e7662ae9641ec823dc3802d5979a7ea03e
Partial-Bug: #1722194
2018-01-25 01:36:54 +00:00
fpxie
e038b67cd5 Add Error Codes
Add error codes when creates a new node resource

Change-Id: Id36590746ce3fdbf147bbb342fddda96b40c68b7
2018-01-08 00:27:11 +00:00
Sam Betts
bca44bcefc Switch API ref to use versionadded syntax throughout
Sphinx provides the versionadded syntax for indicating version related
changes in documentation, the OpenStack doc theme is designed to handle
this and render it nicely. This patch switches our inconsistent
references to API version related change in the API ref to use this
syntax so that it standardised through out the docs, and is more obvious
in the documentation itself.

Change-Id: Ied6f22deecebd71042d2230b81e057543db3d3f4
2017-09-05 17:27:24 +01:00
Hironori Shiina
05d85dd8bb Add storage interface to api-ref
This patch adds these storage interface fields to api-ref:
  - storage_interface of Node
  - default_storage_interface of Driver
  - enabled_storage_interfaces of Driver
These fields were introdeced with API version 1.33.

Change-Id: Iac73d7ae4976dfd437b9821a2221dd842be24b55
Partial-Bug: #1559691
2017-08-02 12:49:07 +00:00
Hironori Shiina
7317c17e4e Add API for volume resources to api-ref
This patch adds API for volume resources to api-ref.

Partial-Bug: 1526231
Change-Id: I986860cffd344f5cea9f8f5a2f845f77bf6e9e54
2017-08-02 12:46:36 +00:00
Mario Villaplana
d33faedbac Update api-ref for dynamic drivers
Updates reference for drivers API as well as nodes API to match the
merged driver composition reform work.

Change-Id: I89a7b1998a858d5c39f21c6653893aa8d7ad15bd
Partial-Bug: 1524745
2017-02-09 19:51:03 +00:00
Jenkins
41ffcf81a8 Merge "Followup to 0335e81a8787" 2016-11-17 13:57:58 +00:00
Vladyslav Drok
7d736d1697 Followup to 0335e81a8787
This change fixes issues pointed out in the last patch set of the
referenced change request.

Apart from that, 406 error code is removed from expected error codes,
as currently .*/portgroups.* resources do not return it.

Change-Id: Ib5fccb3a4d1d2c1c7dd1095b86199536db87da4c
2016-11-17 09:47:05 +00:00
Jenkins
8b1ffd8435 Merge "Add portgroup to api-ref" 2016-11-16 15:19:54 +00:00
Vasyl Saienko
0335e81a87 Add portgroup to api-ref
This patch updates api-ref documentations to reflect
portgroup changes.

Related-Bug: #1618754
Co-Authored-By: Vladyslav Drok <vdrok@mirantis.com>
Change-Id: Id34344df9d3e68efe891c2be4a0b362be6557202
2016-11-16 12:13:53 +02:00
Aline Bousquet
1f61654019 Add possibility to remove chassis_uuid from a node
Allow to unset the field "chassis_uuid" from a node using the "ironic
node-update <node_uuid> remove chassis_uuid" command.
The API version has been bumped to 1.25.

Change-Id: I1c8406f83f9d240ede99b0458c5e8b6967f2e37a
Closes-Bug: #1563263
2016-11-10 16:19:44 +00:00
Devananda van der Veen
a5c26972b2 Update documentation for keystone policy support
This change adds information about keystone policy support in the
following places:

* api-ref: add notes to the Nodes reference, indicating that
  password and configdrive contents may be hidden in responses
* deploy security guide: add a section about limiting API access
  by using the new policies and roles
* deploy install guide: add instructions for creating the necessary
  Roles with the Identity service
* dev quickstart guide: use devstack "demo" user throughout the guide,
  and add a note about why. Incidentally, switch to using "openstack"
  client instead of "ironic" and "nova" clients.

Partial-bug: #1526752
Change-Id: I392cabbf04badabd8ae7bb00a914b0a06db3d421
2016-08-26 15:11:16 +00:00
Devananda van der Veen
28a399a13c Update api-ref for v1.22
This commit does several things, which were just easier to do together.

- Adds a new "misc" page describing the /v1/lookup and /v1/heartbeat
  resources.
- Adds descriptions of the node.resource_class and
  node.network_interface fields that were introduced into the API but
  not into the documentation.
- Introduces a new script, api-ref/regenerate-samples.sh, which can be
  used with Ironic to automate the generation of most of the sample files
  used in the api-ref documententation.
- Corrects several errors in the sample JSON files that rendered errors
  when using them with curl for POST, PUT, or PATCH.
- Uses the aforementioned regenerate-samples.sh script to regenerate
  most of the JSON result samples, ensuring that they are all up to date
  with the v1.22 API microversion.
- Removes a few old/incorrect "Error Code" listings.
- Updates the index page to remove extraneous wording.

Change-Id: I764cbb43be15f05ba681de6ce1be1ae7c022173d
2016-08-21 11:43:30 -07:00
Vladyslav Drok
8ea1d8c7d6 Use a single uuid parameter in api-ref
Currently, there is a node_uuid parameter that describes specifically
a node UUID in response body. Let's use just uuid.

Change-Id: I43ffe017188c1f15a0c6d8007d4bd463e867b774
2016-05-30 21:36:42 +03:00
Devananda van der Veen
6e82b2118a Update the api-ref documentation for Root and Nodes
This updates the API root documentation, which was non-existent,
and the Node documentation significantly, replacing many of the samples
and adding more verbiage to each property.

It's not perfect, but this is vastly more correct than the current docs.

Change-Id: Iaeb1c80ac0655fc0d73fa495ed43e3c02b345495
2016-05-20 08:35:29 -07:00
Jim Rollenhagen
fa098f69e4 Migrate api-ref into our tree
Per this email[0], it's time to migrate our API docs into our tree.

This copies the sphinx extension from nova into our tree as well, which
will be later split into its own python module. At that time we can cut
over to the module and drop it from our tree.

The conf.py and the tox environment are also cribbed from nova.

[0] http://lists.openstack.org/pipermail/openstack-dev/2016-May/093765.html

Change-Id: I683cc4d6459d77c42951a06247b6f9ff8f8456bd
2016-05-03 21:39:42 +00:00