165 Commits

Author SHA1 Message Date
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
Iury Gregory Melo Ferreira
26cf25d98a Follow-up to Include bios registry fields in bios API
This commit is a follow-up to Ie86ec57e428e2bb2efd099a839105e51a94824ab

Story: #2008571
Task: #42546
Change-Id: I6fa4658180772ff9c4ff00f95b28cf8a1b5d4223
2021-06-01 11:22:27 +02:00
Bob Fournier
e15440370c Include bios registry fields in bios API
Provide the fields in the BIOS setting API -
``/v1/nodes/{node}/bios/{setting}``, and in the BIOS setting list API
when details are requested - ``/v1/nodes/<node>/bios?detail=True``.

Story: #2008571
Task: #42483
Change-Id: Ie86ec57e428e2bb2efd099a839105e51a94824ab
2021-05-27 12:15:20 -04:00
Bob Fournier
9a09f1bdc9 Add missing bios_interface to api-ref for validate API
Fixing another case of bios interface missing from the api-ref
documentation, this one for the validate API.

Change-Id: I8ae3212f04a8d150af8adde5f5f87e5a5451da14
2021-05-21 09:16:40 -04: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
Dmitry Tantsur
929907d684 Bye-bye iSCSI deploy, you served us well
The iSCSI deploy was very easy to start with, but it has since become
apparently that it suffers from scalability and maintenance issues.
It was deprecated in the Victoria cycle and can now be removed.

Hide the guide to upgrade to hardware types since it's very outdated.

I had to remove the iBMC diagram since my SVG-fu is not enough to fix it.

Change-Id: I2cd6bf7b27fe0be2c08104b0cc37654b506b2e62
2021-05-04 14:28:25 +02:00
Dmitry Tantsur
30a85bd0ce API to force manual cleaning without booting IPA
Adds a new argument disable_ramdisk to the manual cleaning API.
Only steps that are marked with requires_ramdisk=False can be
run in this mode. Cleaning prepare/tear down is not done.

Some steps (like redfish BIOS) currently require IPA to detect
a successful reboot. They are not marked with requires_ramdisk
just yet.

Change-Id: Icacac871603bd48536188813647bc669c574de2a
Story: #2008491
Task: #41540
2021-03-16 16:08:46 +01:00
Aija Jauntēva
3138acc836 Add 'deploy steps' parameter for provisioning API
Story: 2008043
Task: 40705
Change-Id: I3dc2d42b3edd2a9530595e752895e9d113f76ea8
2021-02-03 11:47:53 -05: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
Ruby Loo
3334b71773 Add 'agent_token' to heartbeat request
Updates the API ref to include the 'agent_token' value in a
heartbeat request (from IPA). New since v1.62
(9341ca4ef7/ironic/api/controllers/v1/versions.py (L102)).

Change-Id: I5eea9704c1bf62561a5505227735159dad7a8e49
2020-09-10 14:19:21 +00:00
Iury Gregory Melo Ferreira
42f28a4d32 Add api-ref for indicators API
Change-Id: Ie40f585b26efdd70b88f2e642698eb9e988e3d97
Story: 2007745
Task: 39923
2020-06-19 09:05:08 +02:00
Zuul
c2b2e7521a Merge "Fix pygments style" 2020-05-21 20:48:27 +00:00
gugug
271ecdd119 Fix pygments style
New theme of docs respects pygments_style.

more info: http://lists.openstack.org/pipermail/openstack-discuss/2020-May/014971.html

Change-Id: I5d87b0e4da19a51c47f02e5a88957ce1fea4c21d
2020-05-21 01:17:09 +00:00
Zuul
ff8a0c71b0 Merge "Add network_data field to ironic node object" 2020-05-19 19:10:30 +00:00
Andreas Jaeger
a2efd0b82a Switch to newer openstackdocstheme and reno versions
Switch to openstackdocstheme 2.2.0 and reno 3.1.0 versions. Using
these versions will allow especially:
* Linking from HTML to PDF document
* parallelizing building of documents

Update Sphinx version as well.

openstackdocstheme renames some variables, so follow the renames
before the next release removes them. A couple of variables are also
not needed anymore, remove them.

Set openstackdocs_pdf_link to link to PDF file.
Set openstackdocs_auto_name to use 'project' as name.

Depends-On: https://review.opendev.org/728938
Change-Id: I76a21521eeb432c3f4089048a4635719ba6d785c
2020-05-18 19:34:17 +02: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
Andreas Jaeger
5cebea361b Cleanup docs building
* Remove doc/source/install/conf.py, it's unused.
* Remove settings that are provided by openstackdocstheme from conf.py
  files. Switch to newer openstackdocstheme for this.
* Remove unused deps from tox.ini: releasenotes and api-refonly need
  doc/requirements but not requirements.

Change-Id: Iab5ad6cde40c3342770c0112155fe5e1d262d1e8
2020-02-29 15:12:04 +01: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
Zane Bitter
6da62945bc Fix API docs for target_power_state response
The API docs stated that the values of target_power_state in a
Node State Summary are the same as the valid input values in a Change
Node Power State request (i.e. they include "rebooting", "soft
rebooting", and "soft power off"). However, in actuality these are all
compressed to either "power on" or "power off" by the
_calculate_target_state() function.

Change-Id: I8c8b8c707102275a48233fc853acfb65f556946e
Story: #2007089
Task: 38115
2020-01-14 17:00:54 -05:00
Dmitry Tantsur
7bd643dee6 Add a missing versionadded for configdrive[vendor_data]
Change-Id: Ibfbb2f8f7a5f33e678a472a70b4b46aa1d7704e4
2020-01-07 17:20:38 +01:00