sensu-plugins-sms 0.0.2 → 1.0.0

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