Add support for [redfish] firmware_update_wait_unresponsive_bmc

... which was added during this cycle.

Depends-on: https://review.opendev.org/938108
Change-Id: I3cd0e8e08c8d3d51880c7b51cb17ea648e8779da
Signed-off-by: Takashi Kajinami <kajinamit@oss.nttdata.com>
This commit is contained in:
Takashi Kajinami
2025-07-30 21:30:20 +09:00
parent 557e72af54
commit 68b946042d
3 changed files with 61 additions and 46 deletions

View File

@@ -67,6 +67,11 @@
# update tasks.
# Defaults to $facts['os_service_default']
#
# [*firmware_update_wait_unresponsive_bmc*]
# (optional) Number of seconds to wait before proceeding with the reboot to
# finish the BMC firmware update setp.
# Defaults to $facts['os_service_default']
#
# [*firmware_source*]
# (optional) Specifies how firmware image should be served.
# Defaults to $facts['os_service_default']
@@ -87,43 +92,45 @@
# Defaults to $facts['os_service_default']
#
class ironic::drivers::redfish (
$package_ensure = 'present',
$connection_attempts = $facts['os_service_default'],
$connection_retry_interval = $facts['os_service_default'],
$connection_cache_size = $facts['os_service_default'],
$auth_type = $facts['os_service_default'],
$use_swift = $facts['os_service_default'],
$swift_container = $facts['os_service_default'],
$swift_object_expiry_timeout = $facts['os_service_default'],
$kernel_append_params = $facts['os_service_default'],
$file_permission = $facts['os_service_default'],
$firmware_update_status_interval = $facts['os_service_default'],
$firmware_update_fail_interval = $facts['os_service_default'],
$firmware_source = $facts['os_service_default'],
$raid_config_status_interval = $facts['os_service_default'],
$raid_config_fail_interval = $facts['os_service_default'],
$boot_mode_config_timeout = $facts['os_service_default'],
$package_ensure = 'present',
$connection_attempts = $facts['os_service_default'],
$connection_retry_interval = $facts['os_service_default'],
$connection_cache_size = $facts['os_service_default'],
$auth_type = $facts['os_service_default'],
$use_swift = $facts['os_service_default'],
$swift_container = $facts['os_service_default'],
$swift_object_expiry_timeout = $facts['os_service_default'],
$kernel_append_params = $facts['os_service_default'],
$file_permission = $facts['os_service_default'],
$firmware_update_status_interval = $facts['os_service_default'],
$firmware_update_fail_interval = $facts['os_service_default'],
$firmware_update_wait_unresponsive_bmc = $facts['os_service_default'],
$firmware_source = $facts['os_service_default'],
$raid_config_status_interval = $facts['os_service_default'],
$raid_config_fail_interval = $facts['os_service_default'],
$boot_mode_config_timeout = $facts['os_service_default'],
) {
include ironic::deps
include ironic::params
ironic_config {
'redfish/connection_attempts': value => $connection_attempts;
'redfish/connection_retry_interval': value => $connection_retry_interval;
'redfish/connection_cache_size': value => $connection_cache_size;
'redfish/auth_type': value => $auth_type;
'redfish/use_swift': value => $use_swift;
'redfish/swift_container': value => $swift_container;
'redfish/swift_object_expiry_timeout': value => $swift_object_expiry_timeout;
'redfish/kernel_append_params': value => $kernel_append_params;
'redfish/file_permission': value => $file_permission;
'redfish/firmware_update_status_interval': value => $firmware_update_status_interval;
'redfish/firmware_update_fail_interval': value => $firmware_update_fail_interval;
'redfish/firmware_source': value => $firmware_source;
'redfish/raid_config_status_interval': value => $raid_config_status_interval;
'redfish/raid_config_fail_interval': value => $raid_config_fail_interval;
'redfish/boot_mode_config_timeout': value => $boot_mode_config_timeout;
'redfish/connection_attempts': value => $connection_attempts;
'redfish/connection_retry_interval': value => $connection_retry_interval;
'redfish/connection_cache_size': value => $connection_cache_size;
'redfish/auth_type': value => $auth_type;
'redfish/use_swift': value => $use_swift;
'redfish/swift_container': value => $swift_container;
'redfish/swift_object_expiry_timeout': value => $swift_object_expiry_timeout;
'redfish/kernel_append_params': value => $kernel_append_params;
'redfish/file_permission': value => $file_permission;
'redfish/firmware_update_status_interval': value => $firmware_update_status_interval;
'redfish/firmware_update_fail_interval': value => $firmware_update_fail_interval;
'redfish/firmware_update_wait_unresponsive_bmc': value => $firmware_update_wait_unresponsive_bmc;
'redfish/firmware_source': value => $firmware_source;
'redfish/raid_config_status_interval': value => $raid_config_status_interval;
'redfish/raid_config_fail_interval': value => $raid_config_fail_interval;
'redfish/boot_mode_config_timeout': value => $boot_mode_config_timeout;
}
ensure_packages('python-sushy',

View File

@@ -0,0 +1,5 @@
---
features:
- |
The new ``ironic::drivers::redfish::firmware_update_wait_unresponsive_bmc``
parameter has been added.

View File

@@ -39,6 +39,7 @@ describe 'ironic::drivers::redfish' do
is_expected.to contain_ironic_config('redfish/firmware_update_status_interval').with_value('<SERVICE DEFAULT>')
is_expected.to contain_ironic_config('redfish/firmware_update_fail_interval').with_value('<SERVICE DEFAULT>')
is_expected.to contain_ironic_config('redfish/firmware_source').with_value('<SERVICE DEFAULT>')
is_expected.to contain_ironic_config('redfish/firmware_update_wait_unresponsive_bmc').with_value('<SERVICE DEFAULT>')
is_expected.to contain_ironic_config('redfish/raid_config_status_interval').with_value('<SERVICE DEFAULT>')
is_expected.to contain_ironic_config('redfish/raid_config_fail_interval').with_value('<SERVICE DEFAULT>')
is_expected.to contain_ironic_config('redfish/boot_mode_config_timeout').with_value('<SERVICE DEFAULT>')
@@ -55,21 +56,22 @@ describe 'ironic::drivers::redfish' do
context 'when overriding parameters' do
before do
params.merge!(
:connection_attempts => 10,
:connection_retry_interval => 1,
:connection_cache_size => 100,
:auth_type => 'auto',
:use_swift => true,
:swift_container => 'ironic_redfish_container',
:swift_object_expiry_timeout => 900,
:kernel_append_params => 'nofb nomodeset vga=normal',
:file_permission => '0o644',
:firmware_update_status_interval => 60,
:firmware_update_fail_interval => 61,
:firmware_source => 'http',
:raid_config_status_interval => 62,
:raid_config_fail_interval => 63,
:boot_mode_config_timeout => 901,
:connection_attempts => 10,
:connection_retry_interval => 1,
:connection_cache_size => 100,
:auth_type => 'auto',
:use_swift => true,
:swift_container => 'ironic_redfish_container',
:swift_object_expiry_timeout => 900,
:kernel_append_params => 'nofb nomodeset vga=normal',
:file_permission => '0o644',
:firmware_update_status_interval => 60,
:firmware_update_fail_interval => 61,
:firmware_source => 'http',
:firmware_update_wait_unresponsive_bmc => 300,
:raid_config_status_interval => 62,
:raid_config_fail_interval => 63,
:boot_mode_config_timeout => 901,
)
end
@@ -86,6 +88,7 @@ describe 'ironic::drivers::redfish' do
is_expected.to contain_ironic_config('redfish/firmware_update_status_interval').with_value(60)
is_expected.to contain_ironic_config('redfish/firmware_update_fail_interval').with_value(61)
is_expected.to contain_ironic_config('redfish/firmware_source').with_value('http')
is_expected.to contain_ironic_config('redfish/firmware_update_wait_unresponsive_bmc').with_value(300)
is_expected.to contain_ironic_config('redfish/raid_config_status_interval').with_value(62)
is_expected.to contain_ironic_config('redfish/raid_config_fail_interval').with_value(63)
is_expected.to contain_ironic_config('redfish/boot_mode_config_timeout').with_value(901)