Commit Graph

3224 Commits

Author SHA1 Message Date
Zuul 565d18f0d5 Merge "Fix Reopen Web Console Duplicate Sol Session" 2024-03-28 21:41:33 +00:00
Zuul 0d6bbb3620 Merge "Drop fallback to unmanaged inspection for virtual media and UEFI boot" 2024-03-27 22:19:29 +00:00
Zuul 2cb8eafc6a Merge "Fix new codespell issues; tweak config" 2024-03-27 22:13:42 +00:00
Dmitry Tantsur 2f399a1fb7
Drop fallback to unmanaged inspection for virtual media and UEFI boot
It is not expected that nodes configured this way start PXE-booting.

Change-Id: I9bc5ab73bb54e0612fb6025f10c4d41a5b8842cb
2024-03-18 10:26:47 +01:00
Zuul bf1aadf2bc Merge "Allow usage of virtual media via System" 2024-03-14 22:14:59 +00:00
Zuul 16b0ea709a Merge "Implement generic redfish vmedia attach detach" 2024-03-14 21:39:50 +00:00
Jay Faulkner 45502d7beb Fix new codespell issues; tweak config
Configuration was fine for the gate, but I've updated it to ignore
directories and files that can be found in a well-used development
checkout.

Fixed any new spelling issues.

Change-Id: Icef5addba938b27911c26e841a37a2e9ba3fbe43
2024-03-14 12:57:26 -07:00
Zuul df9e1ba80e Merge "[codespell] Fixing Spelling Mistakes" 2024-03-14 17:13:05 +00:00
Winicius Silva 6d046ad7b4 Allow usage of virtual media via System
DMTF now changes their Virtual Media URI to support Systems. Redfish driver now
support this resource to boot, so it is needed that Ironic have a way to use it.

Closes-Bug: #2039458
Change-Id: I66e8edb847e93f96374072525222f05e7561fb07
2024-03-13 22:02:08 -03:00
Riccardo Pittau 237510ae2c Implement generic redfish vmedia attach detach
This patch adds implementation of attach/detach generic virtual
media device to the Redfish driver.
Also the redfish vendor eject vmedia action is now deprecated
and it will be removed during the next cycle in favor of the
generic API.

Change-Id: I9daff59128f537a3da2e882adf5c97be9c4ab8d9
2024-03-13 12:09:15 +01:00
Zuul 2f3448a421 Merge "Special case lenovo UEFI boot setup" 2024-03-12 22:28:26 +00:00
Zuul c139b22e8a Merge "Detect ilo6 and redirect to redfish" 2024-03-08 02:25:13 +00:00
likui e5f7e052ac Fix Reopen Web Console Duplicate Sol Session
Reopen web console may occasionally result in duplicated
sol session. get_console action open
one console process while another sol session remains.

This patch adds "sol deactivate" action before get
console. Make sure the current connection always a success.

Change-Id: Ie5d9c94a3e9e3561b6aa1a52462d6739662d4eb0
2024-03-07 15:41:32 -08:00
Dmitry Tantsur 803d08cb88
Don't import sushy conditionally, it's a requirement
Change-Id: I5fcedfc89ac18025c178e8a5f6750802005d1507
2024-02-28 16:56:17 +01:00
Julia Kreger 50ced3a3fa neutron: do not error if no cleaning/provisioning on launch
In the early days of the neutron network interface, we had a hard
launch failure added to prevent ironic.conf from having a neutron
network configuration which was not valid when the neutron network
interface was in use.

But as time has moved on, these settings became node-settable,
and ironic configuration largely became mutable as well, so they
can always be added after the process has been launched.

But we kept the error being returned. Which doesn't make sense
now that it can always be back-filled into a working state
or just entirely be "user supplied" via the API by an appropriate
user.

Closes-Bug: 2054728
Change-Id: I33e76929ca9bf7869b3b4ef4d6501e692cf0a922
2024-02-22 13:14:13 -08:00
Julia Kreger 4fb1b813f4 Special case lenovo UEFI boot setup
Special cases boot/uefi record setup to focus on UEFI
nvram updates instead of attempting nvram updates *and*
setting the boot device to disk.

Closes-Bug: 2053064
Change-Id: Ic6584479a47146577052d17fa3f697eef64ac73c
2024-02-17 15:54:25 +00:00
Julia Kreger e8cb96efc5 Detect ilo6 and redirect to redfish
We got a report of ilo6 BMCs not working with the ilo hardware type,
and while information is limited, it seems reasonable to at least log
some information on this subject and start discussion of what should
we do.

Hence the creation of this patch.

