lib/chef/handler/status_notifier.rb in chef-handler-status_notifier-0.3.0 vs lib/chef/handler/status_notifier.rb in chef-handler-status_notifier-0.4.0

- old
+ new

@@ -23,35 +23,49 @@ end def report if run_status.failed? msg = "Failure on #{node.name}: #{run_status.formatted_exception}" + status = :failed + send_to_hipchat(msg) else msg = "Chef run succesfully on #{node.name}" + status = :success end + send_to_slack(status, msg) send_to_hipchat(msg) - send_to_slack(msg) end private def send_to_hipchat(msg) return unless @hipchat_params[:enabled] hipchat[@hipchat_params[:room_name]].send(@hipchat_params[:username], msg, :notify => @hipchat_params[:notify]) end - def send_to_slack(msg) + def send_to_slack(status, msg) return unless @slack_params[:enabled] slack.channel = @slack_params[:channel] slack.username = @slack_params[:username] - slack.ping msg + slack.ping '', attachments: [slack_attachment(status, msg)] end def hipchat @hipchat ||= HipChat::Client.new(@hipchat_params[:api_token]) end def slack @slack ||= Slack::Notifier.new(@slack_params[:webhook_url]) + end + + def slack_attachment(status, msg) + color = (status == :failed)? "#ff0000" : "#36a64f" + { + fallback: "Opsworks status, #{msg}", + color: "#{color}", + author_name: "OpsworksBot (", + title: "status: #{status}", + text: "#{msg}" + } end end