Fixes ``redfish`` RAID interface workflow to not create more than 1
logical disks per controller at the same time when controller does not
support 'Immediate' application time and system needs rebooting.
With this fix virtual disks are grouped by controller and executed
in batches when reboot is required.
This enables ``redfish`` RAID interface to be used with iDRAC systems
directly as although there are many controllers that support 'Immediate'
application time, they do it only when system has completed loading.
System intermittently completes loading after IPA starts executing
clean or deploy steps rendering controllers not supporting 'Immediate'
apply time and requiring reboot. This fix handles such scenario
instead of failing to create more than 1 virtual disk.
Story: 2009863
Task: 44529
Change-Id: Ia2ce34f09695731b0f48798f662006c4904e2223
iPXE derives its "file names" from the last component of the URL path.
In case of the conductor's local server it's {mode}_{component} where
mode = deploy/rescue and component = kernel/ramdisk. However, in case
of Swift/Ceph, the last component will be different. This patch accounts
for it.
Change-Id: I7ba5545032069509a9c302abe1c21537ccb5ec8a
When using nginx to terminate TLS (like it's done in Bifrost), it's more
secure to use a Unix socket for communication, so that local users
cannot access plain text communication.
Copies Inspector change I37b762cca035b5855deb92635c29e8eb97a87c20.
Change-Id: If00e5a3537b8fbaae3fa01f71bd515399464da36
Using kernel/ramdisk makes no sense with local boot, we need a better
way. We already have an internal image_type instance parameter, let's
make it public.
Glance support will be added in the next patch.
Change-Id: I4ce5f7a2317d952f976194d2022328f4afbb0258
Currently, the launcher first notifies systemd, then starts checking the
services (RPC and WSGI). So any failures will be reported, but only
after systemd declares the service ready.
This change adds a polling loop to make sure RpcService.start() finishes
successfully.
Change-Id: Ib460622d69a9cb1cb82e796a6ab294bbbb40c359
Launcher.wait() does not raise, it returns an integer code. Propagate it
to sys.exit() so that failures are correctly recognized.
Change-Id: I38bf39e4e4845415640b3468e9fb3029f70dcded
Account prefix is configurable in Swift and can be different. This
change introduces a configuration parameter to customize the prefix
so that users can customize the prefix consistently.
To allow setting a consistent value in Ironic and Swift, the prefix
value is automatically suffixed by '_' like;
- AUTH => AUTH_
- AUTH_ => AUTH_
Story: 2009778
Task: 44259
Change-Id: I4862efa3af452f89f1dc4e15d2c3cc43b857f86d
Node history was particularly affected: limit was not converted from
string to integer, so "next" link was never added.
Add some safeguards to the generic API code.
Change-Id: I1328e2f07621bf7e39b96eb4a7ddb66c9a2b65bb
For BIOS factory_reset updated to use power interface
as direct REBOOT call fails when system is OFF that
can happen if running without ramdisk.
Change-Id: I9baf13e9a089bc692e8010dc7e291d7791d1f73c
Includes idrac-redfish RAID and management steps.
Update helper utility to not prepare agent on reboots
if cleaning without it.
Change-Id: I3c06e12f82908fba2b2587d0e3bec4b8bbdeba4b
Restart node console may occasionally result in duplicated
sol session. Especially, when a cluster deployed with multi
ironic-conductor backends, stop_console action shutdown
only one console process while another sol session remains.
This patch adds "sol deactivate" action before start node
console. Make sure the current connection always a success.
Story: 2009762
Task: 44233
Change-Id: I5bc8666ff0b4ceab61ed6a8c794d6882783d6bce
Since the default value resource_url is None, make sure the
parameter is set to 'ports' when getting all ports.
Change-Id: Id603ae5a4a802dfc8f866b15c8d327d95eba9310
Since the default value resource_url is None, make sure the
parameter is set to 'nodes' when getting all nodes.
Change-Id: I6cc52eb56c7888a433d24aa79154143d6f35cf83
Adds swift and file support for `redfish` management interface
`firmware_update` step.
Adds `source` to step and `[redfish]firmware_source` to config
for setting up if and how files are staged. Support `http`, `local`
and `swift` for staging.
Adds `checksum` to step for checksum verification when file is
staged.
Story: 2008723
Task: 42067
Change-Id: Ibcc7815b32344d67f912d7dcda7283bac3582316
Add to ignore destructive settings during export. User can still put
those back during import manually.
Depends-On: https://review.opendev.org/c/x/sushy-oem-idrac/+/816815
Change-Id: I7d4c08082cadec399227ee4546e7353ff6bd2ae8
Currently duplicate DHCP options are added when a port have
multiple address in the same address familiy. The duplicate
entries cause an internal server error in neutron.
This fixes the issue by only adding DHCP options for each
IP-version.
Story: 2009774
Task: 44255
Change-Id: I8bef819dc3101f88f4e04ea986e1039e34d917ed
Images can be generated on fly, so let us respect the decision of the
server to disable caching.
Also disable caching for file images: it's just waste of space.
Change-Id: I425b1915c73354af90329d5b3a1fb0a616adaa93
On neutron routed provider networks IP allocation is
deferred until 'binding:host_id' is set. When ironic
creates neutron ports it first creates the port, then
updates the port setting binding information.
When using IPv6 networking ironic adds additional address
allocations to ensure network chain-booting will succeed.
When address allocation is deferred on port create ironic
cannot detect that IPv6 is used and does not add the
required additional addresses.
This change ensures the 'port' object is updated after the
port update setting the port binding required for neutron
to allocate the address. This allows ironic to correctly
detect IPv6 is used, and it will add the required IP
address allocations.
Story: 2009773
Task: 44254
Change-Id: I863dd4ab9615a9ce3b3dcb8798af674ac9966bf2
Since I4f2cecdc0af366364b18232dbd8ea4ffdd3165d2, bootloader installation
failures were ignored to facilitate backwards compatibility with older
Ironic Python Agents. However, this means that some genuine failures are
ignored.
We can now rely on having a sufficiently modern IPA, so this patch makes
bootloader installation failures fatal for whole disk images.
Change-Id: Ic280cc3e1a2bb462d5425efd71b336db8c14bb90