sensu-settings 6.0.0 → 7.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: b4a1cb240875b92bbe08382f6b826cdd5842fbe8
4
- data.tar.gz: a106106ad7f49e8431fef9ffcfa4ce0465b95a5a
3
+ metadata.gz: e8c362827e20c190a2ddd55390d79cdde36f6718
4
+ data.tar.gz: 2352416fa30ab53d50d7732b6d627705e2c693a9
5
5
  SHA512:
6
- metadata.gz: b835741087e47bd2a3aad317dfd9d00f162182348c5e545bc249fdc0d1a91775a05e3510cc3e13abc81a76d73ef3bad98619da29421545652f3632469722b316
7
- data.tar.gz: 5546f23571be9b5d6414b730fc14913272f3493ec7e0aaa2cb4caf44f633504f5475a111579c6fec99a2b0adb01e4da4e8e6f713614f76d8fdced1191cca0f35
6
+ metadata.gz: 244ed09a606bca423b6a34436e91ae46213bec523286e1ac64c6976f1f293417a9df433f0b35c14d3f7a9e1551154d5c39a4d51b5250852556efc583e6bf869d
7
+ data.tar.gz: 8f293750efc58b389685bd767e736bc472a258506a9a53bd9f1fdb1c22417ea5508e917ab7935dd00b52076561e3c9581b416cc32aeb6db2a383cb11220541eb
@@ -1,5 +1,5 @@
1
1
  module Sensu
2
2
  module Settings
3
- CATEGORIES = [:checks, :filters, :mutators, :handlers]
3
+ CATEGORIES = [:checks, :filters, :mutators, :handlers, :extensions]
4
4
  end
5
5
  end
@@ -7,6 +7,7 @@ require "sensu/settings/validators/mutator"
7
7
  require "sensu/settings/validators/handler"
8
8
  require "sensu/settings/validators/client"
9
9
  require "sensu/settings/validators/api"
10
+ require "sensu/settings/validators/extension"
10
11
 
11
12
  module Sensu
12
13
  module Settings
@@ -20,6 +21,7 @@ module Sensu
20
21
  include Handler
21
22
  include Client
22
23
  include API
24
+ include Extension
23
25
  end
24
26
  end
25
27
  end
@@ -0,0 +1,18 @@
1
+ module Sensu
2
+ module Settings
3
+ module Validators
4
+ module Extension
5
+ # Validate a Sensu extension definition.
6
+ # Validates: gem, version
7
+ #
8
+ # @param filter [Hash] sensu extension definition.
9
+ def validate_extension(extension)
10
+ must_be_a_string_if_set(extension[:gem]) ||
11
+ invalid(extension, "extension gem must be a string")
12
+ must_be_a_string_if_set(extension[:version]) ||
13
+ invalid(extension, "extension version must be a string")
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |spec|
4
4
  spec.name = "sensu-settings"
5
- spec.version = "6.0.0"
5
+ spec.version = "7.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,8 @@ 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(6)
24
+ expect(reasons).to include("extensions must be a hash")
25
+ expect(reasons.size).to eq(7)
25
26
  end
26
27
 
27
28
  it "can validate a sensu definition" do
@@ -57,10 +58,10 @@ describe "Sensu::Settings::Validator" do
57
58
  }
58
59
  }
59
60
  @validator.run(settings)
60
- expect(@validator.reset).to eq(6)
61
+ expect(@validator.reset).to eq(7)
61
62
  settings[:sensu][:spawn][:limit] = 20
62
63
  @validator.run(settings)
63
- expect(@validator.reset).to eq(5)
64
+ expect(@validator.reset).to eq(6)
64
65
  end
65
66
 
66
67
  it "can validate a transport definition" do
@@ -91,10 +92,10 @@ describe "Sensu::Settings::Validator" do
91
92
  }
92
93
  }
93
94
  @validator.run(settings)
94
- expect(@validator.reset).to eq(6)
95
+ expect(@validator.reset).to eq(7)
95
96
  settings[:transport][:name] = "rabbitmq"
