sensu-plugins-slack 0.0.2 → 0.0.3

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: 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