sensu-settings 6.0.0 → 7.0.0

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 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