sensu-plugins-slack 0.0.2 → 0.0.3

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: 0e3626c5f54aba53dbaef991059efeb38764e0b5
4
- data.tar.gz: 3c37c199a813c5d25e76ede715310efa972e8ed5
3
+ metadata.gz: 70a744098aa871953bf98783dfd885a7cef8a199
4
+ data.tar.gz: 9bb145083bcf9c684d03ff2a9da4bd1e70c56bcb
5
5
  SHA512:
6
- metadata.gz: ee9b1c3af1f8dce5375b27392727ec7ba1368534de163d64e57bf9201431355ceba4c375c68f3634fdfe29e02434946e9cd326c551c81e45799d0daaf5b4155d
7
- data.tar.gz: 6b5dda23f0a4b38836eae92bd5af69129b7ef71f2fe1ac6c2b4bb427c3ff19bb777db90b19d314a99cd26106a9cc532af90b1e7d5b5adb8fdf2b347e819071ef
6
+ metadata.gz: 4c8d89bc5c0f568c810c0405722b155ee1a339f6790917e93fb7986e9c4626082f4462367769734a2bcc7f84added5619b642e439a6f3e5137ab76e6342545eb
7
+ data.tar.gz: 2e4c4f82842d60548c432d87775f2bd8f1fe3f1e191b649138e996696c1991a01c52cba8445a62a2571b2f3e19421cf0e249f7772694a36e6faed15550a7160f
checksums.yaml.gz.sig CHANGED
Binary file
data.tar.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -5,8 +5,11 @@ This CHANGELOG follows the format listed at [Keep A Changelog](http://keepachang
5
5
 
6
6
  ## Unreleased][unreleased]
7
7
 
8
- ## [0.0.2] - 2015-06-03
8
+ ## [0.0.3] - 2015-06-03
9
+ ### Added
10
+ -additional functionality to slack hander to improve generated output
9
11
 
12
+ ## [0.0.2] - 2015-06-03
10
13
  ### Fixed
11
14
  - added binstubs
12
15
 
@@ -14,6 +17,5 @@ This CHANGELOG follows the format listed at [Keep A Changelog](http://keepachang
14
17
  - removed cruft from /lib
15
18
 
16
19
  ## 0.0.1 - 2015-05-29
17
-
18
20
  ### Added
19
21
  - initial release
data/README.md CHANGED
@@ -20,7 +20,15 @@
20
20
  "channel": "#notifications-room, optional defaults to slack defined",
21
21
  "message_prefix": "optional prefix - can be used for mentions",
22
22
  "surround": "optional - can be used for bold(*), italics(_), code(`) and preformatted(```)",
23
- "bot_name": "optional bot name, defaults to slack defined"
23
+ "bot_name": "optional bot name, defaults to slack defined",
24
+ "template": "/some/path/to/template.erb",
25
+ "fields": [
26
+ "list",
27
+ "of",
28
+ "optional",
29
+ "clientkeys",
30
+ "to_render"
31
+ ]
24
32
  }
25
33
  }
