diff --git a/manifests/conductor.pp b/manifests/conductor.pp index be7ddc7b..cb458407 100644 --- a/manifests/conductor.pp +++ b/manifests/conductor.pp @@ -146,6 +146,12 @@ # power state with the node power state in the database. # Defaults to $::os_service_default # +# [*power_failure_recovery_interval*] +# (optional) Interval (in seconds) between checking the power +# state for nodes previously put into maintenance mode due to power +# synchronization failure. +# Defaults to $::os_service_default +# # DEPRECATED PARAMETERS # # [*enabled_drivers*] @@ -179,6 +185,7 @@ class ironic::conductor ( $power_state_change_timeout = $::os_service_default, $sync_power_state_interval = $::os_service_default, $power_state_sync_max_retries = $::os_service_default, + $power_failure_recovery_interval = $::os_service_default, $enabled_drivers = undef, ) { @@ -262,6 +269,7 @@ class ironic::conductor ( 'conductor/power_state_change_timeout': value => $power_state_change_timeout; 'conductor/sync_power_state_interval': value => $sync_power_state_interval; 'conductor/power_state_sync_max_retries': value => $power_state_sync_max_retries; + 'conductor/power_failure_recovery_interval': value => $power_failure_recovery_interval; } if $cleaning_network_name { diff --git a/releasenotes/notes/power-failure-recovery-fb7f74944bc499b4.yaml b/releasenotes/notes/power-failure-recovery-fb7f74944bc499b4.yaml new file mode 100644 index 00000000..846bd855 --- /dev/null +++ b/releasenotes/notes/power-failure-recovery-fb7f74944bc499b4.yaml @@ -0,0 +1,4 @@ +--- +features: + - | + Adds the ``ironic::conductor::power_failure_recovery_interval`` parameter. diff --git a/spec/classes/ironic_conductor_spec.rb b/spec/classes/ironic_conductor_spec.rb index 9bae8edd..1fd8bb55 100644 --- a/spec/classes/ironic_conductor_spec.rb +++ b/spec/classes/ironic_conductor_spec.rb @@ -82,29 +82,31 @@ describe 'ironic::conductor' do is_expected.to contain_ironic_config('conductor/power_state_change_timeout').with(:value => '') is_expected.to contain_ironic_config('conductor/sync_power_state_interval').with(:value => '') is_expected.to contain_ironic_config('conductor/power_state_sync_max_retries').with(:value => '') + is_expected.to contain_ironic_config('conductor/power_failure_recovery_interval').with(:value => '') end context 'when overriding parameters' do before :each do params.merge!( - :enabled_hardware_types => ['ipmi', 'irmc'], - :max_time_interval => '50', - :force_power_state_during_sync => false, - :automated_clean => false, - :cleaning_network => '00000000-0000-0000-0000-000000000000', - :api_url => 'https://127.0.0.1:6385', - :provisioning_network => '00000000-0000-0000-0000-000000000000', - :rescuing_network => '00000000-0000-0000-0000-000000000000', - :cleaning_disk_erase => 'metadata', - :http_url => 'http://host:port', - :http_root => '/src/www', - :configdrive_use_swift => true, - :configdrive_swift_container => 'cont', - :default_boot_option => 'local', - :port_setup_delay => '15', - :power_state_change_timeout => '300', - :sync_power_state_interval => 120, - :power_state_sync_max_retries => 5, + :enabled_hardware_types => ['ipmi', 'irmc'], + :max_time_interval => '50', + :force_power_state_during_sync => false, + :automated_clean => false, + :cleaning_network => '00000000-0000-0000-0000-000000000000', + :api_url => 'https://127.0.0.1:6385', + :provisioning_network => '00000000-0000-0000-0000-000000000000', + :rescuing_network => '00000000-0000-0000-0000-000000000000', + :cleaning_disk_erase => 'metadata', + :http_url => 'http://host:port', + :http_root => '/src/www', + :configdrive_use_swift => true, + :configdrive_swift_container => 'cont', + :default_boot_option => 'local', + :port_setup_delay => '15', + :power_state_change_timeout => '300', + :sync_power_state_interval => 120, + :power_state_sync_max_retries => 5, + :power_failure_recovery_interval => 120, ) end it 'should replace default parameter with new value' do @@ -127,6 +129,7 @@ describe 'ironic::conductor' do is_expected.to contain_ironic_config('conductor/power_state_change_timeout').with_value(p[:power_state_change_timeout]) is_expected.to contain_ironic_config('conductor/sync_power_state_interval').with_value(p[:sync_power_state_interval]) is_expected.to contain_ironic_config('conductor/power_state_sync_max_retries').with_value(p[:power_state_sync_max_retries]) + is_expected.to contain_ironic_config('conductor/power_failure_recovery_interval').with_value(p[:power_failure_recovery_interval]) end end