From a34a0e10f0183f22a286d05f2e28cf71314e3c56 Mon Sep 17 00:00:00 2001 From: Trey Dockendorf Date: Fri, 1 Mar 2024 11:26:50 -0500 Subject: [PATCH] Add reconfig_ignore_errors parameter --- manifests/init.pp | 2 ++ manifests/slurmctld/service.pp | 7 +++++++ spec/shared_examples/slurm_slurmctld_service.rb | 16 ++++++++++++++++ 3 files changed, 25 insertions(+) diff --git a/manifests/init.pp b/manifests/init.pp index 666cd6b7..a9b82dff 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -37,6 +37,7 @@ # @param reload_services # @param restart_services # @param slurmctld_conn_validator_timeout +# @param reconfig_ignore_errors # @param manage_slurm_user # @param slurm_user_group # @param slurm_group_gid @@ -240,6 +241,7 @@ Boolean $reload_services = false, Boolean $restart_services = true, Integer $slurmctld_conn_validator_timeout = 60, + Boolean $reconfig_ignore_errors = false, # User and group management Boolean $manage_slurm_user = true, diff --git a/manifests/slurmctld/service.pp b/manifests/slurmctld/service.pp index 7f6ce796..30b8ab7d 100644 --- a/manifests/slurmctld/service.pp +++ b/manifests/slurmctld/service.pp @@ -85,7 +85,14 @@ hasrestart => true, } + if $slurm::reconfig_ignore_errors { + $reconfig_command = 'scontrol reconfig || exit 0' + } else { + $reconfig_command = 'scontrol reconfig' + } + exec { 'scontrol reconfig': + command => $reconfig_command, path => '/usr/bin:/bin:/usr/sbin:/sbin', refreshonly => true, } diff --git a/spec/shared_examples/slurm_slurmctld_service.rb b/spec/shared_examples/slurm_slurmctld_service.rb index 0075bf83..d52b0d4c 100644 --- a/spec/shared_examples/slurm_slurmctld_service.rb +++ b/spec/shared_examples/slurm_slurmctld_service.rb @@ -7,4 +7,20 @@ hasstatus: 'true', hasrestart: 'true') end + + it do + is_expected.to contain_exec('scontrol reconfig').with( + command: 'scontrol reconfig', + path: '/usr/bin:/bin:/usr/sbin:/sbin', + refreshonly: true, + ) + end + + context 'when ignoring reconfig errors' do + let(:param_override) { { reconfig_ignore_errors: true } } + + it do + is_expected.to contain_exec('scontrol reconfig').with_command('scontrol reconfig || exit 0') + end + end end