10912 Commits

Author SHA1 Message Date
Dmitry Tantsur
8b83e9ec62 Revert "devstack: build DIB images with CentOS Stream by default"
This reverts commit 05f2c8b79f0d6b7e9200bbc531ff621d2029da2e.

It is being reverted as the centos stream images
contain extra, un-necessary libraries and packages
installed which swells the ramdisk size up substantially
and is causing failures in CI as the compressed image size
expanded by about 100MB, and uncompressed the stream images
are 1.1GB.

Change-Id: Icc3a18ed12d309fd9a00f02d5e703dfeda50e86b
2020-12-15 14:20:13 +00:00
Dmitry Tantsur
05f2c8b79f devstack: build DIB images with CentOS Stream by default
Change-Id: I50edd6b2740a26d00be19abc58c3ff770417fb68
2020-12-11 12:02:45 +01:00
Dmitry Tantsur
8a2c715a0a Add TLS troubleshooting guide entry
Change-Id: Ied66562bb2475513ddb8c712dedc5f50fc6cad4f
2020-12-10 17:58:18 +01:00
Zuul
42bf964c8c Merge "Test patching booleans with string values" 2020-12-06 23:58:53 +00:00
Zuul
2c3b2ffd48 Merge "Improve object_to_dict arguments" 2020-12-06 23:58:43 +00:00
Zuul
e49a61baeb Merge "Remove compatibility with conductors that do not support groups" 2020-12-04 00:08:44 +00:00
Zuul
56595161fd Merge "JSON conversion followup change" 2020-12-02 23:38:10 +00:00
Zuul
e425b6d663 Merge "CI: add a non-voting bifrost-vmedia-uefi job" 2020-12-02 09:01:44 +00:00
Riccardo Pittau
475af371dd Use openstack-tox for ironic-tox-unit-with-driver-libs
All the tox jobs are based on openstack-tox, we should convert
ironic-tox-unit-with-driver-libs too.

Change-Id: I20836d586edccfb8cd8fed1f3a89f1497ff96943
2020-11-27 12:20:53 +01:00
Steve Baker
32ab90b3b9 Test patching booleans with string values
The baremetal client encodes boolean patch values as strings
("True", "False") but there is no unit test coverage which confirms
that this actually works. This change adds that test coverage.

Change-Id: I9e428ad973e88d3e1ef1e04e49a7b00a4e2d43fd
2020-11-27 10:52:14 +13:00
Steve Baker
a3644ebd63 Improve object_to_dict arguments
As a follow-up to the review feedback in[1], type specific fields
arguments are removed and the type is inferred from the versioned
object fields.

Story: 1651346
Task: 10551
[1] https://review.opendev.org/751160

Change-Id: I89a65214ab7d550d0b4a327dd033c27399ae13bf
2020-11-27 10:52:14 +13:00
Dmitry Tantsur
9ea4142982 CI: add a non-voting bifrost-vmedia-uefi job
It provides useful coverage of e.g. fast-track with virtual media.

Change-Id: Ie09f4daced5ffd9d953b9add4d5484bbdd1ba1ac
2020-11-26 12:11:48 +01:00
Steve Baker
e41893c9d0 JSON conversion followup change
This change addresses nit-level review comments from this task.

Story: 1651346
Task: 10551
Change-Id: I01608004ce90facadb73e252203900a1e62cbea1
2020-11-26 11:05:48 +13:00
Zuul
a08da8551a Merge "Add vendor_passthru method for virtual media" 2020-11-25 17:02:34 +00:00
Zuul
4cc375a747 Merge "Allow disabling automated_clean per node" 2020-11-25 12:42:49 +00:00
Zuul
8d6323e745 Merge "Make standalone jobs voting again" 2020-11-25 11:41:35 +00:00
Zuul
0ac45a8d9d Merge "Always retry locking when performing task handoff" 2020-11-25 09:16:12 +00:00
Feruzjon Muyassarov
ee6119e774 Allow disabling automated_clean per node
This allows users to disable automated cleaning on
Node level.

