From 8083244943cdd6e96c8502c4f2d40a97d74a3ed1 Mon Sep 17 00:00:00 2001 From: Mattias Giese Date: Fri, 21 May 2021 10:47:42 -0500 Subject: [PATCH 1/2] Enable the possibility to refresh pillars on demand for a given host --- lib/smart_proxy_salt/cli.rb | 7 +++++++ lib/smart_proxy_salt/salt_api.rb | 10 ++++++++++ 2 files changed, 17 insertions(+) diff --git a/lib/smart_proxy_salt/cli.rb b/lib/smart_proxy_salt/cli.rb index bd2f3fb..54895f2 100644 --- a/lib/smart_proxy_salt/cli.rb +++ b/lib/smart_proxy_salt/cli.rb @@ -69,6 +69,13 @@ def highstate(host) shell_command(cmd) end + def refresh_pillar(host) + find_salt_binaries + cmd = [@sudo, '-u', Proxy::Salt::Plugin.settings.salt_command_user, @salt, '--async', escape_for_shell(host), 'saltutil.refresh_pillar'] + logger.info "Will run saltutil.refresh_pillar for #{host}. Full command: #{cmd.join(' ')}" + shell_command(cmd) + end + def key_delete(host) find_salt_binaries cmd = [@sudo, '-u', Proxy::Salt::Plugin.settings.salt_command_user, @salt_key, '--yes', '-d', escape_for_shell(host)] diff --git a/lib/smart_proxy_salt/salt_api.rb b/lib/smart_proxy_salt/salt_api.rb index abfbf56..01f16b6 100644 --- a/lib/smart_proxy_salt/salt_api.rb +++ b/lib/smart_proxy_salt/salt_api.rb @@ -70,6 +70,16 @@ class Api < ::Sinatra::Base end end + post '/refresh_pillar/:host' do + content_type :json + begin + log_halt 500, "Failed salt run for #{params[:host]}: Check Log files" unless (result = Proxy::Salt.refresh_pillar(params[:host])) + result + rescue Exception => e + log_halt 406, "Failed salt run for #{params[:host]}: #{e}" + end + end + delete '/key/:host' do content_type :json begin From 46e82d5d1d5cab308da9f87e07e3d162ea8d4bf0 Mon Sep 17 00:00:00 2001 From: Mattias Giese Date: Thu, 17 Jun 2021 10:13:46 -0500 Subject: [PATCH 2/2] Change wording of error log in refresh_pillar API function --- lib/smart_proxy_salt/salt_api.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/smart_proxy_salt/salt_api.rb b/lib/smart_proxy_salt/salt_api.rb index 01f16b6..3660a0e 100644 --- a/lib/smart_proxy_salt/salt_api.rb +++ b/lib/smart_proxy_salt/salt_api.rb @@ -73,10 +73,10 @@ class Api < ::Sinatra::Base post '/refresh_pillar/:host' do content_type :json begin - log_halt 500, "Failed salt run for #{params[:host]}: Check Log files" unless (result = Proxy::Salt.refresh_pillar(params[:host])) + log_halt 500, "Failed pillar refresh for #{params[:host]}: Check Log files" unless (result = Proxy::Salt.refresh_pillar(params[:host])) result rescue Exception => e - log_halt 406, "Failed salt run for #{params[:host]}: #{e}" + log_halt 406, "Failed pillar refresh for #{params[:host]}: #{e}" end end