sensu 0.22.0-java → 0.22.1-java
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 +4 -4
- data/CHANGELOG.md +12 -0
- data/lib/sensu/api/process.rb +7 -7
- data/lib/sensu/client/process.rb +3 -3
- data/lib/sensu/client/socket.rb +4 -1
- data/lib/sensu/constants.rb +3 -3
- data/lib/sensu/daemon.rb +3 -3
- data/lib/sensu/server/filter.rb +22 -14
- data/lib/sensu/server/process.rb +59 -42
- data/sensu.gemspec +3 -3
- metadata +8 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c651d2f52905f365c70aca036d7f2d20664f85b7
|
4
|
+
data.tar.gz: 93699da175d7769f06d050fa310071a0126bb4c3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f5ec81b81a6b3a844e853fda4b1b49c9d08dacd16adb3ff4874bb22e84803c006f7cb55d2ee269f0a8edd2e01f44f7d380f8022ca92a7467c441ef7c28284b1a
|
7
|
+
data.tar.gz: 0b43edb919da5426f5416f198f1a5ddf83a3fb59e27157884c0cabaa3655f3dc83f080650088df9ef4e23199eaac19f0b509939c17293959c8e46fa7d2ecaa13
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,15 @@
|
|
1
|
+
## 0.22.1 - 2016-03-01
|
2
|
+
|
3
|
+
### Other
|
4
|
+
|
5
|
+
Performance improvements. Using frozen constants for common values and
|
6
|
+
comparisons. Reduced the use of block arguments for callbacks.
|
7
|
+
|
8
|
+
Improved RabbitMQ transport channel error handling.
|
9
|
+
|
10
|
+
Fixed client signatures inspection/comparison when upgrading from a
|
11
|
+
previous release.
|
12
|
+
|
1
13
|
## 0.22.0 - 2016-01-29
|
2
14
|
|
3
15
|
### Features
|
data/lib/sensu/api/process.rb
CHANGED
@@ -65,11 +65,11 @@ module Sensu
|
|
65
65
|
@thin.start
|
66
66
|
end
|
67
67
|
|
68
|
-
def stop_server
|
68
|
+
def stop_server
|
69
69
|
@thin.stop
|
70
70
|
retry_until_true do
|
71
71
|
unless @thin.running?
|
72
|
-
|
72
|
+
yield
|
73
73
|
true
|
74
74
|
end
|
75
75
|
end
|
@@ -171,7 +171,7 @@ module Sensu
|
|
171
171
|
body ""
|
172
172
|
end
|
173
173
|
|
174
|
-
def read_data(rules={}
|
174
|
+
def read_data(rules={})
|
175
175
|
begin
|
176
176
|
data = MultiJson.load(env["rack.input"].read)
|
177
177
|
valid = rules.all? do |key, rule|
|
@@ -181,7 +181,7 @@ module Sensu
|
|
181
181
|
(rule[:regex] && (value =~ rule[:regex]) == 0)
|
182
182
|
end
|
183
183
|
if valid
|
184
|
-
|
184
|
+
yield(data)
|
185
185
|
else
|
186
186
|
bad_request!
|
187
187
|
end
|
@@ -210,7 +210,7 @@ module Sensu
|
|
210
210
|
end
|
211
211
|
end
|
212
212
|
|
213
|
-
def transport_info
|
213
|
+
def transport_info
|
214
214
|
info = {
|
215
215
|
:keepalives => {
|
216
216
|
:messages => nil,
|
@@ -227,11 +227,11 @@ module Sensu
|
|
227
227
|
info[:keepalives] = stats
|
228
228
|
settings.transport.stats("results") do |stats|
|
229
229
|
info[:results] = stats
|
230
|
-
|
230
|
+
yield(info)
|
231
231
|
end
|
232
232
|
end
|
233
233
|
else
|
234
|
-
|
234
|
+
yield(info)
|
235
235
|
end
|
236
236
|
end
|
237
237
|
|
data/lib/sensu/client/process.rb
CHANGED
@@ -369,13 +369,13 @@ module Sensu
|
|
369
369
|
# check the condition every 0.5 seconds until `true` is
|
370
370
|
# returned.
|
371
371
|
#
|
372
|
-
# @
|
372
|
+
# @yield [] callback/block called when there are no check
|
373
373
|
# executions in progress.
|
374
|
-
def complete_checks_in_progress
|
374
|
+
def complete_checks_in_progress
|
375
375
|
@logger.info("completing checks in progress", :checks_in_progress => @checks_in_progress)
|
376
376
|
retry_until_true do
|
377
377
|
if @checks_in_progress.empty?
|
378
|
-
|
378
|
+
yield
|
379
379
|
true
|
380
380
|
end
|
381
381
|
end
|
data/lib/sensu/client/socket.rb
CHANGED
@@ -68,6 +68,9 @@ module Sensu
|
|
68
68
|
# chunks of data in this mode, the connection is being closed.
|
69
69
|
MODE_REJECT = :REJECT
|
70
70
|
|
71
|
+
# PING request string, identifying a connection ping request.
|
72
|
+
PING_REQUEST = "ping".freeze
|
73
|
+
|
71
74
|
# Initialize instance variables that will be used throughout the
|
72
75
|
# lifetime of the connection. This method is called when the
|
73
76
|
# network connection has been established, and immediately after
|
@@ -184,7 +187,7 @@ module Sensu
|
|
184
187
|
#
|
185
188
|
# @param [String] data to be processed.
|
186
189
|
def process_data(data)
|
187
|
-
if data.strip ==
|
190
|
+
if data.strip == PING_REQUEST
|
188
191
|
@logger.debug("socket received ping")
|
189
192
|
respond("pong")
|
190
193
|
else
|
data/lib/sensu/constants.rb
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
module Sensu
|
2
2
|
unless defined?(Sensu::VERSION)
|
3
3
|
# Sensu release version.
|
4
|
-
VERSION = "0.22.
|
4
|
+
VERSION = "0.22.1".freeze
|
5
5
|
|
6
6
|
# Sensu check severities.
|
7
|
-
SEVERITIES = %w[ok warning critical unknown]
|
7
|
+
SEVERITIES = %w[ok warning critical unknown].freeze
|
8
8
|
|
9
9
|
# Process signals that trigger a Sensu process stop.
|
10
|
-
STOP_SIGNALS = %w[INT TERM]
|
10
|
+
STOP_SIGNALS = %w[INT TERM].freeze
|
11
11
|
end
|
12
12
|
end
|
data/lib/sensu/daemon.rb
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
require "rubygems"
|
2
2
|
|
3
3
|
gem "multi_json", "1.11.2"
|
4
|
-
gem "eventmachine", "1.0.
|
4
|
+
gem "eventmachine", "1.0.9.1"
|
5
5
|
|
6
6
|
gem "sensu-logger", "1.1.0"
|
7
7
|
gem "sensu-settings", "3.3.0"
|
8
8
|
gem "sensu-extension", "1.3.0"
|
9
9
|
gem "sensu-extensions", "1.4.0"
|
10
|
-
gem "sensu-transport", "
|
11
|
-
gem "sensu-spawn", "1.
|
10
|
+
gem "sensu-transport", "4.0.0"
|
11
|
+
gem "sensu-spawn", "1.7.0"
|
12
12
|
|
13
13
|
require "time"
|
14
14
|
require "uri"
|
data/lib/sensu/server/filter.rb
CHANGED
@@ -228,21 +228,24 @@ module Sensu
|
|
228
228
|
#
|
229
229
|
# @param filter_name [String]
|
230
230
|
# @param event [Hash]
|
231
|
-
# @
|
232
|
-
|
231
|
+
# @yield [filtered] callback/block called with a single
|
232
|
+
# parameter to indicate if the event was filtered.
|
233
|
+
# @yieldparam filtered [TrueClass,FalseClass] indicating if the
|
234
|
+
# event was filtered.
|
235
|
+
def event_filter(filter_name, event)
|
233
236
|
case
|
234
237
|
when @settings.filter_exists?(filter_name)
|
235
238
|
filter = @settings[:filters][filter_name]
|
236
239
|
matched = filter_attributes_match?(filter[:attributes], event)
|
237
|
-
|
240
|
+
yield(filter[:negate] ? matched : !matched)
|
238
241
|
when @extensions.filter_exists?(filter_name)
|
239
242
|
extension = @extensions[:filters][filter_name]
|
240
243
|
extension.safe_run(event) do |output, status|
|
241
|
-
|
244
|
+
yield(status == 0)
|
242
245
|
end
|
243
246
|
else
|
244
247
|
@logger.error("unknown filter", :filter_name => filter_name)
|
245
|
-
|
248
|
+
yield(false)
|
246
249
|
end
|
247
250
|
end
|
248
251
|
|
@@ -255,23 +258,26 @@ module Sensu
|
|
255
258
|
#
|
256
259
|
# @param handler [Hash] definition.
|
257
260
|
# @param event [Hash]
|
258
|
-
# @
|
259
|
-
|
261
|
+
# @yield [filtered] callback/block called with a single
|
262
|
+
# parameter to indicate if the event was filtered.
|
263
|
+
# @yieldparam filtered [TrueClass,FalseClass] indicating if the
|
264
|
+
# event was filtered.
|
265
|
+
def event_filtered?(handler, event)
|
260
266
|
if handler.has_key?(:filters) || handler.has_key?(:filter)
|
261
267
|
filter_list = Array(handler[:filters] || handler[:filter]).dup
|
262
268
|
filter = Proc.new do |filter_list|
|
263
269
|
filter_name = filter_list.shift
|
264
270
|
if filter_name.nil?
|
265
|
-
|
271
|
+
yield(false)
|
266
272
|
else
|
267
273
|
event_filter(filter_name, event) do |filtered|
|
268
|
-
filtered ?
|
274
|
+
filtered ? yield(true) : EM.next_tick { filter.call(filter_list) }
|
269
275
|
end
|
270
276
|
end
|
271
277
|
end
|
272
|
-
|
278
|
+
filter.call(filter_list)
|
273
279
|
else
|
274
|
-
|
280
|
+
yield(false)
|
275
281
|
end
|
276
282
|
end
|
277
283
|
|
@@ -283,8 +289,10 @@ module Sensu
|
|
283
289
|
#
|
284
290
|
# @param handler [Hash] definition.
|
285
291
|
# @param event [Hash]
|
286
|
-
# @
|
287
|
-
|
292
|
+
# @yield [event] callback/block called if the event has not been
|
293
|
+
# filtered.
|
294
|
+
# @yieldparam event [Hash]
|
295
|
+
def filter_event(handler, event)
|
288
296
|
details = {:handler => handler, :event => event}
|
289
297
|
filter_message = case
|
290
298
|
when handling_disabled?(event)
|
@@ -302,7 +310,7 @@ module Sensu
|
|
302
310
|
else
|
303
311
|
event_filtered?(handler, event) do |filtered|
|
304
312
|
unless filtered
|
305
|
-
|
313
|
+
yield(event)
|
306
314
|
else
|
307
315
|
@logger.info("event was filtered", details)
|
308
316
|
@handling_event_count -= 1 if @handling_event_count
|
data/lib/sensu/server/process.rb
CHANGED
@@ -13,6 +13,12 @@ module Sensu
|
|
13
13
|
|
14
14
|
attr_reader :is_leader, :handling_event_count
|
15
15
|
|
16
|
+
METRIC_CHECK_TYPE = "metric".freeze
|
17
|
+
|
18
|
+
EVENT_FLAPPING_ACTION = "flapping".freeze
|
19
|
+
|
20
|
+
DEFAULT_HANDLER_NAME = "default".freeze
|
21
|
+
|
16
22
|
# Create an instance of the Sensu server process, start the
|
17
23
|
# server within the EventMachine event loop, and set up server
|
18
24
|
# process signal traps (for stopping).
|
@@ -105,24 +111,25 @@ module Sensu
|
|
105
111
|
# used for the stored client data.
|
106
112
|
#
|
107
113
|
# @param client [Hash]
|
108
|
-
# @
|
109
|
-
#
|
110
|
-
#
|
111
|
-
#
|
112
|
-
|
114
|
+
# @yield [success] passes success status to optional
|
115
|
+
# callback/block.
|
116
|
+
# @yieldparam success [TrueClass,FalseClass] indicating if the
|
117
|
+
# client registry update was a success or the client data was
|
118
|
+
# discarded due to client signature mismatch.
|
119
|
+
def update_client_registry(client)
|
113
120
|
@logger.debug("updating client registry", :client => client)
|
114
121
|
client_key = "client:#{client[:name]}"
|
115
122
|
signature_key = "#{client_key}:signature"
|
116
123
|
@redis.setnx(signature_key, client[:signature]) do |created|
|
117
124
|
process_client_registration(client) if created
|
118
125
|
@redis.get(signature_key) do |signature|
|
119
|
-
if signature.empty? && client[:signature]
|
126
|
+
if (signature.nil? || signature.empty?) && client[:signature]
|
120
127
|
@redis.set(signature_key, client[:signature])
|
121
128
|
end
|
122
|
-
if signature.empty? || (client[:signature] == signature)
|
129
|
+
if signature.nil? || signature.empty? || (client[:signature] == signature)
|
123
130
|
@redis.set(client_key, MultiJson.dump(client)) do
|
124
131
|
@redis.sadd("clients", client[:name]) do
|
125
|
-
|
132
|
+
yield(true) if block_given?
|
126
133
|
end
|
127
134
|
end
|
128
135
|
else
|
@@ -131,7 +138,7 @@ module Sensu
|
|
131
138
|
:signature => signature
|
132
139
|
})
|
133
140
|
@logger.warn("not updating client in the registry", :client => client)
|
134
|
-
|
141
|
+
yield(false) if block_given?
|
135
142
|
end
|
136
143
|
end
|
137
144
|
end
|
@@ -218,9 +225,9 @@ module Sensu
|
|
218
225
|
#
|
219
226
|
# @param event [Hash]
|
220
227
|
def process_event(event)
|
221
|
-
log_level = event[:check][:type] ==
|
228
|
+
log_level = event[:check][:type] == METRIC_CHECK_TYPE ? :debug : :info
|
222
229
|
@logger.send(log_level, "processing event", :event => event)
|
223
|
-
handler_list = Array((event[:check][:handlers] || event[:check][:handler]) ||
|
230
|
+
handler_list = Array((event[:check][:handlers] || event[:check][:handler]) || DEFAULT_HANDLER_NAME)
|
224
231
|
handlers = derive_handlers(handler_list)
|
225
232
|
handlers.each do |handler|
|
226
233
|
@handling_event_count += 1
|
@@ -291,7 +298,7 @@ module Sensu
|
|
291
298
|
# @return [Hash] check with truncated output.
|
292
299
|
def truncate_check_output(check)
|
293
300
|
case check[:type]
|
294
|
-
when
|
301
|
+
when METRIC_CHECK_TYPE
|
295
302
|
output_lines = check[:output].split("\n")
|
296
303
|
output = output_lines.first || check[:output]
|
297
304
|
if output_lines.size > 1 || output.length > 255
|
@@ -312,9 +319,9 @@ module Sensu
|
|
312
319
|
#
|
313
320
|
# @param client [Hash]
|
314
321
|
# @param check [Hash]
|
315
|
-
# @
|
316
|
-
#
|
317
|
-
def store_check_result(client, check
|
322
|
+
# @yield [] callback/block called after the check data has been
|
323
|
+
# stored (history, etc).
|
324
|
+
def store_check_result(client, check)
|
318
325
|
@logger.debug("storing check result", :check => check)
|
319
326
|
@redis.sadd("result:#{client[:name]}", check[:name])
|
320
327
|
result_key = "#{client[:name]}:#{check[:name]}"
|
@@ -323,7 +330,7 @@ module Sensu
|
|
323
330
|
history_key = "history:#{result_key}"
|
324
331
|
@redis.rpush(history_key, check[:status]) do
|
325
332
|
@redis.ltrim(history_key, -21, -1)
|
326
|
-
|
333
|
+
yield
|
327
334
|
end
|
328
335
|
end
|
329
336
|
end
|
@@ -337,9 +344,14 @@ module Sensu
|
|
337
344
|
#
|
338
345
|
# @param client [Hash]
|
339
346
|
# @param check [Hash]
|
340
|
-
# @
|
341
|
-
# total state change
|
342
|
-
|
347
|
+
# @yield [history, total_state_change] callback/block to call
|
348
|
+
# with the check history and calculated total state change
|
349
|
+
# value.
|
350
|
+
# @yieldparam history [Array] containing the last 21 check
|
351
|
+
# result exit status codes.
|
352
|
+
# @yieldparam total_state_change [Float] percentage for the
|
353
|
+
# check history (exit status codes).
|
354
|
+
def check_history(client, check)
|
343
355
|
history_key = "history:#{client[:name]}:#{check[:name]}"
|
344
356
|
@redis.lrange(history_key, -21, -1) do |history|
|
345
357
|
total_state_change = 0
|
@@ -356,7 +368,7 @@ module Sensu
|
|
356
368
|
end
|
357
369
|
total_state_change = (state_changes.fdiv(20) * 100).to_i
|
358
370
|
end
|
359
|
-
|
371
|
+
yield(history, total_state_change)
|
360
372
|
end
|
361
373
|
end
|
362
374
|
|
@@ -380,7 +392,7 @@ module Sensu
|
|
380
392
|
# @return [TrueClass, FalseClass]
|
381
393
|
def check_flapping?(stored_event, check)
|
382
394
|
if check.has_key?(:low_flap_threshold) && check.has_key?(:high_flap_threshold)
|
383
|
-
was_flapping = stored_event && stored_event[:action] ==
|
395
|
+
was_flapping = stored_event && stored_event[:action] == EVENT_FLAPPING_ACTION
|
384
396
|
if was_flapping
|
385
397
|
check[:total_state_change] > check[:low_flap_threshold]
|
386
398
|
else
|
@@ -409,10 +421,11 @@ module Sensu
|
|
409
421
|
#
|
410
422
|
# @param client [Hash]
|
411
423
|
# @param check [Hash]
|
412
|
-
# @
|
413
|
-
# data if the event registry is updated, or
|
414
|
-
# type `:metric`.
|
415
|
-
|
424
|
+
# @yield callback [event] callback/block called with the
|
425
|
+
# resulting event data if the event registry is updated, or
|
426
|
+
# the check is of type `:metric`.
|
427
|
+
# @yieldparam event [Hash]
|
428
|
+
def update_event_registry(client, check)
|
416
429
|
@redis.hget("events:#{client[:name]}", check[:name]) do |event_json|
|
417
430
|
stored_event = event_json ? MultiJson.load(event_json) : nil
|
418
431
|
flapping = check_flapping?(stored_event, check)
|
@@ -429,18 +442,18 @@ module Sensu
|
|
429
442
|
event[:occurrences] = stored_event[:occurrences] + 1
|
430
443
|
end
|
431
444
|
@redis.hset("events:#{client[:name]}", check[:name], MultiJson.dump(event)) do
|
432
|
-
|
445
|
+
yield(event)
|
433
446
|
end
|
434
447
|
elsif stored_event
|
435
448
|
event[:occurrences] = stored_event[:occurrences]
|
436
449
|
event[:action] = :resolve
|
437
450
|
unless check[:auto_resolve] == false && !check[:force_resolve]
|
438
451
|
@redis.hdel("events:#{client[:name]}", check[:name]) do
|
439
|
-
|
452
|
+
yield(event)
|
440
453
|
end
|
441
454
|
end
|
442
|
-
elsif check[:type] ==
|
443
|
-
|
455
|
+
elsif check[:type] == METRIC_CHECK_TYPE
|
456
|
+
yield(event)
|
444
457
|
end
|
445
458
|
event_bridges(event)
|
446
459
|
end
|
@@ -454,9 +467,10 @@ module Sensu
|
|
454
467
|
# `false`.
|
455
468
|
#
|
456
469
|
# @param name [Hash] to use for the client.
|
457
|
-
# @
|
458
|
-
# created client data.
|
459
|
-
|
470
|
+
# @yield [client] callback/block to be called with the
|
471
|
+
# dynamically created client data.
|
472
|
+
# @yieldparam client [Hash]
|
473
|
+
def create_client(name)
|
460
474
|
client = {
|
461
475
|
:name => name,
|
462
476
|
:address => "unknown",
|
@@ -465,7 +479,7 @@ module Sensu
|
|
465
479
|
:version => VERSION
|
466
480
|
}
|
467
481
|
update_client_registry(client) do
|
468
|
-
|
482
|
+
yield(client)
|
469
483
|
end
|
470
484
|
end
|
471
485
|
|
@@ -477,16 +491,17 @@ module Sensu
|
|
477
491
|
# result must have a matching signature or it is discarded.
|
478
492
|
#
|
479
493
|
# @param result [Hash] data.
|
480
|
-
# @
|
481
|
-
# retrieved from Redis, or dynamically created.
|
482
|
-
|
494
|
+
# @yield [client] callback/block to be called with client data,
|
495
|
+
# either retrieved from Redis, or dynamically created.
|
496
|
+
# @yieldparam client [Hash]
|
497
|
+
def retrieve_client(result)
|
483
498
|
client_key = result[:check][:source] || result[:client]
|
484
499
|
@redis.get("client:#{client_key}") do |client_json|
|
485
500
|
unless client_json.nil?
|
486
501
|
client = MultiJson.load(client_json)
|
487
502
|
if client[:signature]
|
488
503
|
if client[:signature] == result[:signature]
|
489
|
-
|
504
|
+
yield(client)
|
490
505
|
else
|
491
506
|
@logger.warn("invalid check result signature", {
|
492
507
|
:result => result,
|
@@ -495,10 +510,12 @@ module Sensu
|
|
495
510
|
@logger.warn("not retrieving client from the registry", :result => result)
|
496
511
|
end
|
497
512
|
else
|
498
|
-
|
513
|
+
yield(client)
|
499
514
|
end
|
500
515
|
else
|
501
|
-
create_client(client_key
|
516
|
+
create_client(client_key) do |client|
|
517
|
+
yield(client)
|
518
|
+
end
|
502
519
|
end
|
503
520
|
end
|
504
521
|
end
|
@@ -1014,15 +1031,15 @@ module Sensu
|
|
1014
1031
|
# is complete, when it is equal to `0`. The provided callback is
|
1015
1032
|
# called when handling is complete.
|
1016
1033
|
#
|
1017
|
-
# @
|
1034
|
+
# @yield [] callback/block to call when event handling is
|
1018
1035
|
# complete.
|
1019
|
-
def complete_event_handling
|
1036
|
+
def complete_event_handling
|
1020
1037
|
@logger.info("completing event handling in progress", {
|
1021
1038
|
:handling_event_count => @handling_event_count
|
1022
1039
|
})
|
1023
1040
|
retry_until_true do
|
1024
1041
|
if @handling_event_count == 0
|
1025
|
-
|
1042
|
+
yield
|
1026
1043
|
true
|
1027
1044
|
end
|
1028
1045
|
end
|
data/sensu.gemspec
CHANGED
@@ -16,13 +16,13 @@ Gem::Specification.new do |s|
|
|
16
16
|
s.add_dependency "json" if RUBY_VERSION < "1.9"
|
17
17
|
s.add_dependency "multi_json", "1.11.2"
|
18
18
|
s.add_dependency "uuidtools", "2.1.5"
|
19
|
-
s.add_dependency "eventmachine", "1.0.
|
19
|
+
s.add_dependency "eventmachine", "1.0.9.1"
|
20
20
|
s.add_dependency "sensu-logger", "1.1.0"
|
21
21
|
s.add_dependency "sensu-settings", "3.3.0"
|
22
22
|
s.add_dependency "sensu-extension", "1.3.0"
|
23
23
|
s.add_dependency "sensu-extensions", "1.4.0"
|
24
|
-
s.add_dependency "sensu-transport", "
|
25
|
-
s.add_dependency "sensu-spawn", "1.
|
24
|
+
s.add_dependency "sensu-transport", "4.0.0"
|
25
|
+
s.add_dependency "sensu-spawn", "1.7.0"
|
26
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"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sensu
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.22.
|
4
|
+
version: 0.22.1
|
5
5
|
platform: java
|
6
6
|
authors:
|
7
7
|
- Sean Porter
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date: 2016-
|
12
|
+
date: 2016-03-02 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: multi_json
|
@@ -45,12 +45,12 @@ dependencies:
|
|
45
45
|
requirements:
|
46
46
|
- - '='
|
47
47
|
- !ruby/object:Gem::Version
|
48
|
-
version: 1.0.
|
48
|
+
version: 1.0.9.1
|
49
49
|
requirement: !ruby/object:Gem::Requirement
|
50
50
|
requirements:
|
51
51
|
- - '='
|
52
52
|
- !ruby/object:Gem::Version
|
53
|
-
version: 1.0.
|
53
|
+
version: 1.0.9.1
|
54
54
|
prerelease: false
|
55
55
|
type: :runtime
|
56
56
|
- !ruby/object:Gem::Dependency
|
@@ -115,12 +115,12 @@ dependencies:
|
|
115
115
|
requirements:
|
116
116
|
- - '='
|
117
117
|
- !ruby/object:Gem::Version
|
118
|
-
version:
|
118
|
+
version: 4.0.0
|
119
119
|
requirement: !ruby/object:Gem::Requirement
|
120
120
|
requirements:
|
121
121
|
- - '='
|
122
122
|
- !ruby/object:Gem::Version
|
123
|
-
version:
|
123
|
+
version: 4.0.0
|
124
124
|
prerelease: false
|
125
125
|
type: :runtime
|
126
126
|
- !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.7.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.7.0
|
138
138
|
prerelease: false
|
139
139
|
type: :runtime
|
140
140
|
- !ruby/object:Gem::Dependency
|