Sha256: 967fb85a0f58ca6f4abcab3254eebdb05c7995bb46ae49275b8d7ea04de34416
Contents?: true
Size: 1.29 KB
Versions: 7
Compression:
Stored size: 1.29 KB
Contents
module CloudstackClient require "yaml" module Configuration def self.load(configuration) file = configuration[:config_file] || Configuration.locate_config_file unless File.exists?(file) raise ConfigurationError, "Configuration file '#{file}' not found." end begin config = YAML::load(IO.read file) rescue => e message = "Can't load configuration from file '#{file}'." if configuration[:debug] message += "\nMessage: #{e.message}" message += "\nBacktrace:\n\t#{e.backtrace.join("\n\t")}" end raise ConfigurationError, message end if env = configuration[:env] || config[:default] unless config = config[env] raise ConfigurationError, "Can't find environment #{env}." end end unless config.key?(:url) && config.key?(:api_key) && config.key?(:secret_key) message = "The environment #{env || '\'-\''} does not contain all required keys." raise ConfigurationError, message end config.merge(environment: env) end def self.locate_config_file %w(.cloudstack .cloudstack-cli).each do |file| file = File.join(Dir.home, "#{file}.yml") return file if File.exists?(file) end nil end end end
Version data entries
7 entries across 7 versions & 1 rubygems