sensu-plugins-slack 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: fa3ad254dff9a4bdacf22ac50e4c1bef87910fb4
4
- data.tar.gz: 7b09d2c2e40e949f9248c4b72b9818849a48d7a9
3
+ metadata.gz: d392b6780809c43dab85d04edde9c41e03d2da58
4
+ data.tar.gz: 3a42635cb3a3092876ce42217255e53058c70ac2
5
5
  SHA512:
6
- metadata.gz: 8aa5e19e94ce77ee7dad46b0609d57acdaade31620cd95b56ce9591261823590dcc5d72ef752f179faabf3c20edcc597d07b956b975afbac79612c2d58698a9b
7
- data.tar.gz: 53ca73e8bc885a05f6336b64aad8650f07bdaa1f32b40e9139b36fe32cd9ceeb2dec7344e442a028cf5a747c2ecc3d713621dc5a3ec3df9ee15efcfa20ec513f
6
+ metadata.gz: 533086cf8ebef42a623881de58d4afa928907cdaf041b7dd165e43decedae0bad09f5230e74185e24e3cfbb5b9abb5607a0f64745cbd3a608587b4969a3b1511
7
+ data.tar.gz: 21a3683747c1e22f1cc082ae73e62ffe584dc2b6d524b25e27bb0ed627c9eb016fb38e4273b172aa4ad693d52a2ac52d1a8f88be0fc581ba786d61dbe6725aac
checksums.yaml.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -5,6 +5,13 @@ This CHANGELOG follows the format listed at [Keep A Changelog](http://keepachang
5
5
 
6
6
  ## Unreleased
7
7
 
8
+ ## [0.1.1] - 2015-12-09
9
+ ### Changed
10
+ - Slack handler posts JSON content type and format to slack.
11
+ - Slack config supports icon_url and icon_emoji
12
+ ### Added
13
+ - add arguments to specify proxy settings
14
+
8
15
  ## [0.1.0] - 2015-11-12
9
16
  ### Added
10
17
  - New handler-slack-multichannel.rb handler for more complex multi-channel alerting to Slack
data/README.md CHANGED
@@ -23,6 +23,12 @@
23
23
  "surround": "optional - can be used for bold(*), italics(_), code(`) and preformatted(```)",
24
24
  "bot_name": "optional bot name, defaults to slack defined",
25
25
  "template": "/some/path/to/template.erb",
26
+ "proxy_address": "The HTTP proxy address (example: proxy.example.com)"
27
+ "proxy_port": "The HTTP proxy port (if there is a proxy)"
28
+ "proxy_username": "The HTTP proxy username (if there is a proxy)"
29
+ "proxy_password": "The HTTP proxy user password (if there is a proxy)"
30
+ "icon_url": "http://sensuapp.org/img/sensu_logo_large-c92d73db.png"
31
+ "icon_emoji": ":snowman:"
26
32
  "fields": [
27
33
  "list",
28
34
  "of",
data/bin/handler-slack.rb CHANGED
@@ -26,6 +26,14 @@ class Slack < Sensu::Handler
26
26
  get_setting('webhook_url')
27
27
  end
28
28
 
29
+ def slack_icon_emoji
30
+ get_setting('icon_emoji')
31
+ end
32
+
33
+ def slack_icon_url
34
+ get_setting('icon_url')
35
+ end
36
+
29
37
  def slack_channel
30
38
  @event['client']['slack_channel'] || @event['check']['slack_channel'] || get_setting('channel')
31
39
  end
@@ -50,6 +58,22 @@ class Slack < Sensu::Handler
50
58
  get_setting('fields')
51
59
  end
52
60
 
61
+ def proxy_address
62
+ get_setting('proxy_address')
63
+ end
64
+
65
+ def proxy_port
66
+ get_setting('proxy_port')
67
+ end
68
+
69
+ def proxy_username
70
+ get_setting('proxy_username')
71
+ end
72
+
73
+ def proxy_password
74
+ get_setting('proxy_password')
75
+ end
76
+
53
77
  def incident_key
54
78
  @event['client']['name'] + '/' + @event['check']['name']
55
79
  end
@@ -69,7 +93,7 @@ class Slack < Sensu::Handler
69
93
  else
70
94
  template = '''<%=
71
95
  [
72
- @event["check"]["output"],
96
+ @event["check"]["output"].gsub(\'"\', \'\\"\'),
73
97
  @event["client"]["address"],
74
98
  @event["client"]["subscriptions"].join(",")
75
99
  ].join(" : ")
@@ -82,12 +106,17 @@ class Slack < Sensu::Handler
82
106
 
83
107
  def post_data(notice)
84
108
  uri = URI(slack_webhook_url)
85
- http = Net::HTTP.new(uri.host, uri.port)
109
+ http = if proxy_address.nil?
110
+ Net::HTTP.new(uri.host, uri.port)
111
+ else
112
+ Net::HTTP::Proxy(proxy_address, proxy_port, proxy_username, proxy_password).new(uri.host, uri.port)
113
+ end
86
114
  http.use_ssl = true
87
115
 
88
- req = Net::HTTP::Post.new("#{uri.path}?#{uri.query}")
116
+ req = Net::HTTP::Post.new("#{uri.path}?#{uri.query}", 'Content-Type' => 'application/json')
89
117
  text = slack_surround ? slack_surround + notice + slack_surround : notice
90
- req.body = "payload=#{payload(text).to_json}"
118
+
119
+ req.body = payload(text).to_json
91
120
 
92
121
  response = http.request(req)
93
122
  verify_response(response)
@@ -119,7 +148,7 @@ class Slack < Sensu::Handler
119
148
  end
120
149
 
121
150
  {
122
- icon_url: 'http://sensuapp.org/img/sensu_logo_large-c92d73db.png',
151
+ icon_url: slack_icon_url ? slack_icon_url : 'http://sensuapp.org/img/sensu_logo_large-c92d73db.png',
123
152
  attachments: [{
124
153
  title: "#{@event['client']['address']} - #{translate_status}",
125
154
  text: [slack_message_prefix, notice].compact.join(' '),
@@ -129,6 +158,7 @@ class Slack < Sensu::Handler
129
158
  }.tap do |payload|
130
159
  payload[:channel] = slack_channel if slack_channel
131
160
  payload[:username] = slack_bot_name if slack_bot_name
161
+ payload[:icon_emoji] = slack_icon_emoji if slack_icon_emoji
132
162
  end
133
163
  end
134
164
 
@@ -2,7 +2,7 @@ module SensuPluginsSlack
2
2
  module Version
3
3
  MAJOR = 0
4
4
  MINOR = 1
5
- PATCH = 0
5
+ PATCH = 1
6
6
 
7
7
  VER_STRING = [MAJOR, MINOR, PATCH].compact.join('.')
8
8
  end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sensu-plugins-slack
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sensu-Plugins and contributors
@@ -30,7 +30,7 @@ cert_chain:
30
30
  8sHuVruarogxxKPBzlL2is4EUb6oN/RdpGx2l4254+nyR+abg//Ed27Ym0PkB4lk
31
31
  HP0m8WSjZmFr109pE/sVsM5jtOCvogyujQOjNVGN4gz1wwPr
32
32
  -----END CERTIFICATE-----
33
- date: 2015-11-13 00:00:00.000000000 Z
33
+ date: 2015-12-09 00:00:00.000000000 Z
34
34
  dependencies:
35
35
  - !ruby/object:Gem::Dependency
36
36
  name: erubis
metadata.gz.sig CHANGED
Binary file