class Fog::ArubaCloud::Compute::BaseObject

Public Class Methods

new(options={}) click to toggle source
# File lib/fog/arubacloud/compute.rb, line 105
def initialize(options={})
  @arubacloud_username = options[:arubacloud_username] || ''
  @arubacloud_password = options[:arubacloud_password] || ''
  @ws_enduser_url = options[:url] || Fog::ArubaCloud::DEFAULT_WS_ENDUSER_URL
end

Public Instance Methods

body(method) click to toggle source

Return the base json object used by each request. @param method [String] the name of the method to call. @return [Hash] base scheme for json request.

# File lib/fog/arubacloud/compute.rb, line 114
def body(method)
  {
      :ApplicationId => method,
      :RequestId => method,
      :Sessionid => method,
      :Username => @arubacloud_username,
      :Password => @arubacloud_password
  }
end
request(body={}, method_name='', failure_message='', benchmark=true) click to toggle source

Method generator to wrap around request inside requests files. @param [Hash] body @param [String] method_name @param [String] failure_message @param [Bool] benchmark

# File lib/fog/arubacloud/compute.rb, line 129
def request(body={}, method_name='', failure_message='', benchmark=true)
  options = {
      :http_method => :post,
      :method => method_name,
      :body => Fog::JSON.encode(body)
  }
  response = nil
  if benchmark
    time = Benchmark.realtime {
      response = _request(options)
    }
    Fog::Logger.debug("#{options[:method]} took: #{time}")
  else
    response = _request(options)
  end
  if response['Success']
    response
  else
    Fog::Logger.debug("Request failed. Debug: #{response}")
    if !response['ResultMessage'] || response['ResultMessage'].empty?
        raise Fog::ArubaCloud::Errors::RequestError.new(failure_message)
    else
        raise Fog::ArubaCloud::Errors::RequestError.new(response['ResultMessage'], response  )
    end
  end
end