module CloudstackClient::Configuration
Public Class Methods
load(configuration)
click to toggle source
# File lib/cloudstack_client/configuration.rb 6 def self.load(configuration) 7 file = configuration[:config_file] || Configuration.locate_config_file 8 unless File.exists?(file) 9 raise ConfigurationError, "Configuration file '#{file}' not found." 10 end 11 12 begin 13 config = YAML::load(IO.read file) 14 rescue => e 15 message = "Can't load configuration from file '#{file}'." 16 if configuration[:debug] 17 message += "\nMessage: #{e.message}" 18 message += "\nBacktrace:\n\t#{e.backtrace.join("\n\t")}" 19 end 20 raise ConfigurationError, message 21 end 22 23 if env = configuration[:env] || config[:default] 24 unless config = config[env] 25 raise ConfigurationError, "Can't find environment #{env}." 26 end 27 end 28 29 unless config.key?(:url) && config.key?(:api_key) && config.key?(:secret_key) 30 message = "The environment #{env || '\'-\''} does not contain all required keys." 31 raise ConfigurationError, message 32 end 33 34 config.merge(environment: env) 35 end
locate_config_file()
click to toggle source
# File lib/cloudstack_client/configuration.rb 37 def self.locate_config_file 38 %w(.cloudstack .cloudstack-cli).each do |file| 39 file = File.join(Dir.home, "#{file}.yml") 40 return file if File.exists?(file) 41 end 42 nil 43 end