See: https://meetings.opendev.org/irclogs/%23openstack-ironic/%23openstack-ironic.2023-07-05.log.html#t2023-07-05T11:06:08
Change-Id: I2d81ef736aca44f455f8233c32c0c8d12267d57f
2024-02-13 23:05:26 +00: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 b0e443f77f Merge "Add HTTP versions of network boot interfaces" 2024-02-12 18:52:24 +00:00
Julia Kreger e19fd1d050 Add HTTP versions of network boot interfaces
This change adds two network boot interfaces, ``http`` and
``http-ipxe``. These interfaces are based upon the underlying PXE
boot interface code in ironic, and where this differs is it signals
to Ironic that we must do the boot loader needful in terms of telling
DHCP to send a URL instead of a filename and IP address for PXE
as a starting point.

The naming of the interfaces focuses more on the transport mechanism
and then specific style. Very similar to existing ``pxe`` and ``ipxe``
interface modeling, except in the ``ipxe`` case, it is more a specific
loader and mechanism to be utilized.

Related-Bug: #2032380
Change-Id: Ie7ace88b62b9179f640ef2a732dd228e12bd320d
2024-02-09 13:13:19 -08:00
Dmitry Tantsur 307c4572a6
Add node auto-discovery support for in-band inspection
This is a MVP of auto-discovery with no extra customization and no new
auto_discovered field from the spec.

Change-Id: I1528096aa08da6af4ac3c45b71d00e86947ed556
2024-02-02 09:24:52 +01:00
Zuul 54a82d2b6d Merge "RedfishFirmwareInterface - Unit Tests & More logs" 2024-01-25 22:25:01 +00:00
Iury Gregory Melo Ferreira 32c9c74459 RedfishFirmwareInterface - Unit Tests & More logs
I totally missed Julia's comment in the review, this commit
adds unit tests for the RedfishFirmwareInterface and also more
logs when a specific component is missing.

Change-Id: Ice2c946726103d9957518c2d30ddad3310ee145d
2024-01-24 18:39:42 -03:00
Zuul cd17f5e61a Merge "Drop rootwrap support" 2024-01-23 20:14:36 +00:00
Zuul 805bb47f26 Merge "Account for nodes with the same BMC hostname in inspection lookup" 2024-01-23 17:59:14 +00:00
Zuul 3d5ef6a7e9 Merge "Flip require_managed_boot to True for the new agent inspection" 2024-01-23 16:26:46 +00:00
Dmitry Tantsur 2e8db13e09
Flip require_managed_boot to True for the new agent inspection
This value is a way for an operator to signal Ironic whether they have
an infrastructure for unmanaged inspection. Previously, unmanaged
inspection was considered to be always supported. With this change,
the inspector-based inspection works as previously, while the new
built-in inspection defaults to only managed inspection.

Change-Id: I4a9125881dc5822656efde1346807c3dd749973e
2024-01-22 19:54:20 +01:00
Dmitry Tantsur bf673c2761
Account for nodes with the same BMC hostname in inspection lookup
Currently, the code expects a given hostname to be used by one one node.
This is not necessarily the case for Redfish where several Systems can
co-exist under the same BMC. Use MAC addresses to distinguish them.

Add more inline comments to explain the process.

Change-Id: Ifc5a18bffc7cbcdd8bbbd660aba61fa11403e7e8
2024-01-22 18:26:04 +01:00
Zuul 88fcf8aa14 Merge "Redfish UefiHttp boot support" 2024-01-15 09:52:12 +00:00
Dmitry Tantsur be09717be2
Drop rootwrap support
After removing the iSCSI deploy and changing ISO parsing code to use
a corresponding library, Ironic no longer executes any commands as root
and it should stay this way.

Change-Id: I47d2bab9b94345fbcf89a2a80028853050a041ea
2024-01-08 18:02:27 +01:00
Julia Kreger 041a7d7064 Redfish UefiHttp boot support
Adds a redfish-https boot interface, based upon the
redfish-virtual-media boot interface, however substantially copies
some base methods because of simplification offered to use by
putting "attach/detach" logic into how the sushy library handles
the application and reset of a URL as a boot setting.

This feature also increases the requirement for the Sushy library
to version 4.7.0 which includes support to set the HttpBootUri
field in the BMC and automatically unset it as well.

