sensu-plugins-slack 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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