class Etoro::Utility::MCollective::Puppet
Public Instance Methods
check_run_status()
click to toggle source
# File lib/etoro/utility/mcollective/puppet.rb, line 33 def check_run_status @logger.info("Checking for Puppet run completion") exit_flag = false begin Timeout.timeout(@config[:timeout]) do until @last_run_puppet == {} @last_run_puppet.each do |host, lastrun| run = rpcclient('puppet', :chomp => true) run.identity_filter host run.progress = false results = run.last_run_summary results.each do |result| @logger.info("#{host} - Puppet last run id is: #{result[:data][:lastrun]}") if lastrun != result[:data][:lastrun] @logger.info("#{host} - run completed") @last_run_puppet.delete(host) @logger.info("#{result[:data]}") @logger.info("#{result[:data][:summary]['resources']['changed']} - changes were made on server.") if result[:data][:summary]['resources']['failed'] != 0 || result[:data][:summary]['resources']['changed'] == 0 @logger.error("#{host} - Puppet run failed, check Event Viewer log.") exit_flag = true end else @logger.info("#{host} - Puppet not complete yet...!") end end end sleep @config[:wait_between_checks] end end rescue Timeout::Error @logger.error("Puppet run timed out. Took more than #{@config[:timeout]} seconds") exit_flag = true end if exit_flag == true then @logger.error("Puppet run failed") raise "Puppet run failed" end end
execute()
click to toggle source
# File lib/etoro/utility/mcollective/puppet.rb, line 15 def execute if @config.has_key?(:tags) @mc.runonce(:tags => @config[:tags]) else @mc.runonce end sleep @config[:wait_for_status] self.check_run_status end
hosts()
click to toggle source
# File lib/etoro/utility/mcollective/puppet.rb, line 25 def hosts hosts = [] @last_run_puppet.each_key do |host| hosts.push host end hosts end
status()
click to toggle source
# File lib/etoro/utility/mcollective/puppet.rb, line 6 def status @last_run_puppet = {} @logger.info("Getting last puppet run information") @mc.last_run_summary.each do |result| @last_run_puppet[result[:sender]] = result[:data][:lastrun] @logger.info("#{result[:sender]} - Puppet last run: #{result[:data][:lastrun]}") end end