Refactoring to have config...
Dev authored 7 years ago
|
1) module RCM
2) class ConfigManager
3) PACKAGES = 'packages'.freeze
4) FILES = 'files'.freeze
5) SERVICES = 'services'.freeze
6) LOGGING = 'logging'.freeze
7)
|
Moving initialization to co...
Dev authored 7 years ago
|
8) @wanted = nil
|
Refactoring to have config...
Dev authored 7 years ago
|
9) @logger = nil
10) @env = ''
11)
12) VALID_LOG_LEVELS = %w[fatal error info debug].freeze
13)
14) def initialize()
15) @env = ENV.fetch('ENVIRONMENT', '')
|
Moving initialization to co...
Dev authored 7 years ago
|
16) @wanted = {
17) PACKAGES => {},
18) FILES => {},
19) SERVICES => {}
20) }
21)
|
Refactoring to have config...
Dev authored 7 years ago
|
22) config_file = @env.empty? ? 'config.yaml' : "config_#{@env}.yaml"
|
Cleaning up whitespace.
Dev authored 7 years ago
|
23)
|
Refactoring to have config...
Dev authored 7 years ago
|
24) raise "#{config_file} not found." unless ::File.readable?(config_file)
25)
26) config = YAML.load_file(config_file)
27) config.each do |yaml_objects|
28) yaml_objects.each do |collection, resource_definition|
29) case collection
30) when LOGGING
31) configure_logging(resource_definition)
32)
33) when PACKAGES
34) parse_packages(resource_definition)
35)
36) when FILES
37) parse_files(resource_definition)
38)
39) when SERVICES
40) parse_services(resource_definition)
41) end # of case
42) end # of iterating over yaml_objects
43) end # of iterating over config
44) end
45)
46) def logger
47) @logger
48) end
49)
50) def packages
51) @wanted[PACKAGES]
52) end
53)
54) def files
55) @wanted[FILES]
56) end
57)
58) def services
59) @wanted[SERVICES]
60) end
61)
62) def configure_logging(markup)
63) file = markup[0]['file']
64) device = ''
65) level = markup[0]['level']
66)
67) if (VALID_LOG_LEVELS & [level]).empty?
|
Cleaning up whitespace.
Dev authored 7 years ago
|
68) raise "Invalid log level '#{level}'. Valid log levels are: #{VALID_LOG_LEVELS.join(', ')}"
|