Sha256: 06e10606f6a61c360d0ba958fc27a254d008693cecdedaf6e2ee3511bf1c17b0

Contents?: true

Size: 1.36 KB

Versions: 75

Compression:

Stored size: 1.36 KB

Contents

module Fog
  module AWS
    class Federation < Fog::Service
      extend Fog::AWS::CredentialFetcher::ServiceMethods

      recognizes :instrumentor, :instrumentor_name

      request_path 'fog/aws/requests/federation'

      request 'get_signin_token'

      class Mock
        def self.data
          @data ||= {}
        end

        def self.reset
          @data = nil
        end

        def initialize(options={})
        end

        def data
          self.class.data
        end

        def reset_data
          self.class.reset
        end
      end

      class Real
        include Fog::AWS::CredentialFetcher::ConnectionMethods

        def initialize(options={})
          @instrumentor       = options[:instrumentor]
          @instrumentor_name  = options[:instrumentor_name]  || 'fog.aws.federation'
          @connection_options = options[:connection_options] || {}
          @host               = 'signin.aws.amazon.com'
          @path               = '/federation'
          @scheme             = 'https'
          @connection         = Excon.new("#{@scheme}://#{@host}#{@path}")
        end

        def request(action, session)
          response = @connection.get(
            :query   => "Action=#{action}&SessionType=json&Session=#{session}",
            :expects => 200
          ).body
          Fog::JSON.decode(response)
        end
      end
    end
  end
end

Version data entries

75 entries across 73 versions & 3 rubygems

Version Path
fog-aws-3.29.0 lib/fog/aws/federation.rb
fog-aws-3.28.0 lib/fog/aws/federation.rb
fog-aws-3.27.0 lib/fog/aws/federation.rb
fog-aws-3.26.0 lib/fog/aws/federation.rb
fog-aws-3.25.0 lib/fog/aws/federation.rb
fog-aws-3.24.0 lib/fog/aws/federation.rb
fog-aws-3.23.0 lib/fog/aws/federation.rb
fog-aws-3.22.0 lib/fog/aws/federation.rb
fog-aws-3.21.1 lib/fog/aws/federation.rb
fog-aws-3.21.0 lib/fog/aws/federation.rb
fog-aws-3.20.0 lib/fog/aws/federation.rb
fog-aws-3.19.0 lib/fog/aws/federation.rb
fog-aws-3.18.0 lib/fog/aws/federation.rb
fog-aws-3.17.0 lib/fog/aws/federation.rb
fog-aws-3.16.0 lib/fog/aws/federation.rb
fog-aws-3.15.0 lib/fog/aws/federation.rb
fog-aws-3.14.0 lib/fog/aws/federation.rb
fog-aws-3.13.0 lib/fog/aws/federation.rb
fog-aws-3.12.0 lib/fog/aws/federation.rb
fog-aws-3.11.0 lib/fog/aws/federation.rb