sensu-plugins-particle 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/bin/handler-particle-device-function.rb +106 -0
- data/lib/sensu-plugins-particle/version.rb +1 -1
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f6468fec95a3e478ac6fba4eabef4269dc8a9a2a
|
4
|
+
data.tar.gz: ca7c2cd6bca51dd68c19c0604469491fc25be251
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d9eb434092b25247661571d9f90c915391fc02830548284b2b34f1a19b14b19e4908213443893be0f2eb66c94cea7e679cf3f52fb87e4c5cd9c44381c75d9fb6
|
7
|
+
data.tar.gz: c3937e29a7227a8e28dd92e8780b984f9aac59ccf923560711903a529ddc05746b645c181a110a4a9f6086e07df76a62ec93645f12e1abb60831850a69ccad1c
|
data/CHANGELOG.md
CHANGED
@@ -5,6 +5,10 @@ This CHANGELOG follows the format listed [here](https://github.com/sensu-plugins
|
|
5
5
|
|
6
6
|
## [Unreleased]
|
7
7
|
|
8
|
+
## 0.0.2 - 2018-07-15
|
9
|
+
### Added
|
10
|
+
- add handler-particle-device-function.rb
|
11
|
+
|
8
12
|
## 0.0.1 - 2018-07-15
|
9
13
|
### Added
|
10
14
|
- initial release: includes handler-particle-publish-event.rb
|
@@ -0,0 +1,106 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
# Copyright 2018 Jef Spaleta and contributors.
|
4
|
+
#
|
5
|
+
# Released under the same terms as Sensu (the MIT license); see LICENSE
|
6
|
+
# for details.
|
7
|
+
#
|
8
|
+
# In order to use this plugin, you must first configure a
|
9
|
+
# particle.io cloud api account
|
10
|
+
# You'll make use of the particle.io login information
|
11
|
+
#
|
12
|
+
|
13
|
+
require 'sensu-handler'
|
14
|
+
require 'particle'
|
15
|
+
require 'json'
|
16
|
+
|
17
|
+
class ParticleHandler < Sensu::Handler
|
18
|
+
option :particle_config_file,
|
19
|
+
description: 'Particle config JSON file location',
|
20
|
+
short: '-c CONFIG_FILE',
|
21
|
+
long: '--config_file CONFIG_FILE'
|
22
|
+
option :particle_user,
|
23
|
+
description: 'Particle user',
|
24
|
+
short: '-u USER',
|
25
|
+
long: '--user USER'
|
26
|
+
option :particle_password,
|
27
|
+
description: 'Particle password',
|
28
|
+
short: '-p PASSWORD',
|
29
|
+
long: '--password PASSWORD'
|
30
|
+
option :particle_token,
|
31
|
+
description: 'Particle access token',
|
32
|
+
short: '-t TOKEN',
|
33
|
+
long: '--token TOKEN',
|
34
|
+
default: ENV['PARTICLE_ACCESS_TOKEN']
|
35
|
+
option :particle_device,
|
36
|
+
description: 'Particle device id or device name',
|
37
|
+
short: '-d DEVICE',
|
38
|
+
long: '--device DEVICE'
|
39
|
+
option :particle_function,
|
40
|
+
description: 'Particle device function name',
|
41
|
+
short: '-f FUNCTION_NAME',
|
42
|
+
long: '--function FUNCTION_NAME'
|
43
|
+
option :particle_argument,
|
44
|
+
description: 'Particle device function argument',
|
45
|
+
short: '-a FUNCTION_ARGUMENT',
|
46
|
+
long: '--argument FUNCTION_ARGUMENT'
|
47
|
+
option :verbose,
|
48
|
+
description: 'Verbose output',
|
49
|
+
short: '-v',
|
50
|
+
long: '--verbose'
|
51
|
+
|
52
|
+
##
|
53
|
+
# Setup helper function to deal with configuration processing
|
54
|
+
##
|
55
|
+
def setup
|
56
|
+
if config.key?(:particle_config_file)
|
57
|
+
if File.readable?(config[:particle_config_file])
|
58
|
+
file = File.read(config[:particle_config_file])
|
59
|
+
config_hash = JSON.parse(file)
|
60
|
+
keys = %w[particle_user particle_password particle_token particle_device particle_function particle_argument]
|
61
|
+
keys.each do |key|
|
62
|
+
config[key.to_sym] = config_hash[key] if config_hash.key?(key)
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
unless (config[:particle_user] && config[:particle_password]) || config[:particle_token]
|
68
|
+
puts 'Must supply user and password or token, check --help message for more information'
|
69
|
+
exit 2
|
70
|
+
end
|
71
|
+
|
72
|
+
unless config[:particle_device]
|
73
|
+
puts 'Must supply particle device, check --help message for more information'
|
74
|
+
exit 2
|
75
|
+
end
|
76
|
+
|
77
|
+
unless config[:particle_function]
|
78
|
+
puts 'Must supply particle device function, check --help message for more information'
|
79
|
+
exit 2
|
80
|
+
end
|
81
|
+
|
82
|
+
return unless config[:verbose]
|
83
|
+
|
84
|
+
if config[:particle_token]
|
85
|
+
puts "Post Setup:: Token: #{config[:particle_token]}"
|
86
|
+
else
|
87
|
+
puts 'Post Setup:: Using Login'
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
def handle
|
92
|
+
setup
|
93
|
+
client = Particle::Client.new
|
94
|
+
client.access_token = config[:particle_token] if config[:particle_token]
|
95
|
+
client.login(config[:particle_user], config[:particle_password]) if config[:particle_user] && config[:particle_password]
|
96
|
+
|
97
|
+
device = client.device(config[:particle_device])
|
98
|
+
device.ping
|
99
|
+
|
100
|
+
result = device.call(config[:particle_function], config[:particle_argument])
|
101
|
+
exit result
|
102
|
+
rescue Particle::Forbidden, Particle::BadRequest, Particle::MissingTokenError => e
|
103
|
+
puts "error: #{e.message}"
|
104
|
+
exit 3 # unknown
|
105
|
+
end
|
106
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sensu-plugins-particle
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jef Spaleta and contributors
|
@@ -156,24 +156,26 @@ dependencies:
|
|
156
156
|
requirements:
|
157
157
|
- - "~>"
|
158
158
|
- !ruby/object:Gem::Version
|
159
|
-
version:
|
159
|
+
version: 0.9.11
|
160
160
|
type: :development
|
161
161
|
prerelease: false
|
162
162
|
version_requirements: !ruby/object:Gem::Requirement
|
163
163
|
requirements:
|
164
164
|
- - "~>"
|
165
165
|
- !ruby/object:Gem::Version
|
166
|
-
version:
|
166
|
+
version: 0.9.11
|
167
167
|
description: Sensu plugins for interfacing with Particle.io Cloud API
|
168
168
|
email: "<jspaleta@gmail.com>"
|
169
169
|
executables:
|
170
170
|
- handler-particle-publish-event.rb
|
171
|
+
- handler-particle-device-function.rb
|
171
172
|
extensions: []
|
172
173
|
extra_rdoc_files: []
|
173
174
|
files:
|
174
175
|
- CHANGELOG.md
|
175
176
|
- LICENSE
|
176
177
|
- README.md
|
178
|
+
- bin/handler-particle-device-function.rb
|
177
179
|
- bin/handler-particle-publish-event.rb
|
178
180
|
- lib/sensu-plugins-particle.rb
|
179
181
|
- lib/sensu-plugins-particle/version.rb
|