Class: Elasticity::AwsSession

Inherits:
Object
  • Object
show all
Defined in:
lib/elasticity/aws_session.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ AwsSession

Supported values for options:

:region - AWS region (e.g. us-west-1)
:secure - true or false, default true.


16
17
18
19
20
21
22
23
24
25
# File 'lib/elasticity/aws_session.rb', line 16

def initialize(options={})
  # There is a cryptic error if this isn't set
  if options.has_key?(:region) && options[:region] == nil
    raise MissingRegionError, 'A valid :region is required to connect to EMR'
  end
  options[:region] = 'us-east-1' unless options[:region]
  @region = options[:region]

  @host = "elasticmapreduce.#@region.amazonaws.com"
end

Instance Attribute Details

#hostObject (readonly)

Returns the value of attribute host.



10
11
12
# File 'lib/elasticity/aws_session.rb', line 10

def host
  @host
end

#regionObject (readonly)

Returns the value of attribute region.



11
12
13
# File 'lib/elasticity/aws_session.rb', line 11

def region
  @region
end

Instance Method Details

#==(other) ⇒ Object



36
37
38
39
40
# File 'lib/elasticity/aws_session.rb', line 36

def ==(other)
  return false unless other.is_a? AwsSession
  return false unless @host == other.host
  true
end

#submit(ruby_service_hash) ⇒ Object



27
28
29
30
31
32
33
34
# File 'lib/elasticity/aws_session.rb', line 27

def submit(ruby_service_hash)
  aws_request = AwsRequestV4.new(self, ruby_service_hash)
  begin
    RestClient.post(aws_request.url, aws_request.payload, aws_request.headers)
  rescue RestClient::BadRequest => e
    raise ArgumentError, AwsSession.parse_error_response(e.http_body)
  end
end