sensu-settings 4.1.1 → 5.0.0

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: ec4eeffddb4f928ca7f35e4db5d455aa883d7569
4
- data.tar.gz: 3dfcc2c5db1020a95919534e3fae558ae9a557a0
3
+ metadata.gz: 945f0d180df7cf835f3fd0e94a998c7112a9f9f8
4
+ data.tar.gz: 51f3037a8a53f66dc1e1f91a2d25cabd15aacd15
5
5
  SHA512:
6
- metadata.gz: 01aca6eb9d8281cfa44433f6a468ecf7a206fec2bf922171210016884e1fb47a039d7e2a84cff9d4d48fb6dfa29ac118387e326a7e6ae7e9d31b8943fee75081
7
- data.tar.gz: b9ec4ea24e44e6079f7c2e99574fbe225b06a5054b853272012b5e80ef25933be5b247f0080dc9585851c816881771868631d5e3f4a5cb75f9f3e49e8b2d279e
6
+ metadata.gz: 7b4bf57d1d696f63120641a88f26691491648fccab35dffe7f88cc558e7dd61ff97c6ebdcb2586ae25944e4fbe23f3eb8c6c40c5e0b112214e0d089c2d21b9ff
7
+ data.tar.gz: 742dc56ea7fcd14fc57a6389bd2f9f09aa88af495aa4f38084d0244bc9be7498aaf6728a7f300cd593bcbbe11a46f409fa32714a77f2c7049b9a27363cb635eb
@@ -34,6 +34,11 @@ module Sensu
34
34
  # @return [Hash] settings.
35
35
  def default_settings
36
36
  default = {
37
+ :sensu => {
38
+ :spawn => {
39
+ :limit => 12
40
+ }
41
+ },
37
42
  :transport => {
38
43
  :name => "rabbitmq",
39
44
  :reconnect_on_error => true
@@ -22,8 +22,9 @@ module Sensu
22
22
  # @param service [String] sensu service to validate for.
23
23
  # @return [Array] validation failures.
24
24
  def run(settings, service=nil)
25
- validate_categories(settings)
25
+ validate_sensu(settings[:sensu])
26
26
  validate_transport(settings[:transport])
27
+ validate_categories(settings)
27
28
  case service
28
29
  when "client"
29
30
  validate_client(settings[:client])
@@ -1,3 +1,5 @@
1
+ require "sensu/settings/validators/sensu"
2
+ require "sensu/settings/validators/transport"
1
3
  require "sensu/settings/validators/subdue"
2
4
  require "sensu/settings/validators/check"
3
5
  require "sensu/settings/validators/filter"
@@ -5,11 +7,12 @@ require "sensu/settings/validators/mutator"
5
7
  require "sensu/settings/validators/handler"
6
8
  require "sensu/settings/validators/client"
7
9
  require "sensu/settings/validators/api"
8
- require "sensu/settings/validators/transport"
9
10
 
10
11
  module Sensu
11
12
  module Settings
12
13
  module Validators
14
+ include Sensu
15
+ include Transport
13
16
  include Subdue
14
17
  include Check
15
18
  include Filter
@@ -17,7 +20,6 @@ module Sensu
17
20
  include Handler
18
21
  include Client
19
22
  include API
20
- include Transport
21
23
  end
22
24
  end
23
25
  end
@@ -0,0 +1,37 @@
1
+ module Sensu
2
+ module Settings
3
+ module Validators
4
+ module Sensu
5
+ # Validate Sensu spawn.
6
+ # Validates: limit
7
+ #
8
+ # @param sensu [Hash] sensu definition.
9
+ def validate_sensu_spawn(sensu)
10
+ spawn = sensu[:spawn]
11
+ if is_a_hash?(spawn)
12
+ if is_an_integer?(spawn[:limit])
13
+ spawn[:limit] > 0 ||
14
+ invalid(sensu, "sensu spawn limit must be greater than 0")
15
+ else
16
+ invalid(sensu, "sensu spawn limit must be an integer")
17
+ end
18
+ else
19
+ invalid(sensu, "sensu spawn must be a hash")
20
+ end
21
+ end
22
+
23
+ # Validate a Sensu definition.
24
+ # Validates: spawn
25
+ #
26
+ # @param sensu [Hash] sensu definition.
27
+ def validate_sensu(sensu)
28
+ if is_a_hash?(sensu)
29
+ validate_sensu_spawn(sensu)
30
+ else
31
+ invalid(sensu, "sensu must be a hash")
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |spec|
4
4
  spec.name = "sensu-settings"
5
- spec.version = "4.1.1"
5
+ spec.version = "5.0.0"
6
6
  spec.authors = ["Sean Porter"]
7
7
  spec.email = ["portertech@gmail.com"]
8
8
  spec.summary = "The Sensu settings library, loader and validator"
@@ -21,7 +21,46 @@ describe "Sensu::Settings::Validator" do
21
21
  expect(reasons).to include("filters must be a hash")
22
22
  expect(reasons).to include("mutators must be a hash")
23
23
  expect(reasons).to include("handlers must be a hash")
24
- expect(reasons.size).to eq(5)
24
+ expect(reasons.size).to eq(6)
25
+ end
26
+
27
+ it "can validate a sensu definition" do
28
+ sensu = nil
29
+ @validator.validate_sensu(sensu)
30
+ expect(@validator.reset).to eq(1)
31
+ sensu = 1
32
+ @validator.validate_sensu(sensu)
33
+ expect(@validator.reset).to eq(1)
34
+ sensu = {}
35
+ @validator.validate_sensu(sensu)
36
+ expect(@validator.reset).to eq(1)
37
+ sensu[:spawn] = 1
38
+ @validator.validate_sensu(sensu)
39
+ expect(@validator.reset).to eq(1)
40
+ sensu[:spawn] = {}
41
+ @validator.validate_sensu(sensu)
42
+ expect(@validator.reset).to eq(1)
43
+ sensu[:spawn][:limit] = "1"
44
+ @validator.validate_sensu(sensu)
45
+ expect(@validator.reset).to eq(1)
46
+ sensu[:spawn][:limit] = 20
47
+ @validator.validate_sensu(sensu)
48
+ expect(@validator.reset).to eq(0)
49
+ end
50
+
51
+ it "can run, validating sensu" do
52
+ settings = {
53
+ :sensu => {
54
+ :spawn => {
55
+ :limit => "20"
56
+ }
57
+ }
58
+ }
59
+ @validator.run(settings)
60
+ expect(@validator.reset).to eq(6)
61
+ settings[:sensu][:spawn][:limit] = 20
62
+ @validator.run(settings)
63
+ expect(@validator.reset).to eq(5)
25
64
  end
26
65
 
27
66
  it "can validate a transport definition" do
@@ -52,10 +91,10 @@ describe "Sensu::Settings::Validator" do
52
91
  }
53
92
  }