26
34
  ```
data/bin/handler-slack.rb CHANGED
@@ -13,6 +13,7 @@
13
13
 
14
14
  require 'sensu-handler'
15
15
  require 'json'
16
+ require 'erubis'
16
17
 
17
18
  class Slack < Sensu::Handler
18
19
  option :json_config,
@@ -26,7 +27,11 @@ class Slack < Sensu::Handler
26
27
  end
27
28
 
28
29
  def slack_channel
29
- get_setting('channel')
30
+ if @event['check']['slack_channel']
31
+ @event['check']['slack_channel']
32
+ else
33
+ get_setting('channel')
34
+ end
30
35
  end
31
36
 
32
37
  def slack_message_prefix
@@ -41,6 +46,14 @@ class Slack < Sensu::Handler
41
46
  get_setting('surround')
42
47
  end
43
48
 
49
+ def message_template
50
+ get_setting('template')
51
+ end
52
+
53
+ def fields
54
+ get_setting('fields')
55
+ end
56
+
44
57
  def incident_key
45
58
  @event['client']['name'] + '/' + @event['check']['name']
46
59
  end
@@ -55,11 +68,20 @@ class Slack < Sensu::Handler
55
68
  end
56
69
 
57
70
  def build_description
58
- [
59
- @event['check']['output'],
60
- @event['client']['address'],
61
- @event['client']['subscriptions'].join(',')
62
- ].join(' : ')
71
+ if message_template && File.readable?(message_template)
72
+ template = File.read(message_template)
73
+ else
74
+ template = '''<%=
75
+ [
76
+ @event["check"]["output"],
77
+ @event["client"]["address"],
78
+ @event["client"]["subscriptions"].join(",")
79
+ ].join(" : ")
80
+ %>
81
+ '''
82
+ end
83
+ eruby = Erubis::Eruby.new(template)
84
+ eruby.result(binding)
63
85
  end
64
86
 
65
87
  def post_data(notice)
@@ -85,11 +107,28 @@ class Slack < Sensu::Handler
85
107
  end
86
108
 
87
109
  def payload(notice)
110
+ client_fields = []
111
+
112
+ unless fields.nil?
113
+ fields.each do |field|
114
+ # arbritary based on what I feel like
115
+ # -vjanelle
116
+ is_short = true unless @event['client'][field].length > 50
117
+ client_fields << {
118
+ title: field,
119
+ value: @event['client'][field],
120
+ short: is_short
121
+ }
122
+ end
123
+ end
124
+
88
125
  {
89
126
  icon_url: 'http://sensuapp.org/img/sensu_logo_large-c92d73db.png',
90
127
  attachments: [{
128
+ title: "#{@event['client']['address']} - #{translate_status}",
91
129
  text: [slack_message_prefix, notice].compact.join(' '),
92
- color: color
130
+ color: color,
131
+ fields: client_fields
93
132
  }]
94
133
  }.tap do |payload|
95
134
  payload[:channel] = slack_channel if slack_channel
@@ -110,4 +149,14 @@ class Slack < Sensu::Handler
110
149
  def check_status
111
150
  @event['check']['status']
112
151
  end
152
+
153
+ def translate_status
154
+ status = {
155
+ 0 => :OK,
156
+ 1 => :WARNING,
157
+ 2 => :CRITICAL,
158
+ 3 => :UNKNOWN
159
+ }
160
+ status[check_status.to_i]
161
+ end
113
162
  end
@@ -2,7 +2,7 @@ module SensuPluginsSlack
2
2
  module Version
3
3
  MAJOR = 0
4
4
  MINOR = 0
5
- PATCH = 2
5
+ PATCH = 3
6
6
 
7
7
  VER_STRING = [MAJOR, MINOR, PATCH].compact.join('.')
8
8
  end
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.0.2
4
+ version: 0.0.3
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-06-04 00:00:00.000000000 Z
33
+ date: 2015-06-27 00:00:00.000000000 Z
34
34
  dependencies:
35
35
  - !ruby/object:Gem::Dependency
36
36
  name: sensu-plugin
@@ -60,6 +60,20 @@ dependencies:
60
60
  - - '='
61
61
  - !ruby/object:Gem::Version
62
62
  version: 1.8.2
63
+ - !ruby/object:Gem::Dependency
64
+ name: erubis
65
+ requirement: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ type: :runtime
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - ">="
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
63
77
  - !ruby/object:Gem::Dependency
64
78
  name: codeclimate-test-reporter
65
79
  requirement: !ruby/object:Gem::Requirement
@@ -78,14 +92,14 @@ dependencies:
78
92
  name: rubocop
79
93
  requirement: !ruby/object:Gem::Requirement
80
94
  requirements:
81
- - - "~>"
95
+ - - '='
82
96
  - !ruby/object:Gem::Version
83
97
  version: '0.30'
84
98
  type: :development
85
99
  prerelease: false
86
100
  version_requirements: !ruby/object:Gem::Requirement
87
101
  requirements:
88
- - - "~>"
102
+ - - '='
89
103
  - !ruby/object:Gem::Version
90
104
  version: '0.30'
91
105
  - !ruby/object:Gem::Dependency
metadata.gz.sig CHANGED
Binary file