Sha256: 61921d4e9897382a9bfeeb4a65812c31e1ee263700987a65c211ae75f15333d2
Contents?: true
Size: 1.3 KB
Versions: 3
Compression:
Stored size: 1.3 KB
Contents
class Marty::Aws::Request < Marty::Aws::Base # this class is used to make aws api requests for specific services # currently only used for diagnostics def request info, params = {} action = info[:action] endpoint = info[:endpoint] method = info[:method] || :get default = action ? { 'Action' => action, 'Version' => @version } : {} host = "#{@service}.#{@doc[:region]}.amazonaws.com" url = "https://#{host}/" url += endpoint if endpoint url += '?' + (default + params).map { |a, v| "#{a}=#{v}" }.join('&') unless params.empty? sig = ::Aws::Sigv4::Signer.new( service: @service, region: @doc[:region], access_key_id: @creds[:access_key_id], secret_access_key: @creds[:secret_access_key], session_token: @creds[:token] ) signed_url = sig.presign_url(http_method: 'GET', url: url) http = Net::HTTP.new(host, 443) http.use_ssl = true Net::HTTP.send(method, signed_url) end def ensure_resp path, obj if path == [] obj.is_a?(Array) ? obj : [obj] elsif obj.is_a?(Hash) key = path.shift raise "Unexpected AWS Response: #{key} missing" unless (obj.is_a?(Hash) && obj[key]) ensure_resp(path, obj[key]) else obj.map { |s| ensure_resp(path.clone, s) }.flatten(1) end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
marty-14.3.0 | lib/marty/aws/request.rb |
marty-14.0.0 | lib/marty/aws/request.rb |
marty-13.0.2 | lib/marty/aws/request.rb |