129 Commits

Author SHA1 Message Date
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
Tzu-Mainn Chen
3fbb560af1 Add owner to allocations and create relevant policies
Add an owner to allocations. Depending on policy, a non-admin
can then create an allocation and have the owner set to their
project. Allocation processing then respects the owner.

Change-Id: I2965a4a601b9fa2c0212097da37b104a3e5514df
Story: #2006506
Task: #37540
2019-12-10 19:00:33 +00:00
Steve Baker
7ebad2e344 Allow vendor_data to be included in a configdrive dict
configdrive can contain a vendor_data2.json file containing key/value
pairs injected by nova's vendordata mechanism[1].

This change lets Ironic accept a vendor_data key when configdrive is
provided as json, allowing parity with nova.

This change requires an openstacksdk release 0.37.0

[1] https://www.madebymikal.com/nova-vendordata-deployment-an-excessively-detailed-guide/

Change-Id: Id990b970619a113c5d5ead47fb550870d91b5e04
Task: 36756
Story: 2006597
Blueprint: nova-less-deploy
2019-10-31 08:55:39 +13:00
Zuul
5e4edeab97 Merge "Add api-ref for allocation update" 2019-06-07 14:11:35 +00:00
Madhuri Kumari
2d4380e323 Add api-ref for allocation update
Change-Id: I3a8cfa3d959c6906968bca7006583f45446758e5
Story: 2005126
Task: 29796
2019-06-06 09:32:39 +05:30
Dmitry Tantsur
8f6bf4f9dd Allocation API: backfilling allocations
This feature addresses the case of moving the already deployed nodes
under the allocation API.

Change-Id: I29d0bd3663e0d1b27727a700c0f0e0fb6ceac1d9
Story: #2005014
Task: #29491
2019-05-21 20:09:21 +02:00
Mark Goddard
9672cb73d2 Deploy Templates: API reference
Change-Id: I14716e6023dd09096e17e60c7d02230ecb3e7150
Story: 1722275
Task: 28680
2019-03-12 15:43:12 +00:00
Dmitry Tantsur
3e1e0c9d5e Allow building configdrive from JSON in the API
Extend the API with the ability to build config drives from meta_data,
network_data and user_data, where meta_data and network_data are JSON
objects, and user_data is either a JSON object, a JSON array or
raw contents as a string.

This change uses openstacksdk (which is already an indirect dependency)
for building config drives.

Change-Id: Ie1f399a4cb6d4fe5afec79341d3bccc0f81204b2
Story: #2005083
Task: #29663
2019-03-05 19:14:56 +01:00
Zuul
84f6e5fb84 Merge "Adding bios_interface reference to api docs" 2019-03-01 11:08:48 +00:00
Dmitry Tantsur
08270cebab Allocation API: fix minor issues in the API reference
Follow-up to commit acc4c402de42be0b1fb179d13dcf86a4ca384206.

Change-Id: Ie519caf791b6444afdc5a8665b1fbd719f916388
Story: #2004341
2019-02-26 11:13:07 +01:00
Dmitry Tantsur
acc4c402de Allocation API: reference documentation
Change-Id: I48f20f0b96931a17c477b9687b0ee963cb7b8879
Story: #2004341
Task: #29574
2019-02-26 10:16:25 +01:00
Riccardo Pittau
e0639875f4 Adding bios_interface reference to api docs
As per title, this patch adds default_boot_interface and
enabled_boot_interfaces references, definitions and examples
to the api-ref documentation.

Change-Id: I35d4829c32cc48d5734c269c0a83ad9b4fbdd660
2019-02-25 17:09:11 +01:00
Zuul
352e37a36d Merge "Expose is_smartnic in port API" 2019-02-12 23:20:49 +00: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
Hamdy Khader
6325b6c13c Expose is_smartnic in port API
Changes are made to support ironic handling is_smarting port attribute
that was added in this change Ic2ffbd6f1035907ea5a18bda6d2b21e617194195

This change expose is_smartnic port field in REST API, updated API
reference to include is_smartnic field and relevent documentations.

API version updated to 1.53.

