forked from hipchat/hipchat-rb
-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy pathchef.rb
31 lines (26 loc) · 846 Bytes
/
chef.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
require 'hipchat'
#
# Provides a Chef exception handler so you can send information about
# chef-client failures to a HipChat room.
#
# Docs: http://wiki.opscode.com/display/chef/Exception+and+Report+Handlers
#
# Install - add the following to your client.rb:
# require 'hipchat/chef'
# hipchat_handler = HipChat::NotifyRoom.new("<api token>", "<room name>")
# exception_handlers << hipchat_handler
#
module HipChat
class NotifyRoom < Chef::Handler
def initialize(api_token, room_name, notify_users=false)
@api_token = api_token
@room_name = room_name
@notify_users = notify_users
end
def report
msg = "Failure on #{node.name}: #{run_status.formatted_exception}"
client = HipChat::Client.new(@api_token)
client[@room_name].send('Chef', msg, :notify => @notify_users)
end
end
end