Class: EbDeployer::ConfigLoader

Inherits:
Object
  • Object
show all
Includes:
Utils
Defined in:
lib/eb_deployer/config_loader.rb

Defined Under Namespace

Classes: EvalBinding

Constant Summary

Constants included from Utils

Utils::BACKOFF_INITIAL_SLEEP

Instance Method Summary collapse

Methods included from Utils

#backoff, #reject_nil, #symbolize_keys

Instance Method Details

#load(options) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/eb_deployer/config_loader.rb', line 21

def load(options)
  options = options.dup
  package_digest = package_digest(options[:package])
  config_file = options.delete(:config_file)

  env = options[:environment]
  config_settings = load_config_settings(config_file, package_digest, env)

  app_name = config_settings[:application]

  common_settings = symbolize_keys(config_settings[:common])
  common_settings[:version_label] ||= package_digest

  envs = config_settings[:environments]
  raise "Environment #{env} is not defined in #{config_file}" unless envs.has_key?(env)
  env_settings = symbolize_keys(envs[env] || {})
  env_option_settings = env_settings.delete(:option_settings) || []

  ret = options.merge(common_settings).merge(env_settings)
  ret[:application] = app_name
  ret[:option_settings] ||= []
  ret[:option_settings] += env_option_settings
  ret
end