Story: #2003346
Change-Id: I89ce54a0c034f2a5f82ff961ab06cfcc6d853bd4
2019-02-10 12:10:00 +02: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
Zuul
87b25d5447 Merge "Add "owner" information field" 2018-12-11 18:56:47 +00:00
Zuul
be8d81becd Merge "Introduce configuration option [ipmi]ipmi_disable_timeout" 2018-12-11 06:27:51 +00: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
Kaifeng Wang
d379357cad Introduce configuration option [ipmi]ipmi_disable_timeout
Some type of BMCs don't support an IPMI option that disable the
behavior of boot device timeout, which makes them never get booted
from PXE.

This patch extends the fix [1] by adding a configuration option,
which provides the default ipmi behavior.

[1] https://review.openstack.org/#/c/616053

Additionally revising the variable/setting names based upon review
feedback and discussion that took place during the 20181210 weekly
ironic team meeting.

Change-Id: Ie049bbaf45aeab54c1272d1d561c5a6ca00dc34a
Story: 2002977
Task: 22985
2018-12-10 14:04:02 -08:00
Matt Riedemann
987d330785 api-ref: update node.resource_class description
The future of scheduling with custom resource classes is now!
Actually it has been for a couple of years. This drops the
"future" part of the parameter description and links to the
docs on configuring nova flavors with custom resource classes
for scheduling with the placement service.

Change-Id: Id904acdf305096738604eacb225136f1f9c03338
2018-12-07 16:50:42 -05:00
Zuul
cb543d7705 Merge "Add ipmi_disable_timeout to avoid problematic IPMI command" 2018-12-04 08:08:36 +00:00
Zuul
c5414620c5 Merge "Fix Chinese quotes" 2018-11-28 13:43:56 +00:00
zhangdebo
2344bb5ea5 Fix Chinese quotes
Change-Id: I678a7aff4685b8d807570a6bc69bebfaa2960c4e
2018-11-28 19:19:23 +08:00
Tony Breeds
eb29465bd5 Add ipmi_disable_timeout to avoid problematic IPMI command
The IPMI driver unconditionally instructed the BMC not automatically
clear boot flag valid bit if Chassis Control command not received within
60-second timeout (countdown restarts when a Chassis Control command is
received).  Some BMCs do not support setting this.  Sending the command
aborts the node boot.

A new driver option ``ipmi_disable_timeout`` is added to bypass
sending this command.

Change-Id: I1dda3cf3e4b7b888ed9d8931c8ede3a918dd01f4
Story: 2004266
2018-11-28 01:29:04 +00: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
Yolanda Robla
95a449357c Add documentation for BIOS settings
Update api-ref documentation, to add the BIOS
settings.

Change-Id: Ic592b5fa39f0d19d5676906ecd5c8fcbebf8e25f
2018-07-27 13:23:37 +02: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
Dongcan Ye
e2899de09d Fix list node vifs api error
The node_ident param should in Request, this patch fix it.

Change-Id: Id70533ff75e0f7b7930725fd74428c390321b98d
2018-07-03 11:23:25 +00:00
Zuul
231cef47fb Merge "Modify the Ironic api-ref's parameters in parameters.yaml" 2018-06-22 01:39:06 +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
shuangyang.qian
d0dca903df Modify the Ironic api-ref's parameters in parameters.yaml
Separate parameter identifiers in case when a parameter
is required in the request or response.
This patch adjusts the relevant *.nic file to fix the problem.

Change-Id: Ie2c8cae2280fc1e92a5e6f3fef4f2783a12a2c3f
Story: #1651775
Task: #10160
2018-06-14 10:45:48 +08: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
John L. Villalovos
6b91ba21df Resolve pep8 E402 errors and no longer ignore E402
Fix the pep8 E402 (Module level import not at top of file) errors.

For the Alembic files move the definitions of 'revision' and
'down_revision' below the imports. This is now done in Alembic [1]

For other files fix as needed by moving the imports or lines before
the imports.

In a few cases add a "# noqa E402" to whitelist the issue.

[1] dc2aae0374

Change-Id: I48c96d5da0cb747b3ca3fceea9b4ffa85a9ebe22
2018-04-10 17:34:04 -07:00