186 Commits

Author SHA1 Message Date
Zuul
5821444b86 Merge "add virtual media GET api" 2024-08-16 22:40:24 +00:00
cid
ba096e091a Follow up to the runbooks change (#922142)
Update api-ref, documentation to reflect the new
endpoints and the new way to set node provision state.

Related-Bug: #2027690
Change-Id: I2106691c08eb04d1001ccf97e6e08fc811356874
2024-08-13 11:52:36 +01:00
Himanshu Roy
c9cf2347ea add virtual media GET api
Closes-Bug: 2072307
Change-Id: I6020a7904639f5b6628bcabb5a861ecc397a8b05
Signed-off-by: Himanshu Roy <hroy@redhat.com>
2024-08-08 13:33:14 +05:30
cid
48f50248c2 Self-Service via Runbooks
Adds runbooks; the new API feature that makes it possible for
project members to self-serve maintenance tasks through curated step
lists associated with target nodes via traits.

In addition to basic CRUD support, runbook extends current API flow for
performing manual cleaning and servicing to support runbooks in lieu of
an explicit/arbitrary ``clean_steps`` and ``service_steps`` user-defined
lists.

Demo Video: https://youtu.be/00PJS4SXFYQ
Closes-Bug: #2027690

Change-Id: I43555ef72cb882adcada2ed875fda40eed0dd034
2024-08-02 05:44:29 +01:00
Jay Faulkner
1285417c7a Add Node Servicing to api-ref
Adding service verb and service_steps attributes to API reference.

Change-Id: I7078f3b9e415c30ab45291bef8c52a66ff7eab8c
2024-05-21 14:33:44 -07:00
cid
ee5315bcf3 Remove special treatment of .json for API objects
- /v1/nodes/test.json will now only mean node with the name
"test.json"
- /v1/nodes/test.json.json will mean a node with the name
"test.json.json" and,
- /v1/nodes/test will mean a node with the name "test".

So /v1/nodes/test.json will no longer default to "test" and
will HTTP 404 unless a node with the name "test" actually exists.

This also removes the backward compatibility with the
guess_content_type_from_ext feature

Closes-Bug: #1748224

Change-Id: If4b3a23e2a09065f5e063e66cff66b96af4d3393
2024-04-25 17:58:00 +01:00
cid
20543fc115 Follow-up: Use `microversion-parse` to parse version headers in API requests
Adds a release note, unit test, and documentation update as a follow-up to the
`microversion-parse change <https://review.opendev.org/c/openstack/ironic/+/913793>`_

Change-Id: I535af988125a511e4f54c9d81acd47c327413774
2024-04-18 19:53:34 +01:00
Zuul
df9e1ba80e Merge "[codespell] Fixing Spelling Mistakes" 2024-03-14 17:13:05 +00:00
Dmitry Tantsur
44939f1ab3
Trivial: include vmedia API in the reference
Change-Id: If5049e526e07d3f472358a61aa750fe4bad750b6
2024-02-29 10:50:55 +01:00
Sharpz7
949387bd80 [codespell] Fixing Spelling Mistakes
This is the first in a series of commits to add support for codespell. This is continuning the process completed in ironic-python-agent.

Future Commits will add a Tox Target, CI support and potentially a git-blame-ignore-revs file if their are lots of spelling mistakes that could clutter git blame.

Change-Id: Id328ff64c352e85b58181e9d9e35973a8706ab7a
2024-02-12 19:58:56 +00:00
Zuul
bd7b562bc0 Merge "trivial: fix api-ref generation script" 2024-02-07 20:58:28 +00:00
Julia Kreger
8b79a20d7b trivial: fix api-ref generation script
A long time ago, Mario filed a BZ. But nobody fixed it.

It was an easy fix, and I've done it here.

Closes-Bug: 1662326
Change-Id: I89d4fd9dd93950ff59419c913fe292de17b112e7
2024-02-02 16:38:41 -08:00
Boushra Bettir
ed946c4d55 Basic support for OVN VTEP switches
Adds basic support for passing OVN VTEP switch metadata to
neutron via Ironic's port.local_link_connection field.

Adds microversion 1.90 to Ironic's API, adding support for
new schema in port.local_link_connection

Bump version of the jsonschema library to ensure consistent
behavior with new schema configurations.

Add documentation warning: This has not been tested as no
Ironic developers have access to the hardware in question.

Closes-bug: #2034953
Co-Authored-By: Austin Cormier <acormier@juniper.net>
Co-Authored-By: Jay Faulkner <jay@jvf.cc>
Change-Id: Ie98dc4552ec2ea16db1e2d382aed54ce9dfef41b
2024-01-19 13:37:12 -08:00
Zuul
be242dc13b Merge "Generic API for attaching/detaching virtual media" 2023-11-30 14:02:38 +00:00
Dmitry Tantsur
0902912217 Generic API for attaching/detaching virtual media
This patch allows to attach or detach a generic image as
virtual media device after a node has been provisioned.

Closes-Bug: #2033288
Change-Id: I97b68047d769f6fb686c53e89084b5874e02b8c7
2023-11-23 09:55:09 +01:00
Steve Baker
43ccb17e15 [api-ref] Add firmware fields to driver API
Change-Id: Ic97833fc836afd643d296fd98cf204317f55dd51
2023-11-01 09:49:05 +13:00
Steve Baker
7639268e79 [api-ref] Complete port name and shard documentation
Change-Id: I92da15361f203d2f973959a06e5d92394b29c016
2023-11-01 09:44:26 +13:00
Iury Gregory Melo Ferreira
6c8a04e8f0 api-ref for nodes/{node_ident}/firmware
Change-Id: Ica87a7f4bc3a2cce679155200452d7b915d3f0f5
2023-09-29 14:51:10 -03:00
Zuul
6d9779bf6b Merge "Redfish: wait for secure boot state change if it's not immediate" 2023-09-21 13:29:47 +00:00
Iury Gregory Melo Ferreira
4eb0dbf7b5 RedfishFirmware Interface
Change-Id: I75b2433fade0c36522024c16608d61cd663b38d5
2023-09-20 13:09:38 -03:00
Dmitry Tantsur
6487b95813 Redfish: wait for secure boot state change if it's not immediate
We have discovered hardware that only applies boot mode / secure boot
changes during a reboot. Furthermore, the same hardware cannot update
both at the same time. To err on the safe side, reboot and wait for
the value to change if it's not changed immediately.

Co-Authored-By: Jacob Anders <janders@redhat.com>
Change-Id: I318940a76be531f453f0f5cf31a59cba16febf57
2023-09-12 18:30:36 +02:00
Jay Faulkner
d2c11df694 Fix typo in deploy_templates docs
There is no /v1/deploy_template; should be /v1/deploy_templates.

Change-Id: Iab0c7be8dd54f2b4d01b0655d615381610eb84d4
2023-07-31 14:35:18 -07:00
Iury Gregory Melo Ferreira
aecb581082 Firmware Interface
FirmwareInterface base
New Config options [default]
- enabled_firmware_interfaces
- default_firmware_interface

New FirmwareInterface base with update method
Implementations of FirmwareInterface
- FakeFirmware (fake)
- NoFirmware (no-firmware)

New entrypoint ironic.hardware.interfaces.firmware
* fake and no-firmware

Api Controllers
- Updated: driver/node/utils/versions
- Created: firmware

Unit tests
api-ref for Node Firmware

Fake and Noop implementation for FirmwareInterface

Change-Id: Ib3b9cb22099819f97d5eab1e3f1b670cb91cbb25
2023-07-11 07:39:15 -03:00
Zuul
d107252caa Merge "follow-up on DPU change api-ref" 2023-05-25 01:58:35 +00:00
Zuul
32532eeda5 Merge "DPU modeling - parent_node DB/Model/API" 2023-05-24 23:18:33 +00:00
Julia Kreger
aeb01a075e follow-up on DPU change api-ref
Change-Id: I22c8aae89d24d3ff330f10f1e0d43461fd6e52d4
2023-05-24 15:17:56 -07:00
Zuul
8638fe71bb Merge "Remove indicators list by component from api-ref" 2023-05-24 09:05:45 +00:00
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
65b8895e8a Update docs: Ironic uses launchpad now
Ironic switched to launchpad. Ensure our docs point contributors to the
correct location.

Change-Id: Ifa75c75741dd4a584bc2cb972eb4726c4c48d064
2023-05-17 15:42:41 -07:00
Harald Jensås
17d3b72b3d
Remove indicators list by component from api-ref
GET /v1/nodes/{node_ident}/management/indicators/{component}
as documented does not work. This calls ironic.api.
controllers.v1.node.IndicatorController.get_one and it will
raise InvalidParameterValue in ironic.api.controllers.v1.node.
IndicatorAtComponent unless `{indicator}@{component}` is given.

Change-Id: I5e7edb36b5f9dacf990215c05a84739d003a09b7
2023-05-09 15:29:25 +02:00
Harald Jensås
1b8c0be0b7
Fix api-ref v1-indicators
When doing a GET or PUT on an indicator the indicator
specified must use `indicator@component` syntax. For
example:

 indicators/led@system or indicators/led-0@chassis

Ref: ironic.api.controllers.v1.node.IndicatorAtComponent

Change-Id: I6908544b52be88cbddf537c954dd5e097a0d83e6
2023-05-09 00:25:55 +02:00
Dmitry Tantsur
3e21560bf7 Remove all references to the "cpus" property
Unused by Nova and unlike memory_mb/local_gb also by Ironic (actually,
our usage of local_gb is worth double-checking as well, but at the very
least it's referenced by inspection implementations).

Change-Id: Ie8b0d9f58f4dcd102c183c30ae7f5acf68a5e4c3
2023-03-28 11:53:26 +02:00
Dmitry Tantsur
c0460efd06 Add missing include for inventory API reference
Also fix up the title and make sure the linter checks API ref files.

Change-Id: I360fd4fab699e732ac03dc07faab33e18fe2bf13
2023-02-23 18:38:19 +01: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
28167f18f8 Allow port queries by shard list
Adds ability to query ports by shard.

Example usage: /v1/ports?shard=lol,cats

Change-Id: Icacef7f71414d30f492a6d144bcc89dff4891784
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
Jay Faulkner
7c89e7e4ec Fix API docs to document port filtering behavior
Ports cannot be filtered by node, node_uuid, or portgroup at the same
time as other potential filters. Explicitly document this.

Change-Id: Ia875a6543eb8871ce70028c055de2f1832c3ecdb
2023-01-30 14:13:39 -08:00
Jakub Jelinek
2e80ea9099 API for node inventory
Add api to access node inventory

Story: 2010275
Task: 46204
Change-Id: If50f665da5fbb16f7646f3d6195a6e14e7325b0a
2023-01-12 15:09:18 +00:00
Steve Baker
2b55444f37 Allocation candidates prefer matching name
This change finds a node with the same name as the allocation and
moves it to the beginning of the shuffled candidate list so that node
is the first allocation attempt.

It is common for node naming scheme to match the node's role (such as
compute-1, compute-2). Also this often matches the hostname
(allocation name) scheme. Without this change, this scenario will
generally result in swapped names (node compute-1 having hostname
compute-2, etc).

By preferring matching names this situation can be avoided in the
majority of cases, while not otherwise affecting the candidiate
allocation approach.

Change-Id: Ie990bfc209959d58852b9080778602eab5aa30af
2022-06-16 15:31:10 +12:00
LiZekun
0406fa7531 Remove unicode literal from code
All strings are considered as unicode literal string from Python 3.

This patch drops the explicit unicode literal (u'...')
appearances from the unicode strings.

Change-Id: I52ae9180344baf408e6e8a932e9d59dc45ece9de
2022-06-02 06:14:07 +00: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
Julia Kreger
8e8c1b087b There is no aim, we do deploy/manage baremetal.
Fix the root description header, since the Ironic project is
very far past the days of when we were aiming to provision baremetal.

Change-Id: I21f6058fe29b1495dbde63ec09a1227568dc3f08
2021-10-15 15:52:58 -07:00
Julia Kreger
fb9eae7412 API endpoints to get node history
Adds API for retrieving node history events
via a node. Includes pagination and limitation
of the response set.

Story: 2002980
Tas: 42961

Change-Id: I22a92fa6c30d721f6a5dd0670b2e0a9cf76ad7b1
2021-09-15 10:54:11 -07:00
Zuul
20503d94e5 Merge "Add support for fields in drivers API" 2021-09-15 13:33:46 +00:00
Tadeas Kot
ee06761b0e Add support for fields in drivers API
This commit add support for the fields query parameter to the GET /v1/drivers?fields=... and GET /v1/drivers/<driver_name>?fields=....

Story: 1674775
Task: 10581
Change-Id: I2ca4eb490e320e736a93851eed526ec862be901e
2021-08-27 11:57:41 +02:00
Cenne
5b545086ac Minor formatting and doc changes to change boot mode feature commit.
Story: 2008567
Task: 41709
depends-on: https://review.opendev.org/c/openstack/ironic/+/800084
Change-Id: I44e41dc3d8abcb99a2248d7b9c7ac5e9d786bb98
2021-08-24 14:29:53 +02:00
Cenne
bc95c92f7c Add api endpoints for changing boot_mode and secure_boot state
Done:
  - Node API endpoints expose
  - RPC methods
  - Conductor Manager methods
  - Conductor utils new methods
  - RBAC new policies
  - Node API tests
  - Manager Tests (+ some testing for utils methods)
  - RBAC tests
  - Docs (api-ref)
  - REST API version history
  - Releasenotes

Story: 2008567
Task: 41709

Change-Id: I2d72389edf546b99c536c6b130ca85ababf80591
2021-08-23 19:38:58 +02:00
Zuul
33842cda0d Merge "Add a section to redfish doc for BIOS registry fields" 2021-07-19 10:17:54 +00:00
Bob Fournier
58ca01c22a Add a section to redfish doc for BIOS registry fields
Move the descriptions of the BIOS registry fields in the API to
a new section in the Redfish documentation.

Change-Id: Ifedb4526113bb84ccc598e13f5767b71a60f5532
2021-07-13 21:56:57 -04:00
Cenne
46ff51487a Add boot_mode and secure_boot to node object and expose in api
* add fields to Node object
  * expose them at endpoint `/v1/nodes/{node_ident}/states`
  * update states on powersync / entering managed state.
  * tests
  * update api endpoint info in api-ref

Story: 2008567
Task: 41709

Change-Id: Iddd1421a6fa37d69da56658a2fefa5bc8cfd15e4
2021-07-08 15:04:15 +02:00