class Ebfly::Config

Public Instance Methods

add() click to toggle source
# File lib/ebfly/command/config.rb, line 20
def add
  ret = add_environment_config(options[:a], options[:e], options[:c])
  debug(ret)
end
copy() click to toggle source
# File lib/ebfly/command/config.rb, line 38
def copy
  app = options[:a]
  env = options[:e]
  src = options[:s]

  puts ""
  puts "=== Before ==="
  config_vars = get_env_conf(app, env)
  show_env_conf(app, env, config_vars)

  src_config_vars = get_env_conf(app, src)
  add_environment_config(app, env, src_config_vars)

  puts ""
  puts "=== After ==="
  config_vars = get_env_conf(app, env)    
  show_env_conf(app, env, config_vars)
end
rm() click to toggle source
# File lib/ebfly/command/config.rb, line 29
def rm
  ret = remove_environment_config(options[:a], options[:e], options[:c])
  debug(ret)
end
show() click to toggle source
# File lib/ebfly/command/config.rb, line 8
def show
  app = options[:a]
  env = options[:e]

  configs = get_env_conf(app, env)
  show_env_conf(app, env, configs)
end

Private Instance Methods

add_environment_config(app, env, config_vars) click to toggle source
# File lib/ebfly/command/config.rb, line 59
def add_environment_config(app, env, config_vars)
  puts ""
  puts "Add config vars: #{env_name(app, env)}"

  settings = []
  config_vars.each do |config_var|
    k, v = config_var.split("=")
    next if v.nil?
    conf = {
      namespace: "aws:elasticbeanstalk:application:environment",
      option_name: k.strip,
      value: v.strip
    }
    settings << conf
  end

  opts = {
    environment_name: env_name(app, env),
    option_settings: settings
  }
  run { eb.update_environment(opts) }
end
get_env_conf(app, env) click to toggle source
# File lib/ebfly/command/config.rb, line 102
def get_env_conf(app, env)
  opts = {
    application_name: app,
    environment_name: env_name(app, env)
  }

  ret = run { eb.describe_configuration_settings(opts) }
  debug(ret)

  config_vars = []
  settings = ret[:configuration_settings]
  settings.each do |setting|
    opts = setting[:option_settings]
    opts.each do |opt|
      next unless opt[:option_name] == "EnvironmentVariables"
      config_vars = opt[:value].split(",")
    end
  end

  config_vars.sort!
end
remove_environment_config(app, env, keys) click to toggle source
# File lib/ebfly/command/config.rb, line 82
def remove_environment_config(app, env, keys)
  puts ""
  puts "Remove config vars: #{env_name(app, env)}"

  settings = []
  keys.each do |key|
    conf = {
      namespace: "aws:elasticbeanstalk:application:environment",
      option_name: key.strip,
    }
    settings << conf
  end

  opts = {
    environment_name: env_name(app, env),
    options_to_remove: settings
  }
  run { eb.update_environment(opts) }
end
show_env_conf(app, env, config_vars) click to toggle source
# File lib/ebfly/command/config.rb, line 124
def show_env_conf(app, env, config_vars)
  puts ""
  puts "=== #{env_name(app, env)} Config Vars ==="
  config_vars.each do |config_var|
    puts config_var
  end
end