Thanks again! It is great to use the puppet report yaml files!
here there is an example script that prints all resources statuses,
then it filters them by taking only the services,
then it filters them by taking only the services changed to running.
test.ruby
#!/usr/bin/ruby
require 'puppet'
filename = ARGV.first
report = YAML.load_file(filename)
rs = report.resource_statuses.values.sort_by{|r| r.resource}
puts "PRINT ALL RESOURCES STATUSES."
rs.each do |r|
puts "#{r.change_count} #{r.events.map {|e| e.previous_value}}
#{r.events.map {|e| e.desired_value}} #{r.resource}"
end
puts "PRINT ALL SERVICES."
services = rs.select{|r| r.resource_type == 'Service'}
services.each do |r|
puts "#{r.change_count} #{r.events.map {|e| e.previous_value}}
#{r.events.map {|e| e.desired_value}} #{r.resource}"
end
puts "PRINT ALL SERVICES CHANGED TO RUNNING."
services_changed_to_running = rs.select{|r| r.resource_type == 'Service' &&
r.change_count > 0 && r.events.index { |e| e.desired_value == :running } !=
nil}
services_changed_to_running.each do |r|
puts "#{r.change_count} #{r.events.map {|e| e.previous_value}}
#{r.events.map {|e| e.desired_value}} #{r.resource}"
end
example output:
$ test.ruby /var/opt/lib/pe-puppet/reports/test/201311261645.yaml
PRINT ALL RESOURCES STATUSES.
1 [:absent] [:directory] File[/var/app]
1 [:absent] [:file] File[/var/app/app.conf]
2 [0, "755"] [91, "775"] File[/var/log/tomcat6]
0 [] [] Filebucket[puppet]
1 [:absent] [:present] Group[release]
1 [:absent] [:present] Package[varnish]
0 [] [] Schedule[weekly]
1 [:stopped] [:running] Service[varnish]
0 [] [] Tidy[/etc/collectd.d/]
1 ["/sbin/nologin"] ["/bin/bash"] User[tomcat]
...
PRINT ALL SERVICES.
1 [:stopped] [:running] Service[collectd]
1 [:stopped] [:running] Service[logstash-agent]
1 [:true] [:false] Service[logstash]
1 [:stopped] [:running] Service[nginx]
0 [] [] Service[rsyslog]
1 [:stopped] [:running] Service[statsd]
1 [:false] [:true] Service[supervisord]
1 [:stopped] [:running] Service[varnish]
PRINT ALL SERVICES CHANGED TO RUNNING
1 [:stopped] [:running] Service[collectd]
1 [:stopped] [:running] Service[logstash-agent]
1 [:stopped] [:running] Service[nginx]
1 [:stopped] [:running] Service[statsd]
1 [:stopped] [:running] Service[varnish]
--
You received this message because you are subscribed to the Google Groups
"Puppet Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/puppet-users/c70db1f6-b133-4290-a8e1-827ea239028b%40googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.