Sha256: e2f4329ded71a260a8a3de6304a05a16036e9db9f3ca84a4ae709bc74f848f22

Contents?: true

Size: 775 Bytes

Versions: 2

Compression:

Stored size: 775 Bytes

Contents

require 'fog/aws'
require 'active_support/core_ext/hash/slice'
require 'active_support/core_ext/hash/reverse_merge'
require 'guignol/configuration'

module Guignol
  # Pool Fog connections to minimize latency
  module Connection
    def self.get(options)
      @connections ||= {}
      @connections[options] ||= Fog::Compute.new(credentials.merge options)
    end


    private


    # Find and return credentials
    def self.credentials
      if ENV['AWS_SECRET_KEY_ID'] && ENV['AWS_SECRET_ACCESS_KEY']
        {
          :aws_access_key_id     => ENV['AWS_SECRET_KEY_ID'],
          :aws_secret_access_key => ENV['AWS_SECRET_ACCESS_KEY']
        }
      else
        Guignol.configuration.slice(:aws_access_key_id, :aws_secret_access_key)
      end
    end


  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
guignol-0.3.16 lib/guignol/connection.rb
guignol-0.3.15 lib/guignol/connection.rb