Closes-Bug: #2032380
Change-Id: I991611cd67cb91aea21fc30bbae7cd24409dbbfa
2024-01-04 07:12:20 -08:00
Riccardo Pittau 4d3101940a Handle LLDP parse Unicode error
Closes-Bug: #2044793
Change-Id: I48c18d1648d446d426515456a4006947b79a9ef3
2024-01-03 14:36:23 +01:00
Zuul 776e9444f0 Merge "Fixes Raid creation in iLO6 and other BMC with latest schema" 2023-12-19 10:33:55 +00:00
Paresh Sao 6956b0619e Fixes Raid creation in iLO6 and other BMC with latest schema
This commit removes 'VolumeType' which param has long been
deprecated in DMTF Redfish schema, also removes 'Encrypted'
param as per discussion, and places 'Drives' inside 'Links'
as per the new DMTF schema.

Closes-Bug: 2045645

Change-Id: I91d2decab19e352ca3560227d17acfaa1a1dca94
2023-12-12 08:40:44 +00:00
Dmitry Tantsur 23745d97fe
Fix two severe errors in the firmware caching code
First, it tries to create components even if the current version is not
known and fails with a database constraint error (because the initial
version cannot be NULL). Can be reproduced with sushy-tools before
37f118237a

Second, unexpected exceptions are not handled in the caching code, so
any of them will cause the node to get stuck in cleaning forever.

On top of that, the caching code is missing a metrics decorator.

This change does not update any unit tests because none currently exist.

Change-Id: Iaa242ca6aa6138fcdaaf63b763708e2f1e559cb0
2023-12-08 18:11:03 +01:00
Zuul 209714010b Merge "Fix volume_name issue in Redfish RAID" 2023-12-05 22:11:15 +00:00
Zuul 5ca5df8217 Merge "Handle internal server errors while configuring secure boot" 2023-12-05 20:39:43 +00:00
Mahnoor Asghar a98681f1d3 Fix volume_name issue in Redfish RAID
Use the 'volume_name' field from the logical_disk in the
target_raid_config field of a node, instead of just 'name' (which is
incorrect as per the Ironic API expectation), to create the RAID volume

Change-Id: Ib8b2589d91be67a848411ab6be852bcb4de58bc7
2023-12-05 16:41:53 +01:00
Zuul 0853a08d1e Merge "Add volume name to Redfish RAID volumes" 2023-12-04 16:31:06 +00:00
Mahnoor Asghar bfaf64b46f Add volume name to Redfish RAID volumes
Change-Id: I12fccda8fee73430fee03a91134fd559ebf40cc9
2023-12-04 11:10:59 +01:00
Zuul 68863aa452 Merge "fix nits related to image server bauth" 2023-12-01 21:13:12 +00:00
Dmitry Tantsur a6e3a7f50c
Handle internal server errors while configuring secure boot
At least on some Dell machines, the Redfish SecureBoot resource is
unavailable during configuration, GET requests return HTTP 503.
Sushy does retry these, but not for long enough (the error message
suggests at least 30 seconds, which would be too much to just integrate
in Sushy). This change treats internal errors the same way as
mismatching "enabled" value, i.e. just waits.

Change-Id: I676f48de6b6195a69ea76b4e8b45a034220db2fa
2023-12-01 17:36:31 +01:00
Adam Rozman 31f0e17a13 fix nits related to image server bauth
This commit:
  - fixes a few nits that were pointed out after the feature
    was merged
  - doesn't affect the functionality of the feature

Closes-Bug: #2021947
Change-Id: I1dd024b9994df2b367f61cea75eb71fabe57abfd
2023-12-01 11:09:15 +02:00
Zuul 22f0a206bb Merge "Fix *_by_arch documentation and un-deprecate the options without it" 2023-11-30 20:23:15 +00:00
Zuul be242dc13b Merge "Generic API for attaching/detaching virtual media" 2023-11-30 14:02:38 +00:00
Steve Baker 2db444bce1 Replace swiftclient usage with openstacksdk
Object create/delete operations translate clearly from swiftclient to
the SDK. Switching the temp URL handling is a little more disruptive but
the result is slightly more centralized and enables key rotation.

Change-Id: I8df2f032224bd5e540139a798a7ab76a1aeebb06
Closes-Bug: #2042493
2023-11-29 12:44:30 +13:00
Zuul ce05c68302 Merge "Add missing compatibility between idrac and redfish firmware" 2023-11-28 21:30:49 +00:00
Zuul 922b904da8 Merge "Deprecate configuration molds" 2023-11-28 19:55:23 +00:00
Dmitry Tantsur 6e10ad9ad7
Add missing compatibility between idrac and redfish firmware
Change-Id: I3026a5c69930825ea2b88587e62b36e8824fa91e
2023-11-28 18:56:56 +01:00
Zuul 28b3f56b2c Merge "implement basic-auth support for user image download process" 2023-11-28 16:05:52 +00:00