module Qurd::Mixins::ConfigurationHelpers

Helpers for managing configuration details

Private Instance Methods

assume_role_credentials(cred) click to toggle source
# File lib/qurd/mixins/configuration_helpers.rb, line 38
def assume_role_credentials(cred)
  opts = {}
  %w(role_arn role_session_name policy duration_seconds
     external_id).each do |key|
    opts[key.to_sym] = cred.options[key] if cred.options.key?(key)
  end
  [cred.name, Aws::AssumeRoleCredentials.new(opts)]
end
credentials(cred) click to toggle source
# File lib/qurd/mixins/configuration_helpers.rb, line 47
def credentials(cred)
  opts = [cred.options.access_key_id,
          cred.options.secret_access_key,
          cred.options.session_token]
  [cred.name, Aws::Credentials.new(*opts)]
end
default_credentials() click to toggle source
# File lib/qurd/mixins/configuration_helpers.rb, line 30
def default_credentials
  [['default',
    Aws::InstanceProfileCredentials.new(http_open_timeout: 1,
                                        http_read_timeout: 1,
                                        retries: 1
  )]]
end
get_or_default(obj, method, default, cast = nil) click to toggle source
# File lib/qurd/mixins/configuration_helpers.rb, line 7
def get_or_default(obj, method, default, cast = nil)
  val = obj.send(method).nil? ? default : obj.send(method)
  cast.nil? ? val : val.send(cast)
end
instance_profile_credentials(cred) click to toggle source
# File lib/qurd/mixins/configuration_helpers.rb, line 62
def instance_profile_credentials(cred)
  opts = {}
  %w(retries ip_address port http_open_timeout http_read_timeout
     delay http_debug_output).each do |key|
    opts[key.to_sym] = cred.options[key] if cred.options.key?(key)
  end
  [cred.name, Aws::InstanceProfileCredentials.new(opts)]
end
mkdir_p_file!(path) click to toggle source
# File lib/qurd/mixins/configuration_helpers.rb, line 22
def mkdir_p_file!(path)
  return if File.exist?(path) && File.writable?(path)
  dirname = File.dirname(path)
  FileUtils.mkdir_p dirname
  logger! "Directory not writable: #{dirname}" \
    unless File.writable?(dirname)
end
shared_credentials(cred) click to toggle source
# File lib/qurd/mixins/configuration_helpers.rb, line 54
def shared_credentials(cred)
  opts = {
    profile_name: cred.options.profile_name
  }
  opts[:path] = cred.options.path if cred.options.key?(:path)
  [cred.name, Aws::SharedCredentials.new(opts)]
end
string2class(klass) click to toggle source
# File lib/qurd/mixins/configuration_helpers.rb, line 71
def string2class(klass)
  require klass.underscore
  obj = Object.const_get(klass)
  logger.debug("Found action #{klass}")
  obj
end
verify_account!(name, monitor) click to toggle source
# File lib/qurd/mixins/configuration_helpers.rb, line 12
def verify_account!(name, monitor)
  missing_keys = []
  %w(credentials region queues).each do |key|
    missing_keys << key if monitor[key].nil? || monitor[key].empty?
  end

  keys = missing_keys.join(', ')
  logger! "Account #{name} missing keys: #{keys}" unless keys.empty?
end