sensu 0.18.0 → 0.18.1

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: f40b2747360259b89a5fccb733c3ef96494a7aa8
4
- data.tar.gz: 4d0f92630d049a57f94feb5fdf2fcc6efaabfdde
3
+ metadata.gz: 0c4b6e88fad200ce4a66173e385728a6107d62cc
4
+ data.tar.gz: de4f574f36b4e060a6c8135afbd5186e4a9ef96b
5
5
  SHA512:
6
- metadata.gz: 2b9d749b7dabff5b19365245c8d96e0f59e5cf48148eb7862ed80f74725fe01a247c881a14bb037cea8099ac643c9659b653a5b36148b9a49af243885b5c44f3
7
- data.tar.gz: b5b6f033eaa3e3eaedbf32c8a46dfac04b78d75e8a1b486b639ef1653c41af42ca3e0d5fddea2c7316e934d6ce6b3d679537495171df374900910e4b7da3fcf7
6
+ metadata.gz: 187cf3e05aeb12dfacdad053acb5433aa5d41c402d7627b14212fa30ecd34138d2df793c8bdb580ca9bb5190cabb2f6014469ceebfd42ab68b08af554b8aa297
7
+ data.tar.gz: 0dbe79dbbfdb6138ebf0faa47d3a5e22a704011c99fbd05699cec64f9496213ec0d729c26ba83666cc6390642655e1428ffa4599508242c57b70ab85585f89dd
data/CHANGELOG.md CHANGED
@@ -1,3 +1,21 @@
1
+ ## 0.18.1 - 2015-05-11
2
+
3
+ ### Other
4
+
5
+ Check results written to the Sensu client socket(s) now have a default
6
+ executed timestamp, equal to the current Unix/epoch time.
7
+
8
+ Check source is now validated for check results written to the Sensu
9
+ client socket(s), using the same regular expression as the configuration
10
+ attribute validator.
11
+
12
+ The latest versions of Ruby Sinatra and Async Sinatra are now used,
13
+ which include many improvements and bug fixes.
14
+
15
+ Added a caret to the beginning of API routes/endpoints that use regular
16
+ expressions, fixing a bug that caused the wrong route/endpoint to be
17
+ called, e.g. `/clients/client`.
18
+
1
19
  ## 0.18.0 - 2015-05-05
2
20
 
3
21
  ### Features
