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. # update tasks.
# Defaults to $facts['os_service_default'] # 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*] # [*firmware_source*]
# (optional) Specifies how firmware image should be served. # (optional) Specifies how firmware image should be served.
# Defaults to $facts['os_service_default'] # Defaults to $facts['os_service_default']
@@ -87,43 +92,45 @@
# Defaults to $facts['os_service_default'] # Defaults to $facts['os_service_default']
# #
class ironic::drivers::redfish ( class ironic::drivers::redfish (
$package_ensure = 'present', $package_ensure = 'present',
$connection_attempts = $facts['os_service_default'], $connection_attempts = $facts['os_service_default'],
$connection_retry_interval = $facts['os_service_default'], $connection_retry_interval = $facts['os_service_default'],
$connection_cache_size = $facts['os_service_default'], $connection_cache_size = $facts['os_service_default'],
$auth_type = $facts['os_service_default'], $auth_type = $facts['os_service_default'],
$use_swift = $facts['os_service_default'], $use_swift = $facts['os_service_default'],
$swift_container = $facts['os_service_default'], $swift_container = $facts['os_service_default'],
$swift_object_expiry_timeout = $facts['os_service_default'], $swift_object_expiry_timeout = $facts['os_service_default'],
$kernel_append_params = $facts['os_service_default'], $kernel_append_params = $facts['os_service_default'],
$file_permission = $facts['os_service_default'], $file_permission = $facts['os_service_default'],
$firmware_update_status_interval = $facts['os_service_default'], $firmware_update_status_interval = $facts['os_service_default'],
$firmware_update_fail_interval = $facts['os_service_default'], $firmware_update_fail_interval = $facts['os_service_default'],
$firmware_source = $facts['os_service_default'], $firmware_update_wait_unresponsive_bmc = $facts['os_service_default'],
$raid_config_status_interval = $facts['os_service_default'], $firmware_source = $facts['os_service_default'],
$raid_config_fail_interval = $facts['os_service_default'], $raid_config_status_interval = $facts['os_service_default'],
$boot_mode_config_timeout = $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::deps
include ironic::params include ironic::params
ironic_config { ironic_config {
'redfish/connection_attempts': value => $connection_attempts; 'redfish/connection_attempts': value => $connection_attempts;
'redfish/connection_retry_interval': value => $connection_retry_interval; 'redfish/connection_retry_interval': value => $connection_retry_interval;
'redfish/connection_cache_size': value => $connection_cache_size; 'redfish/connection_cache_size': value => $connection_cache_size;
'redfish/auth_type': value => $auth_type; 'redfish/auth_type': value => $auth_type;
'redfish/use_swift': value => $use_swift; 'redfish/use_swift': value => $use_swift;
'redfish/swift_container': value => $swift_container; 'redfish/swift_container': value => $swift_container;
'redfish/swift_object_expiry_timeout': value => $swift_object_expiry_timeout; 'redfish/swift_object_expiry_timeout': value => $swift_object_expiry_timeout;
'redfish/kernel_append_params': value => $kernel_append_params; 'redfish/kernel_append_params': value => $kernel_append_params;
'redfish/file_permission': value => $file_permission; 'redfish/file_permission': value => $file_permission;
'redfish/firmware_update_status_interval': value => $firmware_update_status_interval; 'redfish/firmware_update_status_interval': value => $firmware_update_status_interval;
'redfish/firmware_update_fail_interval': value => $firmware_update_fail_interval; 'redfish/firmware_update_fail_interval': value => $firmware_update_fail_interval;
'redfish/firmware_source': value => $firmware_source; 'redfish/firmware_update_wait_unresponsive_bmc': value => $firmware_update_wait_unresponsive_bmc;
'redfish/raid_config_status_interval': value => $raid_config_status_interval; 'redfish/firmware_source': value => $firmware_source;
'redfish/raid_config_fail_interval': value => $raid_config_fail_interval; 'redfish/raid_config_status_interval': value => $raid_config_status_interval;
'redfish/boot_mode_config_timeout': value => $boot_mode_config_timeout; 'redfish/raid_config_fail_interval': value => $raid_config_fail_interval;
'redfish/boot_mode_config_timeout': value => $boot_mode_config_timeout;
} }
ensure_packages('python-sushy', 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_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_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_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_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/raid_config_fail_interval').with_value('<SERVICE DEFAULT>')
is_expected.to contain_ironic_config('redfish/boot_mode_config_timeout').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 context 'when overriding parameters' do
before do before do
params.merge!( params.merge!(
:connection_attempts => 10, :connection_attempts => 10,
:connection_retry_interval => 1, :connection_retry_interval => 1,
:connection_cache_size => 100, :connection_cache_size => 100,
:auth_type => 'auto', :auth_type => 'auto',
:use_swift => true, :use_swift => true,
:swift_container => 'ironic_redfish_container', :swift_container => 'ironic_redfish_container',
:swift_object_expiry_timeout => 900, :swift_object_expiry_timeout => 900,
:kernel_append_params => 'nofb nomodeset vga=normal', :kernel_append_params => 'nofb nomodeset vga=normal',
:file_permission => '0o644', :file_permission => '0o644',
:firmware_update_status_interval => 60, :firmware_update_status_interval => 60,
:firmware_update_fail_interval => 61, :firmware_update_fail_interval => 61,
:firmware_source => 'http', :firmware_source => 'http',
:raid_config_status_interval => 62, :firmware_update_wait_unresponsive_bmc => 300,
:raid_config_fail_interval => 63, :raid_config_status_interval => 62,
:boot_mode_config_timeout => 901, :raid_config_fail_interval => 63,
:boot_mode_config_timeout => 901,
) )
end 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_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_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_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_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/raid_config_fail_interval').with_value(63)
is_expected.to contain_ironic_config('redfish/boot_mode_config_timeout').with_value(901) is_expected.to contain_ironic_config('redfish/boot_mode_config_timeout').with_value(901)