54
93
  @validator.run(settings)
55
- expect(@validator.reset).to eq(5)
94
+ expect(@validator.reset).to eq(6)
56
95
  settings[:transport][:name] = "rabbitmq"
57
96
  @validator.run(settings)
58
- expect(@validator.reset).to eq(4)
97
+ expect(@validator.reset).to eq(5)
59
98
  end
60
99
 
61
100
  it "can validate an empty check definition" do
@@ -258,10 +297,10 @@ describe "Sensu::Settings::Validator" do
258
297
  }
259
298
  }
260
299
  @validator.run(settings)
261
- expect(@validator.reset).to eq(5)
300
+ expect(@validator.reset).to eq(6)
262
301
  settings[:checks][:foo][:interval] = 1
263
302
  @validator.run(settings)
264
- expect(@validator.reset).to eq(4)
303
+ expect(@validator.reset).to eq(5)
265
304
  end
266
305
 
267
306
  it "can validate a filter definition" do
@@ -671,10 +710,10 @@ describe "Sensu::Settings::Validator" do
671
710
  }
672
711
  }
673
712
  @validator.run(settings, "client")
674
- expect(@validator.reset).to eq(6)
713
+ expect(@validator.reset).to eq(7)
675
714
  settings[:client][:subscriptions] = ["bar"]
676
715
  @validator.run(settings, "client")
677
- expect(@validator.reset).to eq(5)
716
+ expect(@validator.reset).to eq(6)
678
717
  end
679
718
 
680
719
  it "can validate an api definition" do
@@ -720,9 +759,9 @@ describe "Sensu::Settings::Validator" do
720
759
  }
721
760
  }
722
761
  @validator.run(settings, "api")
723
- expect(@validator.reset).to eq(6)
762
+ expect(@validator.reset).to eq(7)
724
763
  settings[:api][:port] = 4567
725
764
  @validator.run(settings, "api")
726
- expect(@validator.reset).to eq(5)
765
+ expect(@validator.reset).to eq(6)
727
766
  end
728
767
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sensu-settings
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.1.1
4
+ version: 5.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sean Porter
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-05-04 00:00:00.000000000 Z
11
+ date: 2016-05-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sensu-json
@@ -105,6 +105,7 @@ files:
105
105
  - lib/sensu/settings/validators/filter.rb
106
106
  - lib/sensu/settings/validators/handler.rb
107
107
  - lib/sensu/settings/validators/mutator.rb
108
+ - lib/sensu/settings/validators/sensu.rb
108
109
  - lib/sensu/settings/validators/subdue.rb
109
110
  - lib/sensu/settings/validators/transport.rb
110
111
  - sensu-settings.gemspec