data/README.md CHANGED
@@ -5,7 +5,7 @@ A monitoring framework that aims to be simple, malleable, and scalable.
5
5
  [![Build Status](https://secure.travis-ci.org/sensu/sensu.png)](https://travis-ci.org/sensu/sensu)
6
6
 
7
7
  ## Documentation
8
- Please refer to the [Sensu Docs](http://docs.sensuapp.org/).
8
+ Please refer to the [Sensu Docs](http://sensuapp.org/docs/latest/overview).
9
9
 
10
10
  ## License
11
11
  Sensu is released under the [MIT license](https://raw.github.com/sensu/sensu/master/MIT-LICENSE.txt).
@@ -1,7 +1,7 @@
1
1
  require "sensu/daemon"
2
2
 
3
- gem "sinatra", "1.3.5"
4
- gem "async_sinatra", "1.0.0"
3
+ gem "sinatra", "1.4.6"
4
+ gem "async_sinatra", "1.2.0"
5
5
 
6
6
  unless RUBY_PLATFORM =~ /java/
7
7
  gem "thin", "1.5.0"
@@ -345,7 +345,7 @@ module Sensu
345
345
  end
346
346
  end
347
347
 
348
- aget %r{/clients?/([\w\.-]+)/?$} do |client_name|
348
+ aget %r{^/clients?/([\w\.-]+)/?$} do |client_name|
349
349
  settings.redis.get("client:#{client_name}") do |client_json|
350
350
  unless client_json.nil?
351
351
  body client_json
@@ -355,7 +355,7 @@ module Sensu
355
355
  end
356
356
  end
357
357
 
358
- aget %r{/clients/([\w\.-]+)/history/?$} do |client_name|
358
+ aget %r{^/clients/([\w\.-]+)/history/?$} do |client_name|
359
359
  response = Array.new
360
360
  settings.redis.smembers("result:#{client_name}") do |checks|
361
361
  unless checks.empty?
@@ -391,7 +391,7 @@ module Sensu
391
391
  end
392
392
  end
393
393
 
394
- adelete %r{/clients?/([\w\.-]+)/?$} do |client_name|
394
+ adelete %r{^/clients?/([\w\.-]+)/?$} do |client_name|
395
395
  settings.redis.get("client:#{client_name}") do |client_json|
396
396
  unless client_json.nil?
397
397
  settings.redis.hgetall("events:#{client_name}") do |events|
@@ -426,7 +426,7 @@ module Sensu
426
426
  body MultiJson.dump(settings.all_checks)
427
427
  end
428
428
 
429
- aget %r{/checks?/([\w\.-]+)/?$} do |check_name|
429
+ aget %r{^/checks?/([\w\.-]+)/?$} do |check_name|
430
430
  if settings.checks[check_name]
431
431
  response = settings.checks[check_name].merge(:name => check_name)
432
432
  body MultiJson.dump(response)
@@ -491,7 +491,7 @@ module Sensu
491
491
  end
492
492
  end
493
493
 
494
- aget %r{/events/([\w\.-]+)/?$} do |client_name|
494
+ aget %r{^/events/([\w\.-]+)/?$} do |client_name|
495
495
  response = Array.new
496
496
  settings.redis.hgetall("events:#{client_name}") do |events|
497
497
  events.each do |check_name, event_json|
@@ -501,7 +501,7 @@ module Sensu
501
501
  end
502
502
  end
503
503
 
504
- aget %r{/events?/([\w\.-]+)/([\w\.-]+)/?$} do |client_name, check_name|
504
+ aget %r{^/events?/([\w\.-]+)/([\w\.-]+)/?$} do |client_name, check_name|
505
505
  settings.redis.hgetall("events:#{client_name}") do |events|
506
506
  event_json = events[check_name]
507
507
  unless event_json.nil?
@@ -512,7 +512,7 @@ module Sensu
512
512
  end
513
513
  end
514
514
 
515
- adelete %r{/events?/([\w\.-]+)/([\w\.-]+)/?$} do |client_name, check_name|
515
+ adelete %r{^/events?/([\w\.-]+)/([\w\.-]+)/?$} do |client_name, check_name|
516
516
  settings.redis.hgetall("events:#{client_name}") do |events|
517
517
  if events.include?(check_name)
518
518
  resolve_event(events[check_name])
@@ -566,7 +566,7 @@ module Sensu
566
566
  end
567
567
  end
568
568
 
569
- aget %r{/aggregates/([\w\.-]+)/?$} do |check_name|
569
+ aget %r{^/aggregates/([\w\.-]+)/?$} do |check_name|
570
570
  settings.redis.smembers("aggregates:#{check_name}") do |aggregates|
571
571
  unless aggregates.empty?
572
572
  aggregates.reverse!
@@ -587,7 +587,7 @@ module Sensu
587
587
  end
588
588
  end
589
589
 
590
- adelete %r{/aggregates/([\w\.-]+)/?$} do |check_name|
590
+ adelete %r{^/aggregates/([\w\.-]+)/?$} do |check_name|
591
591
  settings.redis.smembers("aggregates:#{check_name}") do |aggregates|
592
592
  unless aggregates.empty?
593
593
  aggregates.each do |check_issued|
@@ -606,7 +606,7 @@ module Sensu
606
606
  end
607
607
  end
608
608
 
609
- aget %r{/aggregates?/([\w\.-]+)/([\w\.-]+)/?$} do |check_name, check_issued|
609
+ aget %r{^/aggregates?/([\w\.-]+)/([\w\.-]+)/?$} do |check_name, check_issued|
610
610
  result_set = "#{check_name}:#{check_issued}"
611
611
  settings.redis.hgetall("aggregate:#{result_set}") do |aggregate|
612
612
  unless aggregate.empty?
@@ -640,7 +640,7 @@ module Sensu
640
640
  end
641
641
  end
642
642
 
643
- apost %r{/stash(?:es)?/(.*)/?} do |path|
643
+ apost %r{^/stash(?:es)?/(.*)/?} do |path|
644
644
  read_data do |data|
645
645
  settings.redis.set("stash:#{path}", MultiJson.dump(data)) do
646
646
  settings.redis.sadd("stashes", path) do
@@ -650,7 +650,7 @@ module Sensu
650
650
  end
651
651
  end
652
652
 
653
- aget %r{/stash(?:es)?/(.*)/?} do |path|
653
+ aget %r{^/stash(?:es)?/(.*)/?} do |path|
654
654
  settings.redis.get("stash:#{path}") do |stash_json|
655
655
  unless stash_json.nil?
656
656
  body stash_json
@@ -660,7 +660,7 @@ module Sensu
660
660
  end
661
661
  end
662
662
 
663
- adelete %r{/stash(?:es)?/(.*)/?} do |path|
663
+ adelete %r{^/stash(?:es)?/(.*)/?} do |path|
664
664
  settings.redis.exists("stash:#{path}") do |stash_exists|
665
665
  if stash_exists
666
666
  settings.redis.srem("stashes", path) do
@@ -119,12 +119,18 @@ module Sensu
119
119
  unless check[:name] =~ /^[\w\.-]+$/
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] =~ /^[\w\.-]+$/
123
+ raise DataError, "check source must be a string and cannot contain spaces or special characters"
124
+ end
122
125
  unless check[:output].is_a?(String)
123
126
  raise DataError, "check output must be a string"
124
127
  end
125
128
  unless check[:status].is_a?(Integer)
126
129
  raise DataError, "check status must be an integer"
127
130
  end
131
+ unless check[:executed].is_a?(Integer)
132
+ raise DataError, "check executed timestamp must be an integer"
133
+ end
128
134
  end
129
135
 
130
136
  # Publish a check result to the Sensu transport.
@@ -149,6 +155,7 @@ module Sensu
149
155
  # @raise [DataError] if +check+ is invalid.
150
156
  def process_check_result(check)
151
157
  check[:status] ||= 0
158
+ check[:executed] ||= Time.now.to_i
152
159
  validate_check_result(check)
153
160
  publish_check_result(check)
154
161
  respond("ok")
@@ -1,7 +1,7 @@
1
1
  module Sensu
2
2
  unless defined?(Sensu::VERSION)
3
3
  # Sensu release version.
4
- VERSION = "0.18.0"
4
+ VERSION = "0.18.1"
5
5
 
6
6
  # Sensu check severities.
7
7
  SEVERITIES = %w[ok warning critical unknown]
data/sensu.gemspec CHANGED
@@ -7,7 +7,7 @@ Gem::Specification.new do |s|
7
7
  s.platform = RUBY_PLATFORM =~ /java/ ? Gem::Platform::JAVA : Gem::Platform::RUBY
8
8
  s.authors = ["Sean Porter", "Justin Kolberg"]
9
9
  s.email = ["portertech@gmail.com", "amdprophet@gmail.com"]
10
- s.homepage = "https://github.com/sensu/sensu"
10
+ s.homepage = "http://sensuapp.org"
11
11
  s.summary = "A monitoring framework"
12
12
  s.description = "A monitoring framework that aims to be simple, malleable, and scalable."
13
13
  s.license = "MIT"
@@ -25,8 +25,8 @@ Gem::Specification.new do |s|
25
25
  s.add_dependency "sensu-transport", "2.4.0"
26
26
  s.add_dependency "sensu-spawn", "1.1.0"
27
27
  s.add_dependency "em-redis-unified", "0.6.0"
28
- s.add_dependency "sinatra", "1.3.5"
29
- s.add_dependency "async_sinatra", "1.0.0"
28
+ s.add_dependency "sinatra", "1.4.6"
29
+ s.add_dependency "async_sinatra", "1.2.0"
30
30
  s.add_dependency "thin", "1.5.0" unless RUBY_PLATFORM =~ /java/
31
31
 
32
32
  s.add_development_dependency "rake", "~> 10.3"
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.18.0
4
+ version: 0.18.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sean Porter
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-05-06 00:00:00.000000000 Z
12
+ date: 2015-05-12 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: multi_json
@@ -171,28 +171,28 @@ dependencies:
171
171
  requirements:
172
172
  - - '='
173
173
  - !ruby/object:Gem::Version
174
- version: 1.3.5
174
+ version: 1.4.6
175
175
  type: :runtime
176
176
  prerelease: false
177
177
  version_requirements: !ruby/object:Gem::Requirement
178
178
  requirements:
179
179
  - - '='
180
180
  - !ruby/object:Gem::Version
181
- version: 1.3.5
181
+ version: 1.4.6
182
182
  - !ruby/object:Gem::Dependency
183
183
  name: async_sinatra
184
184
  requirement: !ruby/object:Gem::Requirement
185
185
  requirements:
186
186
  - - '='
187
187
  - !ruby/object:Gem::Version
188
- version: 1.0.0
188
+ version: 1.2.0
189
189
  type: :runtime
190
190
  prerelease: false
191
191
  version_requirements: !ruby/object:Gem::Requirement
192
192
  requirements:
193
193
  - - '='
194
194
  - !ruby/object:Gem::Version
195
- version: 1.0.0
195
+ version: 1.2.0
196
196
  - !ruby/object:Gem::Dependency
197
197
  name: thin
198
198
  requirement: !ruby/object:Gem::Requirement
@@ -282,7 +282,7 @@ files:
282
282
  - lib/sensu/server/socket.rb
283
283
  - lib/sensu/utilities.rb
284
284
  - sensu.gemspec
285
- homepage: https://github.com/sensu/sensu
285
+ homepage: http://sensuapp.org
286
286
  licenses:
287
287
  - MIT
288
288
  metadata: {}