sensu-plugins-sms 0.0.2 → 1.0.0

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: 07aa61acde03ba43418a4271b4bb65f66f818c79
4
- data.tar.gz: 0425078080db9b2af02fa76ec1f1dfdddf756a92
3
+ metadata.gz: cb5abea8f9abae772f67d9e82de2a63afdf8203d
4
+ data.tar.gz: 1a546ab4bcc78e885dd10a6a13923ed03e8e6a71
5
5
  SHA512:
6
- metadata.gz: 9e66e7e7f43d4f7e8cb5f0b6642434d6f32f42044ee09f380f9d62df057ebd9ee21e4562268ad4441344b54dc2f5bcd490bd1c78c8aed93903119bccf5ed2d9e
7
- data.tar.gz: 462ab9ca17a61932d85047fdf933c1939d3910f85ccb488095ad3a0b9b7d208acb7af72195fc70ba022d80b001cc233ad59bf50764f258cb8cc7c351814bedb7
6
+ metadata.gz: bcc853d7f3662e54970c6b7e65f843f45549ae31c2ed34b36897cef036d0970f4ffa8c62160c60a3afdcd91168134bdd9fc4eb938d884d148cf31826b621d7e7
7
+ data.tar.gz: b879d3db5fb247f7064f3a5409d986d9b85583bee6193f0f1192fd8344606b001f3bc888ccf5062a8fff26d227bcbc0f6efdc091f1ff3717ff2d0f4892bd0c43
@@ -3,14 +3,25 @@ This project adheres to [Semantic Versioning](http://semver.org/).
3
3
 
4
4
  This CHANGELOG follows the format listed at [Keep A Changelog](http://keepachangelog.com/)
5
5
 
6
- ## Unreleased][unreleased]
6
+ ## [Unreleased]
7
+
8
+ ## [1.0.0] - 2016-12-27
9
+ ### Added
10
+ - added playSMS handler
11
+ - added client name to sms message
12
+ - Ruby 2.3.0 support
13
+
14
+ ### Removed
15
+ - Ruby < 2.1 support
7
16
 
8
17
  ## [0.0.2] - 2015-07-14
9
18
  ### Changed
10
19
  - updated sensu-plugin gem to 1.2.0
11
20
 
12
- ## [0.0.1] - 2015-07-04
13
-
21
+ ## 0.0.1 - 2015-07-04
14
22
  ### Added
15
23
  - initial release
16
24
 
25
+ [Unreleased]: https://github.com/sensu-plugins/sensu-plugins-sms/compare/1.0.0...HEAD
26
+ [1.0.0]: https://github.com/sensu-plugins/sensu-plugins-sms/compare/0.0.2...1.0.0
27
+ [0.0.2]: https://github.com/sensu-plugins/sensu-plugins-sms/compare/0.0.1...0.0.2
data/README.md CHANGED
@@ -1,24 +1,124 @@
1
1
  ## Sensu-Plugins-sms
2
2
 
3
- [ ![Build Status](https://travis-ci.org/sensu-plugins/sensu-plugins-sms.svg?branch=master)](https://travis-ci.org/sensu-plugins/sensu-plugins-sms)
3
+ [![Build Status](https://travis-ci.org/sensu-plugins/sensu-plugins-sms.svg?branch=master)](https://travis-ci.org/sensu-plugins/sensu-plugins-sms)
4
4
  [![Gem Version](https://badge.fury.io/rb/sensu-plugins-sms.svg)](http://badge.fury.io/rb/sensu-plugins-sms)
5
5
  [![Code Climate](https://codeclimate.com/github/sensu-plugins/sensu-plugins-sms/badges/gpa.svg)](https://codeclimate.com/github/sensu-plugins/sensu-plugins-sms)
6
6
  [![Test Coverage](https://codeclimate.com/github/sensu-plugins/sensu-plugins-sms/badges/coverage.svg)](https://codeclimate.com/github/sensu-plugins/sensu-plugins-sms)
7
7
  [![Dependency Status](https://gemnasium.com/sensu-plugins/sensu-plugins-sms.svg)](https://gemnasium.com/sensu-plugins/sensu-plugins-sms)
8
- [ ![Codeship Status for sensu-plugins/sensu-plugins-sms](https://codeship.com/projects/ee460fc0-edc6-0132-1c07-5a51cb58650a/status?branch=master)](https://codeship.com/projects/84117)
9
8
 
10
9
  ## Functionality
11
10
 
12
11
  ## Files
13
12
  * bin/check-sms
13
+ * bin/handler-playsms
14
14
  * bin/metrics-sms-bulk
15
15
  * bin/metrics-sms-if
16
16
  * bin/metrics-sms
17
17
 
18
+
18
19
  ## Usage
19
20
 
21
+ ### FreeSMS
22
+
23
+ ```json
24
+ {
25
+ "free_sms_alert": {
26
+ "carrier_portal": {
27
+ // US carriers:
28
+ "att": "%number%@txt.att.net",
29
+ "verizon": "%number%@vtext.com",
30
+ "tmobile": "%number%@tmomail.net",
31
+ "sprint": "%number%@messaging.sprintpcs.com",
32
+ "virgin": "%number%@vmobl.com",
33
+ "uscellular": "%number%@email.uscc.net",
34
+ "nextel": "%number%@messaging.nextel.com",
35
+ "boost": "%number%@myboostmobile.com",
36
+ "alltel": "%number%@message.alltel.com",
37
+ // Canadian carriers:
38
+ "telus": "%number%@msg.telus.com",
39
+ "rogers": "%number%@pcs.rogers.com",
40
+ "fido": "%number%@fido.ca",
41
+ "bell": "%number%@txt.bell.ca",
42
+ "mts": "%number%@text.mtsmobility.com",
43
+ "kudo": "%number%@msg.koodomobile.com",
44
+ "presidentschoice": "%number%@txt.bell.ca",
45
+ "sasktel": "%number%@sms.sasktel.com",
46
+ "solo": "%number%@txt.bell.ca",
47
+ "virgincanada": "%number%@vmobile.ca",
48
+ // Dummy carrier (in case you actually want to send an email):
49
+ "email": "%number%"
50
+ },
51
+ "smtp_address": "localhost",
52
+ "smtp_domain": "localhost.localdomain",
53
+ "smtp_port": "25",
54
+ "mail_from": "sensu_alert@mydomain.com"
55
+ }
56
+ }
57
+ ```
58
+
59
+ ```json
60
+ {
61
+ "free_sms_alert": {
62
+ "alert_recipient_mappings": {
63
+
64
+ "ttutone": {
65
+ "name": "Tommy Tutone",
66
+ "carrier": "att",
67
+ "number": "800-867-5309"
68
+ },
69
+
70
+ "ghostbuster": {
71
+ "name": "Ghost Busters",
72
+ "carrier": "tmobile",
73
+ "number": "800-555-2368"
74
+ }
75
+ }
76
+ }
77
+ }
78
+ ```
79
+
80
+ ### playSMS
81
+
82
+ Create a json config file with your host, API user, and API secret.
83
+
84
+ ```json
85
+ {
86
+ "playsms": {
87
+ "host": "http://playsms.example.com",
88
+ "api_user": "sensu",
89
+ "api_secret": "XXXXX"
90
+ }
91
+ }
92
+ ```
93
+
94
+ Set your check to use the handler and define the playsms recipients.
95
+
96
+ ```json
97
+ {
98
+ "checks": {
99
+ "check-disk-usage": {
100
+ "command": "check-disk-usage.rb -w :::disk.warning|80::: -c :::disk.critical|90:::",
101
+ "subscribers": [
102
+ "production"
103
+ ],
104
+ "handlers": [
105
+ "playsms"
106
+ ],
107
+ "playsms": {
108
+ "recipients": [
109
+ "1234567890",
110
+ "@joe_smith",
111
+ "#operations"
112
+ ]
113
+ },
114
+ "interval": 60,
115
+ }
116
+ }
117
+ }
118
+ ```
119
+
20
120
  ## Installation
21
121
 
22
- [Installation and Setup](https://github.com/sensu-plugins/documentation/blob/master/user_docs/installation_instructions.md)
122
+ [Installation and Setup](http://sensu-plugins.io/docs/installation_instructions.html)
23
123
 
24
124
  ## Notes
@@ -64,7 +64,7 @@ class FreeSMSAlert < Sensu::Handler
64
64
  # This method sends the acutal email
65
65
  #
66
66
  def send_sms(user_id, mail_to, mail_from)
67
- mail_subject = "Alert:#{@event['check']['name']}"
67
+ mail_subject = "Alert:#{@event['check']['name']} #{@event['client']['name']}"
68
68
  mail_body = <<-BODY.gsub(/^\s+/, '')
69
69
  #{@event['check']['output']}
70
70
  BODY
@@ -105,11 +105,11 @@ class FreeSMSAlert < Sensu::Handler
105
105
  mail_to = nil
106
106
  number = nil
107
107
  info = settings['free_sms_alert']['alert_recipient_mappings'][user_id]
108
- if info['carrier'] == 'email'
109
- number = info['number']
110
- else
111
- number = info['number'].gsub(/[^0-9]/, '')
112
- end
108
+ number = if info['carrier'] == 'email'
109
+ info['number']
110
+ else
111
+ info['number'].gsub(/[^0-9]/, '')
112
+ end
113
113
  settings['free_sms_alert']['carrier_portal'].each do |carrier, address|
114
114
  mail_to = address.gsub(/%number%/, number) if info['carrier'] == carrier
115
115
  end
@@ -0,0 +1,93 @@
1
+ #! /usr/bin/env ruby
2
+ #
3
+ # handler-playsms.rb
4
+ #
5
+ # DESCRIPTION:
6
+ # Sensu handler for sending SMS messages through a playSMS gateway.
7
+ #
8
+ # OUTPUT:
9
+ # None unless there is an error
10
+ #
11
+ # PLATFORMS:
12
+ # Linux
13
+ #
14
+ # DEPENDENCIES:
15
+ # gem: sensu-handler
16
+ # gem: playsms
17
+ #
18
+ # USAGE:
19
+ #
20
+ # Configure your playSMS host, user, and secret here:
21
+ # playsms.json
22
+ #
23
+ # Recipients can be a single phone number, or a playSMS #groupcode or @username defined in the
24
+ # playSMS "phonebook" of your API user. Recipients are listed in the checks as an array of
25
+ # one or more of the above.
26
+ # e.g. [ '1234567890', '@joe_smith', '#operations' ]
27
+ #
28
+ # NOTES:
29
+ #
30
+ # LICENSE:
31
+ # Matt Mencel mr-mencel@wiu.edu
32
+ # Released under the same terms as Sensu (the MIT license); see LICENSE
33
+ # for details.
34
+ #
35
+
36
+ require 'date'
37
+ require 'playsms'
38
+ require 'sensu-handler'
39
+ require 'timeout'
40
+
41
+ # playSMS Handler
42
+ class PlaysmsAlert < Sensu::Handler
43
+ def send_sms(recipients, msg)
44
+ client = Playsms::Client.new(user: api_user, secret: api_secret, host: host)
45
+ client.send_message(to: recipients, msg: msg)
46
+ end
47
+
48
+ def api_user
49
+ settings['playsms']['api_user']
50
+ end
51
+
52
+ def api_secret
53
+ settings['playsms']['api_secret']
54
+ end
55
+
56
+ def action_to_string
57
+ @event['action'].eql?('resolve') ? 'RESOLVED' : 'ALERT'
58
+ end
59
+
60
+ def executed_at
61
+ Time.at(@event['check']['executed']).to_datetime
62
+ end
63
+
64
+ def host
65
+ settings['playsms']['host']
66
+ end
67
+
68
+ def msg
69
+ "#{action_to_string} - #{short_name}: #{output} #{executed_at}"
70
+ end
71
+
72
+ def output
73
+ @event['check']['output'].strip
74
+ end
75
+
76
+ def recipients
77
+ @event['check']['playsms']['recipients'].join ','
78
+ end
79
+
80
+ def short_name
81
+ @event['client']['name'] + '/' + @event['check']['name']
82
+ end
83
+
84
+ def handle
85
+ Timeout.timeout 10 do
86
+ send_sms(recipients, msg)
87
+ puts 'playsms -- sent alert for ' + short_name + ' to ' + recipients
88
+ end
89
+ rescue Timeout::Error
90
+ puts 'playsms -- timed out while attempting to ' + action_to_string + ' an incident -- '\
91
+ '(TO: ' + settings['playsms']['recipients'] + ' SUBJ: ' + subject + ')' + short_name
92
+ end
93
+ end
@@ -1,9 +1,9 @@
1
1
  module SensuPluginsSMS
2
2
  # This defines the version of the gem
3
3
  module Version
4
- MAJOR = 0
4
+ MAJOR = 1
5
5
  MINOR = 0
6
- PATCH = 2
6
+ PATCH = 0
7
7
 
8
8
  VER_STRING = [MAJOR, MINOR, PATCH].compact.join('.')
9
9
  end
metadata CHANGED
@@ -1,51 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sensu-plugins-sms
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sensu-Plugins and contributors
8
8
  autorequire:
9
9
  bindir: bin
10
- cert_chain:
11
- - |
12
- -----BEGIN CERTIFICATE-----
13
- MIIDgDCCAmigAwIBAgIBATANBgkqhkiG9w0BAQUFADBDMRIwEAYDVQQDDAltYXR0
14
- am9uZXMxGDAWBgoJkiaJk/IsZAEZFgh5aWVsZGJvdDETMBEGCgmSJomT8ixkARkW
15
- A2NvbTAeFw0xNTAxMjgyMTAyNTFaFw0xNjAxMjgyMTAyNTFaMEMxEjAQBgNVBAMM
16
- CW1hdHRqb25lczEYMBYGCgmSJomT8ixkARkWCHlpZWxkYm90MRMwEQYKCZImiZPy
17
- LGQBGRYDY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyTSzVYnO
18
- CLgyrIyT1mBQakArQyW8xhi6MlDqyzXHJGeERT790U6EgoBVeS4XoK0ptFZNR8Tf
19
- zko0w+Nv47TarSCgkPOaxY+mxWnAVR10dOmfeLr7huiMyps+YD56/EF2FqQ3jf/+
20
- qohENfKD91qy1ieEy+Fn7Pf74ltbNKUdkb9a9eFXQ0DQ4ip5vik7DzjQkUTj4lca
21
- k6ArwnmHX4YDhZoYtrQJ8jVktN0/+NtA40M5qkCYHNe5tUW25b/tKVYuioxG6b2Z
22
- oIzaZxRLxf6HVAWpCVRT/F5+/yjigkX4u++eYacfLGleXQzoK7BL65vHGMJygWEE
23
- 0TKGqFOrl/L0AQIDAQABo38wfTAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNV
24
- HQ4EFgQUEf6a8Td7MrSZc8ImbLFZAENPbz0wIQYDVR0RBBowGIEWbWF0dGpvbmVz
25
- QHlpZWxkYm90LmNvbTAhBgNVHRIEGjAYgRZtYXR0am9uZXNAeWllbGRib3QuY29t
26
- MA0GCSqGSIb3DQEBBQUAA4IBAQBbzXAYA3BVGw8DZ0YYoY1VHPNEcH5qPIApmHO8
27
- rvSmuUT0yMEi7u00H/5uHRFf4LleGT/+sTdyXKsNPGT9kdRuQEgwi+vf7Zfvd8aX
28
- UF/+4VkEYf/8rV8Ere6u2QaWPgApdMV6JjKr1fAwCTd8AuGXNaWItiPPMseSQzLJ
29
- JKP4hVvbc1d+oS925B1lcBiqn2aYvElbyNAVmQPywNNqkWmvtlqj9ZVJfV5HQLdu
30
- 8sHuVruarogxxKPBzlL2is4EUb6oN/RdpGx2l4254+nyR+abg//Ed27Ym0PkB4lk
31
- HP0m8WSjZmFr109pE/sVsM5jtOCvogyujQOjNVGN4gz1wwPr
32
- -----END CERTIFICATE-----
33
- date: 2015-07-14 00:00:00.000000000 Z
10
+ cert_chain: []
11
+ date: 2016-12-28 00:00:00.000000000 Z
34
12
  dependencies:
35
13
  - !ruby/object:Gem::Dependency
36
14
  name: sensu-plugin
37
15
  requirement: !ruby/object:Gem::Requirement
38
16
  requirements:
39
- - - '='
17
+ - - "~>"
40
18
  - !ruby/object:Gem::Version
41
- version: 1.2.0
19
+ version: '1.2'
42
20
  type: :runtime
43
21
  prerelease: false
44
22
  version_requirements: !ruby/object:Gem::Requirement
45
23
  requirements:
46
- - - '='
24
+ - - "~>"
47
25
  - !ruby/object:Gem::Version
48
- version: 1.2.0
26
+ version: '1.2'
49
27
  - !ruby/object:Gem::Dependency
50
28
  name: mail
51
29
  requirement: !ruby/object:Gem::Requirement
@@ -60,6 +38,20 @@ dependencies:
60
38
  - - '='
61
39
  - !ruby/object:Gem::Version
62
40
  version: 2.6.3
41
+ - !ruby/object:Gem::Dependency
42
+ name: playsms
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '='
46
+ - !ruby/object:Gem::Version
47
+ version: 0.0.1
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '='
53
+ - !ruby/object:Gem::Version
54
+ version: 0.0.1
63
55
  - !ruby/object:Gem::Dependency
64
56
  name: bundler
65
57
  requirement: !ruby/object:Gem::Requirement
@@ -120,16 +112,16 @@ dependencies:
120
112
  name: rubocop
121
113
  requirement: !ruby/object:Gem::Requirement
122
114
  requirements:
123
- - - '='
115
+ - - "~>"
124
116
  - !ruby/object:Gem::Version
125
- version: '0.30'
117
+ version: 0.40.0
126
118
  type: :development
127
119
  prerelease: false
128
120
  version_requirements: !ruby/object:Gem::Requirement
129
121
  requirements:
130
- - - '='
122
+ - - "~>"
131
123
  - !ruby/object:Gem::Version
132
- version: '0.30'
124
+ version: 0.40.0
133
125
  - !ruby/object:Gem::Dependency
134
126
  name: rspec
135
127
  requirement: !ruby/object:Gem::Requirement
@@ -190,6 +182,7 @@ description: Sensu sms plugins
190
182
  email: "<sensu-users@googlegroups.com>"
191
183
  executables:
192
184
  - handler-freesmsalert.rb
185
+ - handler-playsms.rb
193
186
  extensions: []
194
187
  extra_rdoc_files: []
195
188
  files:
@@ -197,6 +190,7 @@ files:
197
190
  - LICENSE
198
191
  - README.md
199
192
  - bin/handler-freesmsalert.rb
193
+ - bin/handler-playsms.rb
200
194
  - lib/sensu-plugins-sms.rb
201
195
  - lib/sensu-plugins-sms/version.rb
202
196
  homepage: https://github.com/sensu-plugins/sensu-plugins-sms
@@ -217,7 +211,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
217
211
  requirements:
218
212
  - - ">="
219
213
  - !ruby/object:Gem::Version
220
- version: 1.9.3
214
+ version: 2.1.0
221
215
  required_rubygems_version: !ruby/object:Gem::Requirement
222
216
  requirements:
223
217
  - - ">="
@@ -225,7 +219,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
225
219
  version: '0'
226
220
  requirements: []
227
221
  rubyforge_project:
228
- rubygems_version: 2.4.6
222
+ rubygems_version: 2.4.5
229
223
  signing_key:
230
224
  specification_version: 4
231
225
  summary: Sensu plugins for sms
@@ -1,2 +0,0 @@
1
- ��_�9�o�2���L��"-3�AD��w�9Ͼ���T�=�� �wdZ��thg�������Y�>N(,���2�]Ҕt
2
- qH�օ���`�\%�7ź�%�[�~�>�u����X�#Z�U7��,���i@�$YT�� �է�w��spXt�>�&��M�u�D�`!�i�`����H�g��j"�V�k��l|�o���
data.tar.gz.sig DELETED
Binary file
metadata.gz.sig DELETED
Binary file