96
97
  @validator.run(settings)
97
- expect(@validator.reset).to eq(5)
98
+ expect(@validator.reset).to eq(6)
98
99
  end
99
100
 
100
101
  it "can validate an empty check definition" do
@@ -333,10 +334,10 @@ describe "Sensu::Settings::Validator" do
333
334
  }
334
335
  }
335
336
  @validator.run(settings)
336
- expect(@validator.reset).to eq(6)
337
+ expect(@validator.reset).to eq(7)
337
338
  settings[:checks][:foo][:interval] = 1
338
339
  @validator.run(settings)
339
- expect(@validator.reset).to eq(5)
340
+ expect(@validator.reset).to eq(6)
340
341
  end
341
342
 
342
343
  it "can validate a filter definition" do
@@ -746,10 +747,10 @@ describe "Sensu::Settings::Validator" do
746
747
  }
747
748
  }
748
749
  @validator.run(settings, "client")
749
- expect(@validator.reset).to eq(7)
750
+ expect(@validator.reset).to eq(8)
750
751
  settings[:client][:subscriptions] = ["bar"]
751
752
  @validator.run(settings, "client")
752
- expect(@validator.reset).to eq(6)
753
+ expect(@validator.reset).to eq(7)
753
754
  end
754
755
 
755
756
  it "can validate an api definition" do
@@ -795,9 +796,49 @@ describe "Sensu::Settings::Validator" do
795
796
  }
796
797
  }
797
798
  @validator.run(settings, "api")
798
- expect(@validator.reset).to eq(7)
799
+ expect(@validator.reset).to eq(8)
799
800
  settings[:api][:port] = 4567
800
801
  @validator.run(settings, "api")
802
+ expect(@validator.reset).to eq(7)
803
+ end
804
+
805
+ it "can validate a extension definition" do
806
+ extension = {}
807
+ @validator.validate_extension(extension)
808
+ expect(@validator.reset).to eq(0)
809
+ extension[:gem] = 1
810
+ @validator.validate_extension(extension)
811
+ expect(@validator.reset).to eq(1)
812
+ extension[:gem] = true
813
+ @validator.validate_extension(extension)
814
+ expect(@validator.reset).to eq(1)
815
+ extension[:gem] = "test"
816
+ @validator.validate_extension(extension)
817
+ expect(@validator.reset).to eq(0)
818
+ extension[:version] = 1
819
+ @validator.validate_extension(extension)
820
+ expect(@validator.reset).to eq(1)
821
+ extension[:version] = false
822
+ @validator.validate_extension(extension)
823
+ expect(@validator.reset).to eq(1)
824
+ extension[:version] = "1.0.0"
825
+ @validator.validate_extension(extension)
826
+ expect(@validator.reset).to eq(0)
827
+ end
828
+
829
+ it "can run, validating extensions" do
830
+ settings = {
831
+ :extensions => {
832
+ :foo => {
833
+ :gem => "sensu-extensions-test",
834
+ :version => 1
835
+ }
836
+ }
837
+ }
838
+ @validator.run(settings)
839
+ expect(@validator.reset).to eq(7)
840
+ settings[:extensions][:foo][:version] = "1.0.0"
841
+ @validator.run(settings)
801
842
  expect(@validator.reset).to eq(6)
802
843
  end
803
844
  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: 6.0.0
4
+ version: 7.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-07-20 00:00:00.000000000 Z
11
+ date: 2016-08-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sensu-json
@@ -102,6 +102,7 @@ files:
102
102
  - lib/sensu/settings/validators/api.rb
103
103
  - lib/sensu/settings/validators/check.rb
104
104
  - lib/sensu/settings/validators/client.rb
105
+ - lib/sensu/settings/validators/extension.rb
105
106
  - lib/sensu/settings/validators/filter.rb
106
107
  - lib/sensu/settings/validators/handler.rb
107
108
  - lib/sensu/settings/validators/mutator.rb