diff --git a/lib/puppet/provider/pcmk_bundle/default.rb b/lib/puppet/provider/pcmk_bundle/default.rb index 420a0e23..186353ec 100644 --- a/lib/puppet/provider/pcmk_bundle/default.rb +++ b/lib/puppet/provider/pcmk_bundle/default.rb @@ -178,7 +178,7 @@ Puppet::Type.type(:pcmk_bundle).provide(:default) do end def resource_exists? - cmd = 'resource config ' + @resource[:name] + ' > /dev/null 2>&1' + cmd = 'resource ' + pcs_config_or_show() + ' ' + @resource[:name] + ' > /dev/null 2>&1' ret = pcs('show', @resource[:name], cmd, @resource[:tries], @resource[:try_sleep], @resource[:verify_on_create], @resource[:post_success_sleep]) if ret == false then diff --git a/lib/puppet/provider/pcmk_common.rb b/lib/puppet/provider/pcmk_common.rb index e54baf9c..ef2b9abc 100644 --- a/lib/puppet/provider/pcmk_common.rb +++ b/lib/puppet/provider/pcmk_common.rb @@ -37,6 +37,17 @@ def pcs_cli_version() return pcs_cli_version end +# returns 'show' or 'config' depending on the pcs version +# In case pcs returns '' we choose the more recent 'config' default +# (Although in that case it is likely it will fail differently anyways) +def pcs_config_or_show() + if Puppet::Util::Package.versioncmp(pcs_cli_version(), '0.10.0') < 0 + return 'show' + else + return 'config' + end +end + def crm_node_l() begin nodes = `#{CRMNODE_BIN} -l` @@ -191,7 +202,7 @@ def pcs_create_with_verify(name, resource_name, cmd, tries=1, try_sleep=0) pcs_out = `#{PCS_BIN} #{cmd} 2>&1` if $?.exitstatus == 0 sleep try_sleep - cmd_show = "#{PCS_BIN} resource config " + resource_name + cmd_show = "#{PCS_BIN} resource " + pcs_config_or_show() + " " + resource_name Puppet.debug("Verifying with: "+cmd_show) `#{cmd_show}` if $?.exitstatus == 0 diff --git a/lib/puppet/provider/pcmk_remote/default.rb b/lib/puppet/provider/pcmk_remote/default.rb index fc288bd0..9aa4e111 100644 --- a/lib/puppet/provider/pcmk_remote/default.rb +++ b/lib/puppet/provider/pcmk_remote/default.rb @@ -81,7 +81,7 @@ Puppet::Type.type(:pcmk_remote).provide(:default) do end def resource_exists? - cmd = 'resource config ' + @resource[:name] + ' > /dev/null 2>&1' + cmd = 'resource ' + pcs_config_or_show() + ' ' + @resource[:name] + ' > /dev/null 2>&1' ret = pcs('show', @resource[:name], cmd, @resource[:tries], @resource[:try_sleep], false, @resource[:post_success_sleep]) if ret == false then diff --git a/lib/puppet/provider/pcmk_resource/default.rb b/lib/puppet/provider/pcmk_resource/default.rb index d90c9b3b..e396001d 100644 --- a/lib/puppet/provider/pcmk_resource/default.rb +++ b/lib/puppet/provider/pcmk_resource/default.rb @@ -159,7 +159,7 @@ Puppet::Type.type(:pcmk_resource).provide(:default) do end def resource_exists? - cmd = 'resource config ' + @resource[:name] + ' > /dev/null 2>&1' + cmd = 'resource ' + pcs_config_or_show() + ' ' + @resource[:name] + ' > /dev/null 2>&1' ret = pcs('show', @resource[:name], cmd, @resource[:tries], @resource[:try_sleep], @resource[:verify_on_create], @resource[:post_success_sleep]) if ret == false then diff --git a/lib/puppet/provider/pcmk_stonith/default.rb b/lib/puppet/provider/pcmk_stonith/default.rb index 18b1f992..5a5432de 100644 --- a/lib/puppet/provider/pcmk_stonith/default.rb +++ b/lib/puppet/provider/pcmk_stonith/default.rb @@ -103,7 +103,7 @@ Puppet::Type.type(:pcmk_stonith).provide(:default) do end def stonith_resource_exists? - cmd = 'stonith config ' + @resource[:name] + ' > /dev/null 2>&1' + cmd = 'stonith ' + pcs_config_or_show() + ' ' + @resource[:name] + ' > /dev/null 2>&1' ret = pcs('show', @resource[:name], cmd, @resource[:tries], @resource[:try_sleep], @resource[:verify_on_create], @resource[:post_success_sleep]) if ret == false then