sensu 0.20.6-java → 0.21.0-java
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +45 -0
- data/{bin → exe}/sensu-api +0 -0
- data/{bin → exe}/sensu-client +0 -0
- data/exe/sensu-install +83 -0
- data/{bin → exe}/sensu-server +0 -0
- data/lib/sensu/api/process.rb +83 -36
- data/lib/sensu/client/socket.rb +2 -2
- data/lib/sensu/constants.rb +1 -1
- data/lib/sensu/daemon.rb +3 -3
- data/lib/sensu/redis.rb +1 -1
- data/lib/sensu/server/filter.rb +3 -3
- data/lib/sensu/server/process.rb +7 -6
- data/sensu.gemspec +7 -6
- metadata +16 -14
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ba8ef39150e8ccea80ed1c70c3505883adcd96ca
|
4
|
+
data.tar.gz: 9a68124c0830410ab045359d95d38bf386954927
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: de923be5fff12555e295791fb0fc50a57f89470affb79580b5e5347a37188688e3230d166f4c696c3c1dd4161cc4bf9b0af7086b82cb08268369a34271c64ce2
|
7
|
+
data.tar.gz: d077590556a9fea40603a0404b852b5f6eb34a21c331c22633b749d9e69faf6323b62b864b00871a0b9e0f66977ad84b0e97dbf58b43b186afccc8ec27c10496
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,48 @@
|
|
1
|
+
## 0.21.0 - 2015-11-13
|
2
|
+
|
3
|
+
### Features
|
4
|
+
|
5
|
+
Added a Sensu plugin installation tool, `sensu-install`, making it easier
|
6
|
+
to install Sensu community plugins. The `sensu-install` tool will use the
|
7
|
+
appropriate Ruby when installing plugins. The tool aims to produce verbose
|
8
|
+
and useful output to help when debugging plugin installation issues.
|
9
|
+
|
10
|
+
Added the Sensu API DELETE /results/:client/:check endpoint, supporting
|
11
|
+
check result deletion via the Sensu API. This feature allows users to
|
12
|
+
clean up "stale" check result data for checks that have been removed.
|
13
|
+
|
14
|
+
Added the Sensu API POST /results endpoint, supporting check result input
|
15
|
+
via the Sensu API. The JIT client feature added in 0.20 enabled this
|
16
|
+
functionality. Services that do not have access to a local Sensu client
|
17
|
+
socket can make use of this feature.
|
18
|
+
|
19
|
+
### Other
|
20
|
+
|
21
|
+
Improved the Sensu test suite to reduce the number of timeout triggered
|
22
|
+
failures. These changes make Sensu development much more pleasant.
|
23
|
+
|
24
|
+
Fixed a few inline documentation typos, e.g. sbuded -> subdued.
|
25
|
+
|
26
|
+
Moved the Sensu bins (e.g. `sensu-client`) from `bin` to `exe` to avoid
|
27
|
+
the conflict with Ruby bundler bin stubs.
|
28
|
+
|
29
|
+
Fixed Sensu API and client socket input validation, no longer accepting
|
30
|
+
multi-line values.
|
31
|
+
|
32
|
+
Fixed check request publishing for checks that make use of check
|
33
|
+
extensions, e.g. `"extension": "check_http_endpoints`.
|
34
|
+
|
35
|
+
Fixed the handler `"filters"` bug that caused Sensu to mutate handler
|
36
|
+
definitions, removing filters for successive executions.
|
37
|
+
|
38
|
+
Fixed Sensu API POST /request endpoint check request publishing to
|
39
|
+
round-robin client subscriptions.
|
40
|
+
|
41
|
+
Fixed the Windows job handle leak when spawning processes for checks.
|
42
|
+
|
43
|
+
Updated the Redis client library (em-redis-unified) to remove duplicate
|
44
|
+
Ruby hash key warnings.
|
45
|
+
|
1
46
|
## 0.20.6 - 2015-09-22
|
2
47
|
|
3
48
|
### Other
|
data/{bin → exe}/sensu-api
RENAMED
File without changes
|
data/{bin → exe}/sensu-client
RENAMED
File without changes
|
data/exe/sensu-install
ADDED
@@ -0,0 +1,83 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require "optparse"
|
4
|
+
|
5
|
+
module Sensu
|
6
|
+
class Install
|
7
|
+
class << self
|
8
|
+
def cli_options(arguments=ARGV)
|
9
|
+
options = {
|
10
|
+
:verbose => false,
|
11
|
+
:plugins => []
|
12
|
+
}
|
13
|
+
optparse = OptionParser.new do |opts|
|
14
|
+
opts.on("-h", "--help", "Display this message") do
|
15
|
+
puts opts
|
16
|
+
exit
|
17
|
+
end
|
18
|
+
opts.on("-v", "--verbose", "Enable verbose logging") do
|
19
|
+
options[:verbose] = true
|
20
|
+
end
|
21
|
+
opts.on("-p", "--plugin PLUGIN", "Install a Sensu PLUGIN") do |plugin|
|
22
|
+
options[:plugins] << plugin
|
23
|
+
end
|
24
|
+
opts.on("-P", "--plugins PLUGIN[,PLUGIN]", "PLUGIN or comma-delimited list of Sensu plugins to install") do |plugins|
|
25
|
+
options[:plugins].concat(plugins.split(","))
|
26
|
+
end
|
27
|
+
opts.on("-s", "--source SOURCE", "Install Sensu plugins from a custom SOURCE") do |source|
|
28
|
+
options[:source] = source
|
29
|
+
end
|
30
|
+
end
|
31
|
+
optparse.parse!(arguments)
|
32
|
+
options
|
33
|
+
end
|
34
|
+
|
35
|
+
def log(message)
|
36
|
+
puts "[SENSU-INSTALL] #{message}"
|
37
|
+
end
|
38
|
+
|
39
|
+
def install_plugins(plugins, options={})
|
40
|
+
log "installing Sensu plugins ..."
|
41
|
+
log "provided Sensu plugins: #{plugins}" if options[:verbose]
|
42
|
+
gems = plugins.map do |plugin|
|
43
|
+
if plugin.start_with?("sensu-plugins-")
|
44
|
+
plugin
|
45
|
+
else
|
46
|
+
"sensu-plugins-#{plugin}"
|
47
|
+
end
|
48
|
+
end
|
49
|
+
log "Sensu plugin gems to be installed: #{gems}" if options[:verbose]
|
50
|
+
gem_options = "--no-ri --no-rdoc"
|
51
|
+
gem_options << " --verbose" if options[:verbose]
|
52
|
+
gem_options << " --source #{options[:source]}" if options[:source]
|
53
|
+
gems.each do |gem|
|
54
|
+
log "installing Sensu plugin gem: #{gem}"
|
55
|
+
gem_command = "gem install #{gem} #{gem_options}"
|
56
|
+
log gem_command if options[:verbose]
|
57
|
+
unless system(gem_command)
|
58
|
+
log "failed to install Sensu plugin gem: #{gem}"
|
59
|
+
log "you can run the sensu-install command again with --verbose for more info" unless options[:verbose]
|
60
|
+
log "please take note of any failure messages above"
|
61
|
+
log "make sure you have build tools installed (e.g. gcc)"
|
62
|
+
log "trying to determine Sensu plugin homepage for #{gem} ..."
|
63
|
+
clean_gem = gem.split(":").first
|
64
|
+
system("gem specification #{clean_gem} -r | grep homepage")
|
65
|
+
exit 2
|
66
|
+
end
|
67
|
+
end
|
68
|
+
log "successfully install Sensu plugins: #{plugins}"
|
69
|
+
end
|
70
|
+
|
71
|
+
def run
|
72
|
+
options = cli_options
|
73
|
+
unless options[:plugins].empty?
|
74
|
+
install_plugins(options[:plugins], options)
|
75
|
+
else
|
76
|
+
log "nothing to do"
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
Sensu::Install.run
|
data/{bin → exe}/sensu-server
RENAMED
File without changes
|
data/lib/sensu/api/process.rb
CHANGED
@@ -177,7 +177,8 @@ module Sensu
|
|
177
177
|
valid = rules.all? do |key, rule|
|
178
178
|
value = data[key]
|
179
179
|
(value.is_a?(rule[:type]) || (rule[:nil_ok] && value.nil?)) &&
|
180
|
-
|
180
|
+
(value.nil? || rule[:regex].nil?) ||
|
181
|
+
(rule[:regex] && (value =~ rule[:regex]) == 0)
|
181
182
|
end
|
182
183
|
if valid
|
183
184
|
callback.call(data)
|
@@ -190,7 +191,7 @@ module Sensu
|
|
190
191
|
end
|
191
192
|
|
192
193
|
def integer_parameter(parameter)
|
193
|
-
parameter =~
|
194
|
+
parameter =~ /\A[0-9]+\z/ ? parameter.to_i : nil
|
194
195
|
end
|
195
196
|
|
196
197
|
def pagination(items)
|
@@ -234,18 +235,12 @@ module Sensu
|
|
234
235
|
end
|
235
236
|
end
|
236
237
|
|
237
|
-
def
|
238
|
-
|
239
|
-
check =
|
240
|
-
|
241
|
-
:status => 0,
|
242
|
-
:issued => Time.now.to_i,
|
243
|
-
:executed => Time.now.to_i,
|
244
|
-
:force_resolve => true
|
245
|
-
)
|
246
|
-
check.delete(:history)
|
238
|
+
def publish_check_result(client_name, check)
|
239
|
+
check[:issued] = Time.now.to_i
|
240
|
+
check[:executed] = Time.now.to_i
|
241
|
+
check[:status] ||= 0
|
247
242
|
payload = {
|
248
|
-
:client =>
|
243
|
+
:client => client_name,
|
249
244
|
:check => check
|
250
245
|
}
|
251
246
|
settings.logger.info("publishing check result", :payload => payload)
|
@@ -258,6 +253,47 @@ module Sensu
|
|
258
253
|
end
|
259
254
|
end
|
260
255
|
end
|
256
|
+
|
257
|
+
def resolve_event(event_json)
|
258
|
+
event = MultiJson.load(event_json)
|
259
|
+
check = event[:check].merge(
|
260
|
+
:output => "Resolving on request of the API",
|
261
|
+
:status => 0,
|
262
|
+
:force_resolve => true
|
263
|
+
)
|
264
|
+
check.delete(:history)
|
265
|
+
publish_check_result(event[:client][:name], check)
|
266
|
+
end
|
267
|
+
|
268
|
+
def transport_publish_options(subscription, message)
|
269
|
+
_, raw_type = subscription.split(":", 2).reverse
|
270
|
+
case raw_type
|
271
|
+
when "direct", "roundrobin"
|
272
|
+
[:direct, subscription, message]
|
273
|
+
else
|
274
|
+
[:fanout, subscription, message]
|
275
|
+
end
|
276
|
+
end
|
277
|
+
|
278
|
+
def publish_check_request(check)
|
279
|
+
payload = check.merge(:issued => Time.now.to_i)
|
280
|
+
settings.logger.info("publishing check request", {
|
281
|
+
:payload => payload,
|
282
|
+
:subscribers => check[:subscribers]
|
283
|
+
})
|
284
|
+
check[:subscribers].each do |subscription|
|
285
|
+
options = transport_publish_options(subscription.to_s, MultiJson.dump(payload))
|
286
|
+
settings.transport.publish(*options) do |info|
|
287
|
+
if info[:error]
|
288
|
+
settings.logger.error("failed to publish check request", {
|
289
|
+
:subscription => subscription,
|
290
|
+
:payload => payload,
|
291
|
+
:error => info[:error].to_s
|
292
|
+
})
|
293
|
+
end
|
294
|
+
end
|
295
|
+
end
|
296
|
+
end
|
261
297
|
end
|
262
298
|
|
263
299
|
before do
|
@@ -311,7 +347,7 @@ module Sensu
|
|
311
347
|
|
312
348
|
apost "/clients/?" do
|
313
349
|
rules = {
|
314
|
-
:name => {:type => String, :nil_ok => false, :regex =>
|
350
|
+
:name => {:type => String, :nil_ok => false, :regex => /\A[\w\.-]+\z/},
|
315
351
|
:address => {:type => String, :nil_ok => false},
|
316
352
|
:subscriptions => {:type => Array, :nil_ok => false}
|
317
353
|
}
|
@@ -459,28 +495,11 @@ module Sensu
|
|
459
495
|
}
|
460
496
|
read_data(rules) do |data|
|
461
497
|
if settings.checks[data[:check]]
|
462
|
-
check = settings.checks[data[:check]]
|
463
|
-
|
464
|
-
|
465
|
-
|
466
|
-
|
467
|
-
:issued => Time.now.to_i
|
468
|
-
}
|
469
|
-
settings.logger.info("publishing check request", {
|
470
|
-
:payload => payload,
|
471
|
-
:subscribers => subscribers
|
472
|
-
})
|
473
|
-
subscribers.uniq.each do |exchange_name|
|
474
|
-
settings.transport.publish(:fanout, exchange_name.to_s, MultiJson.dump(payload)) do |info|
|
475
|
-
if info[:error]
|
476
|
-
settings.logger.error("failed to publish check request", {
|
477
|
-
:exchange_name => exchange_name,
|
478
|
-
:payload => payload,
|
479
|
-
:error => info[:error].to_s
|
480
|
-
})
|
481
|
-
end
|
482
|
-
end
|
483
|
-
end
|
498
|
+
check = settings.checks[data[:check]].dup
|
499
|
+
check[:name] = data[:check]
|
500
|
+
check[:subscribers] ||= Array.new
|
501
|
+
check[:subscribers] = data[:subscribers] if data[:subscribers]
|
502
|
+
publish_check_request(check)
|
484
503
|
issued!
|
485
504
|
else
|
486
505
|
not_found!
|
@@ -743,6 +762,19 @@ module Sensu
|
|
743
762
|
end
|
744
763
|
end
|
745
764
|
|
765
|
+
apost "/results/?" do
|
766
|
+
rules = {
|
767
|
+
:name => {:type => String, :nil_ok => false, :regex => /\A[\w\.-]+\z/},
|
768
|
+
:output => {:type => String, :nil_ok => false},
|
769
|
+
:status => {:type => Integer, :nil_ok => true},
|
770
|
+
:source => {:type => String, :nil_ok => true, :regex => /\A[\w\.-]+\z/}
|
771
|
+
}
|
772
|
+
read_data(rules) do |data|
|
773
|
+
publish_check_result("sensu-api", data)
|
774
|
+
issued!
|
775
|
+
end
|
776
|
+
end
|
777
|
+
|
746
778
|
aget "/results/?" do
|
747
779
|
response = Array.new
|
748
780
|
settings.redis.smembers("clients") do |clients|
|
@@ -807,6 +839,21 @@ module Sensu
|
|
807
839
|
end
|
808
840
|
end
|
809
841
|
end
|
842
|
+
|
843
|
+
adelete %r{^/results?/([\w\.-]+)/([\w\.-]+)/?$} do |client_name, check_name|
|
844
|
+
result_key = "result:#{client_name}:#{check_name}"
|
845
|
+
settings.redis.exists(result_key) do |result_exists|
|
846
|
+
if result_exists
|
847
|
+
settings.redis.srem("result:#{client_name}", check_name) do
|
848
|
+
settings.redis.del(result_key) do |result_json|
|
849
|
+
no_content!
|
850
|
+
end
|
851
|
+
end
|
852
|
+
else
|
853
|
+
not_found!
|
854
|
+
end
|
855
|
+
end
|
856
|
+
end
|
810
857
|
end
|
811
858
|
end
|
812
859
|
end
|
data/lib/sensu/client/socket.rb
CHANGED
@@ -116,10 +116,10 @@ module Sensu
|
|
116
116
|
#
|
117
117
|
# @param [Hash] check result to validate.
|
118
118
|
def validate_check_result(check)
|
119
|
-
unless check[:name] =~
|
119
|
+
unless check[:name] =~ /\A[\w\.-]+\z/
|
120
120
|
raise DataError, "check name must be a string and cannot contain spaces or special characters"
|
121
121
|
end
|
122
|
-
unless check[:source].nil? || check[:source] =~
|
122
|
+
unless check[:source].nil? || check[:source] =~ /\A[\w\.-]+\z/
|
123
123
|
raise DataError, "check source must be a string and cannot contain spaces or special characters"
|
124
124
|
end
|
125
125
|
unless check[:output].is_a?(String)
|
data/lib/sensu/constants.rb
CHANGED
data/lib/sensu/daemon.rb
CHANGED
@@ -5,10 +5,10 @@ gem "eventmachine", "1.0.8"
|
|
5
5
|
|
6
6
|
gem "sensu-logger", "1.1.0"
|
7
7
|
gem "sensu-settings", "3.1.0"
|
8
|
-
gem "sensu-extension", "1.
|
9
|
-
gem "sensu-extensions", "1.
|
8
|
+
gem "sensu-extension", "1.3.0"
|
9
|
+
gem "sensu-extensions", "1.4.0"
|
10
10
|
gem "sensu-transport", "3.3.0"
|
11
|
-
gem "sensu-spawn", "1.
|
11
|
+
gem "sensu-spawn", "1.6.0"
|
12
12
|
|
13
13
|
require "time"
|
14
14
|
require "uri"
|
data/lib/sensu/redis.rb
CHANGED
data/lib/sensu/server/filter.rb
CHANGED
@@ -179,7 +179,7 @@ module Sensu
|
|
179
179
|
# @return [TrueClass, FalseClass]
|
180
180
|
def eval_attribute_value(raw_eval_string, value)
|
181
181
|
begin
|
182
|
-
eval_string = raw_eval_string.gsub(
|
182
|
+
eval_string = raw_eval_string.gsub(/\Aeval:(\s+)?/, "")
|
183
183
|
!!Sandbox.eval(eval_string, value)
|
184
184
|
rescue => error
|
185
185
|
@logger.error("filter attribute eval error", {
|
@@ -258,7 +258,7 @@ module Sensu
|
|
258
258
|
# @param callback [Proc]
|
259
259
|
def event_filtered?(handler, event, &callback)
|
260
260
|
if handler.has_key?(:filters) || handler.has_key?(:filter)
|
261
|
-
filter_list = Array(handler[:filters] || handler[:filter])
|
261
|
+
filter_list = Array(handler[:filters] || handler[:filter]).dup
|
262
262
|
filter = Proc.new do |filter_list|
|
263
263
|
filter_name = filter_list.shift
|
264
264
|
if filter_name.nil?
|
@@ -278,7 +278,7 @@ module Sensu
|
|
278
278
|
# Attempt to filter an event for a handler. This method will
|
279
279
|
# check to see if handling is disabled, if the event action is
|
280
280
|
# handled, if the event check severity is handled, if the
|
281
|
-
# handler is
|
281
|
+
# handler is subdued, and if the event is filtered by any of the
|
282
282
|
# filters specified in the handler definition.
|
283
283
|
#
|
284
284
|
# @param handler [Hash] definition.
|
data/lib/sensu/server/process.rb
CHANGED
@@ -483,12 +483,12 @@ module Sensu
|
|
483
483
|
end
|
484
484
|
|
485
485
|
# Publish a check request to the transport. A check request is
|
486
|
-
#
|
487
|
-
#
|
488
|
-
# to a transport pipe, for each
|
489
|
-
# its definition, eg. "webserver".
|
490
|
-
# when publishing the check request
|
491
|
-
# pipes. Transport errors are logged.
|
486
|
+
# composed of a check `:name`, an `:issued` timestamp, a check
|
487
|
+
# `:command` if available, and a check `:extension if available.
|
488
|
+
# The check request is published to a transport pipe, for each
|
489
|
+
# of the check `:subscribers` in its definition, eg. "webserver".
|
490
|
+
# JSON serialization is used when publishing the check request
|
491
|
+
# payload to the transport pipes. Transport errors are logged.
|
492
492
|
#
|
493
493
|
# @param check [Hash] definition.
|
494
494
|
def publish_check_request(check)
|
@@ -498,6 +498,7 @@ module Sensu
|
|
498
498
|
}
|
499
499
|
payload[:command] = check[:command] if check.has_key?(:command)
|
500
500
|
payload[:source] = check[:source] if check.has_key?(:source)
|
501
|
+
payload[:extension] = check[:extension] if check.has_key?(:extension)
|
501
502
|
@logger.info("publishing check request", {
|
502
503
|
:payload => payload,
|
503
504
|
:subscribers => check[:subscribers]
|
data/sensu.gemspec
CHANGED
@@ -19,11 +19,11 @@ Gem::Specification.new do |s|
|
|
19
19
|
s.add_dependency "eventmachine", "1.0.8"
|
20
20
|
s.add_dependency "sensu-logger", "1.1.0"
|
21
21
|
s.add_dependency "sensu-settings", "3.1.0"
|
22
|
-
s.add_dependency "sensu-extension", "1.
|
23
|
-
s.add_dependency "sensu-extensions", "1.
|
22
|
+
s.add_dependency "sensu-extension", "1.3.0"
|
23
|
+
s.add_dependency "sensu-extensions", "1.4.0"
|
24
24
|
s.add_dependency "sensu-transport", "3.3.0"
|
25
|
-
s.add_dependency "sensu-spawn", "1.
|
26
|
-
s.add_dependency "em-redis-unified", "1.0.
|
25
|
+
s.add_dependency "sensu-spawn", "1.6.0"
|
26
|
+
s.add_dependency "em-redis-unified", "1.0.1"
|
27
27
|
s.add_dependency "sinatra", "1.4.6"
|
28
28
|
s.add_dependency "async_sinatra", "1.2.0"
|
29
29
|
s.add_dependency "thin", "1.6.3" unless RUBY_PLATFORM =~ /java/
|
@@ -32,7 +32,8 @@ Gem::Specification.new do |s|
|
|
32
32
|
s.add_development_dependency "rspec", "~> 3.0.0"
|
33
33
|
s.add_development_dependency "em-http-request", "~> 1.1"
|
34
34
|
|
35
|
-
s.files = Dir.glob("{
|
36
|
-
s.executables =
|
35
|
+
s.files = Dir.glob("{exe,lib}/**/*") + %w[sensu.gemspec README.md CHANGELOG.md MIT-LICENSE.txt]
|
36
|
+
s.executables = s.files.grep(%r{^exe/}) { |file| File.basename(file) }
|
37
|
+
s.bindir = "exe"
|
37
38
|
s.require_paths = ["lib"]
|
38
39
|
end
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sensu
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.21.0
|
5
5
|
platform: java
|
6
6
|
authors:
|
7
7
|
- Sean Porter
|
8
8
|
- Justin Kolberg
|
9
9
|
autorequire:
|
10
|
-
bindir:
|
10
|
+
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-
|
12
|
+
date: 2015-11-19 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: multi_json
|
@@ -87,12 +87,12 @@ dependencies:
|
|
87
87
|
requirements:
|
88
88
|
- - '='
|
89
89
|
- !ruby/object:Gem::Version
|
90
|
-
version: 1.
|
90
|
+
version: 1.3.0
|
91
91
|
requirement: !ruby/object:Gem::Requirement
|
92
92
|
requirements:
|
93
93
|
- - '='
|
94
94
|
- !ruby/object:Gem::Version
|
95
|
-
version: 1.
|
95
|
+
version: 1.3.0
|
96
96
|
prerelease: false
|
97
97
|
type: :runtime
|
98
98
|
- !ruby/object:Gem::Dependency
|
@@ -101,12 +101,12 @@ dependencies:
|
|
101
101
|
requirements:
|
102
102
|
- - '='
|
103
103
|
- !ruby/object:Gem::Version
|
104
|
-
version: 1.
|
104
|
+
version: 1.4.0
|
105
105
|
requirement: !ruby/object:Gem::Requirement
|
106
106
|
requirements:
|
107
107
|
- - '='
|
108
108
|
- !ruby/object:Gem::Version
|
109
|
-
version: 1.
|
109
|
+
version: 1.4.0
|
110
110
|
prerelease: false
|
111
111
|
type: :runtime
|
112
112
|
- !ruby/object:Gem::Dependency
|
@@ -129,12 +129,12 @@ dependencies:
|
|
129
129
|
requirements:
|
130
130
|
- - '='
|
131
131
|
- !ruby/object:Gem::Version
|
132
|
-
version: 1.
|
132
|
+
version: 1.6.0
|
133
133
|
requirement: !ruby/object:Gem::Requirement
|
134
134
|
requirements:
|
135
135
|
- - '='
|
136
136
|
- !ruby/object:Gem::Version
|
137
|
-
version: 1.
|
137
|
+
version: 1.6.0
|
138
138
|
prerelease: false
|
139
139
|
type: :runtime
|
140
140
|
- !ruby/object:Gem::Dependency
|
@@ -143,12 +143,12 @@ dependencies:
|
|
143
143
|
requirements:
|
144
144
|
- - '='
|
145
145
|
- !ruby/object:Gem::Version
|
146
|
-
version: 1.0.
|
146
|
+
version: 1.0.1
|
147
147
|
requirement: !ruby/object:Gem::Requirement
|
148
148
|
requirements:
|
149
149
|
- - '='
|
150
150
|
- !ruby/object:Gem::Version
|
151
|
-
version: 1.0.
|
151
|
+
version: 1.0.1
|
152
152
|
prerelease: false
|
153
153
|
type: :runtime
|
154
154
|
- !ruby/object:Gem::Dependency
|
@@ -226,15 +226,17 @@ email:
|
|
226
226
|
- portertech@gmail.com
|
227
227
|
- amdprophet@gmail.com
|
228
228
|
executables:
|
229
|
+
- sensu-install
|
229
230
|
- sensu-server
|
230
231
|
- sensu-client
|
231
232
|
- sensu-api
|
232
233
|
extensions: []
|
233
234
|
extra_rdoc_files: []
|
234
235
|
files:
|
235
|
-
-
|
236
|
-
-
|
237
|
-
-
|
236
|
+
- exe/sensu-install
|
237
|
+
- exe/sensu-server
|
238
|
+
- exe/sensu-client
|
239
|
+
- exe/sensu-api
|
238
240
|
- lib/sensu.rb
|
239
241
|
- lib/sensu/constants.rb
|
240
242
|
- lib/sensu/daemon.rb
|