portertech-sensu-settings 10.18.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.
@@ -0,0 +1,29 @@
1
+ require "sensu/settings/validators/sensu"
2
+ require "sensu/settings/validators/tessen"
3
+ require "sensu/settings/validators/transport"
4
+ require "sensu/settings/validators/time_window"
5
+ require "sensu/settings/validators/check"
6
+ require "sensu/settings/validators/filter"
7
+ require "sensu/settings/validators/mutator"
8
+ require "sensu/settings/validators/handler"
9
+ require "sensu/settings/validators/client"
10
+ require "sensu/settings/validators/api"
11
+ require "sensu/settings/validators/extension"
12
+
13
+ module Sensu
14
+ module Settings
15
+ module Validators
16
+ include Sensu
17
+ include Tessen
18
+ include Transport
19
+ include TimeWindow
20
+ include Check
21
+ include Filter
22
+ include Mutator
23
+ include Handler
24
+ include Client
25
+ include API
26
+ include Extension
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,52 @@
1
+ require "sensu/settings/loader"
2
+
3
+ module Sensu
4
+ module Settings
5
+ class << self
6
+ attr_accessor :loader
7
+
8
+ # Load Sensu settings.
9
+ #
10
+ # Settings are loaded in following order, prior to validation:
11
+ # 1. Environment Variables
12
+ # 2. JSON files on disk
13
+ # 3. Automaticly detected overrides (e.g. hostname, IP address)
14
+ #
15
+ # @param [Hash] options
16
+ # @option options [String] :config_file to load.
17
+ # @option options [String] :config_dir to load.
18
+ # @option options [Array] :config_dirs to load.
19
+ # @return [Loader] a loaded instance of Loader.
20
+ def load(options={})
21
+ loader = Loader.new
22
+ loader.load_env
23
+ if options[:config_file]
24
+ loader.load_file(options[:config_file], false)
25
+ end
26
+ if options[:config_dir]
27
+ loader.load_directory(options[:config_dir])
28
+ end
29
+ if options[:config_dirs]
30
+ options[:config_dirs].each do |directory|
31
+ loader.load_directory(directory)
32
+ end
33
+ end
34
+ loader.load_overrides!
35
+ loader.validate
36
+ loader
37
+ rescue Loader::Error
38
+ loader
39
+ end
40
+
41
+ # Retrieve the current loaded settings loader or load one up if
42
+ # there isn't one. Note: We may need to add a mutex for thread
43
+ # safety.
44
+ #
45
+ # @param [Hash] options to pass to load().
46
+ # @return [Loader] instance of a loaded loader.
47
+ def get(options={})
48
+ @loader || @loader = load(options)
49
+ end
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,24 @@
1
+ # coding: utf-8
2
+
3
+ Gem::Specification.new do |spec|
4
+ spec.name = "portertech-sensu-settings"
5
+ spec.version = "10.18.0"
6
+ spec.authors = ["Sean Porter"]
7
+ spec.email = ["portertech@gmail.com"]
8
+ spec.summary = "The Sensu settings library, loader and validator"
9
+ spec.description = "The Sensu settings library, loader and validator"
10
+ spec.homepage = "https://github.com/sensu/sensu-settings"
11
+ spec.license = "MIT"
12
+
13
+ spec.files = Dir.glob("lib/**/*") + %w[sensu-settings.gemspec README.md LICENSE.txt]
14
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
15
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
16
+ spec.require_paths = ["lib"]
17
+
18
+ spec.add_dependency "portertech-sensu-json", ">= 2.2.1"
19
+ spec.add_dependency "parse-cron"
20
+
21
+ spec.add_development_dependency "bundler", "~> 2.4"
22
+ spec.add_development_dependency "rake"
23
+ spec.add_development_dependency "rspec"
24
+ end
metadata ADDED
@@ -0,0 +1,133 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: portertech-sensu-settings
3
+ version: !ruby/object:Gem::Version
4
+ version: 10.18.0
5
+ platform: ruby
6
+ authors:
7
+ - Sean Porter
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2023-10-26 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: portertech-sensu-json
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 2.2.1
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 2.2.1
27
+ - !ruby/object:Gem::Dependency
28
+ name: parse-cron
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: bundler
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '2.4'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '2.4'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rspec
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ description: The Sensu settings library, loader and validator
84
+ email:
85
+ - portertech@gmail.com
86
+ executables: []
87
+ extensions: []
88
+ extra_rdoc_files: []
89
+ files:
90
+ - LICENSE.txt
91
+ - README.md
92
+ - lib/sensu/settings.rb
93
+ - lib/sensu/settings/constants.rb
94
+ - lib/sensu/settings/loader.rb
95
+ - lib/sensu/settings/rules.rb
96
+ - lib/sensu/settings/validator.rb
97
+ - lib/sensu/settings/validators.rb
98
+ - lib/sensu/settings/validators/api.rb
99
+ - lib/sensu/settings/validators/check.rb
100
+ - lib/sensu/settings/validators/client.rb
101
+ - lib/sensu/settings/validators/extension.rb
102
+ - lib/sensu/settings/validators/filter.rb
103
+ - lib/sensu/settings/validators/handler.rb
104
+ - lib/sensu/settings/validators/mutator.rb
105
+ - lib/sensu/settings/validators/sensu.rb
106
+ - lib/sensu/settings/validators/tessen.rb
107
+ - lib/sensu/settings/validators/time_window.rb
108
+ - lib/sensu/settings/validators/transport.rb
109
+ - sensu-settings.gemspec
110
+ homepage: https://github.com/sensu/sensu-settings
111
+ licenses:
112
+ - MIT
113
+ metadata: {}
114
+ post_install_message:
115
+ rdoc_options: []
116
+ require_paths:
117
+ - lib
118
+ required_ruby_version: !ruby/object:Gem::Requirement
119
+ requirements:
120
+ - - ">="
121
+ - !ruby/object:Gem::Version
122
+ version: '0'
123
+ required_rubygems_version: !ruby/object:Gem::Requirement
124
+ requirements:
125
+ - - ">="
126
+ - !ruby/object:Gem::Version
127
+ version: '0'
128
+ requirements: []
129
+ rubygems_version: 3.4.10
130
+ signing_key:
131
+ specification_version: 4
132
+ summary: The Sensu settings library, loader and validator
133
+ test_files: []