Story: #2008113
Task: #40829
Change-Id: If583bae4108b9bfa99cc460509af84696c7003c5
2020-11-24 17:23:13 +00:00
Jason Anderson
bfc2ad56d5
Always retry locking when performing task handoff
There are some Ironic execution workflows where there is not an easy way
to retry, such as when attempting to hand off the processing of an async
task to a conductor. Task handoff can require releasing a lock on the
node, so the next entity processing the task can acquire the lock
itself. However, this is vulnerable to race conditions, as there is no
uniform retry mechanism built in to such handoffs. Consider the
continue_node_deploy/clean logic, which does this:

  method = 'continue_node_%s' % operation
  # Need to release the lock to let the conductor take it
  task.release_resources()
  getattr(rpc, method)(task.context, uuid, topic=topic

If another process obtains a lock between the releasing of resources and
the acquiring of the lock during the continue_node_* operation, and
holds the lock longer than the max attempt * interval window (which
defaults to 3 seconds), then the handoff will never complete. Beyond
that, because there is no proper queue for processes waiting on the
lock, there is no fairness, so it's also possible that instead of one
long lock being held, the lock is obtained and held for a short window
several times by other competing processes.

This manifests as nodes occasionally getting stuck in the "DEPLOYING"
state during a deploy. For example, a user may attempt to open or access
the serial console before the deploy is complete--the serial console
process obtains a lock and starves the conductor of the lock, so the
conductor cannot finish the deploy. It's also possible a long heartbeat
or badly-timed sequence of heartbeats could do the same.

To fix this, this commit introduces the concept of a "patient" lock,
which will retry indefinitely until it doesn't encounter the NodeLocked
exception. This overrides any retry behavior.

  .. note::
     There may be other cases where such a lock is desired.

Story: #2008323
Change-Id: I9937fab18a50111ec56a3fd023cdb9d510a1e990
2020-11-24 09:41:38 -06:00
Bob Fournier
98958cd0a4 Add vendor_passthru method for virtual media
Add a vendor_passthru method to eject_vmedia for Redfish and idrac.

Story: 2008363
Task: 41271

Change-Id: Ib5ae16bacfd79f479a9aa8fbf69edc5cfdf73ce3
2020-11-24 09:25:44 -05:00
Riccardo Pittau
89af9aef80 Make standalone jobs voting again
Also remove 2 non-voting jobs from gate.

Change-Id: I40574cad53de8b9f89e1ae0a033b75de39140769
2020-11-23 14:51:25 +01:00
Zuul
388a42731e Merge "Remove from_dict function from context" 2020-11-23 13:44:29 +00:00
Zuul
585f90212a Merge "Expunge the internal version of WSME" 2020-11-20 11:26:55 +00:00
Zuul
3db362e5aa Merge "Fix disk label to account for UEFI" 2020-11-19 23:34:27 +00:00
Steve Baker
f408d63adc Expunge the internal version of WSME
This change removes unused code and concludes the conversion of the
REST API from WSME based to plain JSON.

Change-Id: Ib04c759f86d9758b67a75648b5971f5a80c77ecb
Story: 1651346
Task: 10551
2020-11-19 10:57:11 +13:00
Steve Baker
000bc72cc2 Convert volume/targets endpoint to plain JSON
Change-Id: I4d7f13ffb1dd438d9136238fa75a3efaac4e8b7e
Story: 1651346
Task: 10551
2020-11-19 10:57:11 +13:00
Steve Baker
2099c47e71 Convert volume/connectors endpoint to plain JSON
Change-Id: I6c0a49cafa94fe6d2dee4069642d352d5391ec92
Story: 1651346
Task: 10551
2020-11-19 10:57:11 +13:00
Steve Baker
0bab4f1762 Don't allow patching port internal_info
Patching the port internal_info was allowed in error in the just
landed JSON conversion change[1]. This is now fixed, and the comment
has been updated to explain why internal_info needs to be part of
patch schema.

[1] https://review.opendev.org/750120

Change-Id: Ieab085cfd9731e180f741b17a27ea540dabbf62e
2020-11-19 10:57:11 +13:00
Zuul
c2aecd5f66 Merge "[doc][trivial] Fix spelling error" 2020-11-18 19:24:28 +00:00
Zuul
7954b8103e Merge "Convert volume endpoint to plain JSON" 2020-11-18 19:24:21 +00:00
Zuul
c13d1cf1c7 Merge "Convert ramdisk endpoint to plain JSON" 2020-11-18 19:24:14 +00:00
Zuul
6b5222c466 Merge "Convert portgroups endpoint to plain JSON" 2020-11-18 19:24:07 +00:00
Zuul
2b96ef429d Merge "Convert ports endpoint to plain JSON" 2020-11-18 18:40:39 +00:00
Arne Wiebalck
d4f8d4d940 [doc][trivial] Fix spelling error
Change-Id: Ief679596e49d8686fc778e342180d221255b15cf
2020-11-18 18:26:22 +01:00
Zuul
b95478937d Merge "Convert nodes endpoint to plain JSON" 2020-11-18 16:19:04 +00:00
Zuul
0c610c03e8 Merge "Convert event endpoint to plain JSON" 2020-11-18 15:45:26 +00:00
Zuul
0c0ac9b1c0 Merge "Convert drivers endpoint to plain JSON" 2020-11-18 12:12:59 +00:00
Zuul
b926e831c1 Merge "Convert deploy_templates endpoint to plain JSON" 2020-11-18 12:12:52 +00:00
Zuul
ec74f1bcdb Merge "Convert conductors endpoint to plain JSON" 2020-11-18 12:12:46 +00:00
Zuul
78a749439a Merge "Convert chassis endpoint to plain JSON" 2020-11-18 11:45:15 +00:00
Zuul
b714f646a5 Merge "Convert bios endpoint to plain JSON" 2020-11-18 07:10:34 +00:00
Zuul
5d52f0f21a Merge "Convert allocations endpoint to plain JSON" 2020-11-18 07:10:27 +00:00
Zuul
569db1063b Merge "Utility functions for REST API JSON handling" 2020-11-18 07:10:20 +00:00
Zuul
425853995d Merge "Duplicate trait validation with jsonschema" 2020-11-18 07:10:14 +00:00
Zuul
b783db7004 Merge "Add expose body decorator, status_code argument" 2020-11-18 06:52:46 +00:00
Zuul
0544291e2f Merge "New argument validate decorator" 2020-11-18 03:23:21 +00:00
Julia Kreger
ed4abbd519 Fix disk label to account for UEFI
Previously disk labels would not be populated if not explicitly
set by an API user, which lead to a dangerous possible case,
which sometimes could work, but was ultimately wrong to
setup a UEFI booting machine with a BIOS MBR partition table.

Not all systems support this, but UEFI systems are supposed to
support GPT partition tables.

We now fallback if no explicit override is set and assume GPT
if the machine is set to UEFI mode.

Change-Id: I001d8c6ee3b1d6c466c71ea5179bdbca9bdd692d
2020-11-18 03:10:27 +00:00
Zuul
385aeb0143 Merge "Limit the default value of [api]api_workers to 4" 2020-11-18 03:06:29 +00:00
Zuul
a8b67f4df0 Merge "Minor follow-up doc change" 2020-11-18 00:21:00 +00:00
Zuul
169e45809b Merge "Update .rst files" 2020-11-18 00:20:52 +00:00