aboutsummaryrefslogtreecommitdiffstats
path: root/modules
diff options
context:
space:
mode:
authorMichael Scherer <misc@mageia.org>2012-01-15 10:11:53 +0000
committerMichael Scherer <misc@mageia.org>2012-01-15 10:11:53 +0000
commit0f615f32ebfa86ed1ede83ebf346cead0caa7720 (patch)
tree2f4abc13136953ee62855afaed2168f5ca7476ed /modules
parenta11676dcfcbf97ffc5ab20b8cbd6724e18948682 (diff)
downloadpuppet-0f615f32ebfa86ed1ede83ebf346cead0caa7720.tar
puppet-0f615f32ebfa86ed1ede83ebf346cead0caa7720.tar.gz
puppet-0f615f32ebfa86ed1ede83ebf346cead0caa7720.tar.bz2
puppet-0f615f32ebfa86ed1ede83ebf346cead0caa7720.tar.xz
puppet-0f615f32ebfa86ed1ede83ebf346cead0caa7720.zip
add a module using ii for reporting, based on http://www.kartar.net/tag/reports/
Diffstat (limited to 'modules')
-rw-r--r--modules/report-irc_ii/lib/puppet/reports/irc_ii.rb25
1 files changed, 25 insertions, 0 deletions
diff --git a/modules/report-irc_ii/lib/puppet/reports/irc_ii.rb b/modules/report-irc_ii/lib/puppet/reports/irc_ii.rb
new file mode 100644
index 00000000..4d3dbb01
--- /dev/null
+++ b/modules/report-irc_ii/lib/puppet/reports/irc_ii.rb
@@ -0,0 +1,25 @@
+require 'puppet'
+require 'yaml'
+
+unless Puppet.version >= '2.6.5'
+ fail "This report processor requires Puppet version 2.6.5 or later"
+end
+
+Puppet::Reports.register_report(:irc_ii) do
+ configfile = File.join([File.dirname(Puppet.settings[:config]), "irc_ii.yaml"])
+ raise(Puppet::ParseError, "XMPP report config file #{configfile} not readable") unless File.exist?(configfile)
+
+ config = YAML.load_file(configfile)
+ II_PATH = config[:ii_path]
+
+ desc <<-DESC
+ Send notification of failed reports to an IRC channel, using a existing ii setup.
+ DESC
+
+ def process
+ if self.status == 'failed'
+ message = "Puppet run for #{self.host} #{self.status} at #{Time.now.asctime}."
+ Puppet::Util::SUIDManager.run_and_capture("echo #{message} > #{II_PATH}" , "nobody", "nogroup")
+ end
+ end
+end