5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
# File 'lib/knuckle_cluster/configuration.rb', line 5
def self.load_parameters(profile:, profile_file: nil)
profile_file ||= DEFAULT_PROFILE_FILE
raise "File #{profile_file} not found" unless File.exists?(profile_file)
data = YAML.load_file(profile_file)
unless data.keys.include?(profile)
raise "Config file does not include profile for #{profile}"
end
tmp_data = data[profile]
profile_inheritance = [profile]
while(tmp_data && tmp_data.keys.include?('profile'))
profile_name = tmp_data['profile']
break if profile_inheritance.include? profile_name
profile_inheritance << profile_name
tmp_data = data[profile_name]
end
output = {}
profile_inheritance.reverse.each do |prof|
output.merge!(data[prof] || {})
end
output.delete('profile')
keys_to_symbols(output)
end
|