1module MCollective 2 module Data 3 class Resource_data<Base 4 activate_when do 5 require 'mcollective/util/puppet_agent_mgr' 6 true 7 end 8 9 def sanitize_val(result_value, default_value) 10 if result_value.nil? 11 return default_value 12 end 13 result_value 14 end 15 16 17 query do |resource| 18 configfile = Config.instance.pluginconf.fetch("puppet.config", nil) 19 20 puppet_agent = Util::PuppetAgentMgr.manager(configfile) 21 summary = puppet_agent.load_summary 22 23 result[:managed] = puppet_agent.managing_resource?(resource) if resource 24 25 result[:out_of_sync_resources] = sanitize_val(summary["resources"].fetch("out_of_sync", 0), 0) 26 result[:failed_resources] = sanitize_val(summary["resources"].fetch("failed", 0), 0) 27 result[:corrected_resources] = sanitize_val(summary["resources"].fetch("corrective_change", 0), 0) 28 result[:changed_resources] = sanitize_val(summary["resources"].fetch("changed", 0), 0) 29 result[:total_resources] = sanitize_val(summary["resources"].fetch("total", 0), 0) 30 result[:total_time] = sanitize_val(summary["time"].fetch("total", 0), 0) 31 result[:config_retrieval_time] = sanitize_val(summary["time"].fetch("config_retrieval", 0), 0) 32 result[:lastrun] = Integer(sanitize_val(summary["time"].fetch("last_run", 0), 0)) 33 result[:since_lastrun] = Integer(Time.now.to_i - result[:lastrun]) 34 result[:config_version] = sanitize_val(summary["version"].fetch("config", "unknown"), "unknown") 35 end 36 end 37 end 38end 39