lib/splash/commands.rb in prometheus-splash-0.3.0 vs lib/splash/commands.rb in prometheus-splash-0.4.0

- old
+ new

@@ -23,11 +23,11 @@ splash_exit case: :not_found, more: "command #{@name} is not defined in configuration" end end def ack - puts "Sending ack for command : '#{@name}'" + get_logger.info "Sending ack for command : '#{@name}'" notify(0,0) end def notify(value,time) unless verify_service host: @config.prometheus_pushgateway_host ,port: @config.prometheus_pushgateway_port then @@ -35,53 +35,54 @@ end @@metric_exitcode.set(value) @@metric_time.set(time) hostname = Socket.gethostname Prometheus::Client::Push.new(@name, hostname, @url).add(@@registry) - puts " * Prometheus Gateway notified." + get_logger.ok "Prometheus Gateway notified." return { :case => :quiet_exit} end def call_and_notify(options) + log = get_logger acase = { :case => :quiet_exit } exit_code = 0 if @config.commands[@name.to_sym][:delegate_to] then return { :case => :options_incompatibility, :more => '--hostname forbidden with delagate commands'} if options[:hostname] - puts "Remote command : #{@name} execution delegate to : #{@config.commands[@name.to_sym][:delegate_to][:host]} as : #{@config.commands[@name.to_sym][:delegate_to][:remote_command]}" + log.send "Remote command : #{@name} execution delegate to : #{@config.commands[@name.to_sym][:delegate_to][:host]} as : #{@config.commands[@name.to_sym][:delegate_to][:remote_command]}" begin transport = get_default_client if transport.class == Hash and transport.include? :case then return transport else res = transport.execute({ :verb => :execute_command, payload: {:name => @config.commands[@name.to_sym][:delegate_to][:remote_command].to_s}, :return_to => "splash.#{Socket.gethostname}.return", :queue => "splash.#{@config.commands[@name.to_sym][:delegate_to][:host]}.input" }) exit_code = res[:exit_code] - puts " => exitcode #{exit_code}" + log.receive "return with exitcode #{exit_code}" end end else - puts "Executing command : '#{@name}' " + log.info "Executing command : '#{@name}' " start = Time.now start_date = DateTime.now.to_s unless options[:trace] then - puts " * Traceless execution" + log.item "Traceless execution" if @config.commands[@name.to_sym][:user] then - puts " * Execute with user : #{@config.commands[@name.to_sym][:user]}." + log.item "Execute with user : #{@config.commands[@name.to_sym][:user]}." system("sudo -u #{@config.commands[@name.to_sym][:user]} #{@config.commands[@name.to_sym][:command]} > /dev/null 2>&1") else system("#{@config.commands[@name.to_sym][:command]} > /dev/null 2>&1") end time = Time.now - start exit_code = $?.exitstatus else - puts " * Tracefull execution" + log.item "Tracefull execution" if @config.commands[@name.to_sym][:user] then - puts " * Execute with user : #{@config.commands[@name.to_sym][:user]}." + log.item "Execute with user : #{@config.commands[@name.to_sym][:user]}." stdout, stderr, status = Open3.capture3("sudo -u #{@config.commands[@name.to_sym][:user]} #{@config.commands[@name.to_sym][:command]}") else stdout, stderr, status = Open3.capture3(@config.commands[@name.to_sym][:command]) end time = Time.now - start @@ -101,41 +102,41 @@ backend = get_backend :execution_trace key = @name backend.put key: key, value: data.to_yaml exit_code = status.exitstatus end - - puts " => exitcode #{exit_code}" + log.ok "Command executed" + log.arrow "exitcode #{exit_code}" if options[:notify] then acase = notify(exit_code,time.to_i) else - puts " * Without Prometheus notification" + log.item "Without Prometheus notification" end end if options[:callback] then on_failure = (@config.commands[@name.to_sym][:on_failure])? @config.commands[@name.to_sym][:on_failure] : false on_success = (@config.commands[@name.to_sym][:on_success])? @config.commands[@name.to_sym][:on_success] : false if on_failure and exit_code > 0 then - puts " * On failure callback : #{on_failure}" + log.item "On failure callback : #{on_failure}" if @config.commands.keys.include? on_failure then @name = on_failure.to_s call_and_notify options else acase = { :case => :configuration_error , :more => "on_failure call error : #{on_failure} command inexistant."} end end if on_success and exit_code == 0 then - puts " * On success callback : #{on_success}" + log.item "On success callback : #{on_success}" if @config.commands.keys.include? on_success then @name = on_success.to_s call_and_notify options else - $stderr.puts "on_success call error : configuration mistake : #{on_success} command inexistant." + acase = { :case => :configuration_error , :more => "on_success call error : #{on_failure} command inexistant."} end end else - puts " * Without callbacks sequences" + log.item "Without callbacks sequences" end acase[:exit_code] = exit_code return acase end end