class Deltacloud::EC2::QueryParser

Attributes

action[R]
authentication[R]
expiration[R]
parameters[R]
request_id[R]
version[R]

Public Class Methods

new(request_id, params={}) click to toggle source
# File lib/ec2/query_parser.rb, line 141
def initialize(request_id, params={})
  @request_id = request_id
  @action = (params.delete('Action') || 'Unknown').underscore.intern
  @version = params.delete('Version')
  @authentication = {
    :security_token => params.delete('SecurityToken'),
    :access_key_id => params.delete('AWSAccessKeyId'),
    :signature => {
      :version => params.delete('SignatureVersion'),
      :value => params.delete('Signature'),
      :method => params.delete('SignatureMethod'),
      :timestamp => params.delete('Timestamp')
    }
  }
  @expiration = params.delete('Expires')
  @parameters = params
end
parse(params, request_id) click to toggle source
# File lib/ec2/query_parser.rb, line 125
def self.parse(params, request_id)
  parser = new(request_id, params)
  unless parser.valid_action?
    raise InvalidAction.new('Invalid action (%s)' % parser.action)
  else
    ActionHandler.new(parser)
  end
end

Public Instance Methods

valid_action?() click to toggle source
# File lib/ec2/query_parser.rb, line 163
def valid_action?
  return false if @action == :unknown
  return false unless valid_actions.include?(@action)
  true
end
valid_actions() click to toggle source
# File lib/ec2/query_parser.rb, line 159
def valid_actions
  ActionHandler::mappings.keys
end