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