class Fog::Radosgw::Usage::Real

Public Class Methods

new(options = {}) click to toggle source
# File lib/fog/radosgw/usage.rb, line 42
def initialize(options = {})
  configure_uri_options(options)
  @radosgw_access_key_id     = options[:radosgw_access_key_id]
  @radosgw_secret_access_key = options[:radosgw_secret_access_key]
  @connection_options       = options[:connection_options] || {}
  @persistent               = options[:persistent]         || false
end

Public Instance Methods

get_usage(access_key_id, options = {}) click to toggle source
# File lib/fog/radosgw/requests/usage/get_usage.rb, line 16
def get_usage(access_key_id, options = {})
  path = "admin/usage"
  t_now = Fog::Time.now
  start_time  = sanitize_and_convert_time(options[:start_time] || t_now - 86400)
  end_time    = sanitize_and_convert_time(options[:end_time]   || t_now)

  query = "?format=json&start=#{start_time}&end=#{end_time}"
  params = { 
    :method => 'GET',
    :path => path,
  }

  begin
    response = Excon.get("#{@scheme}://#{@host}/#{path}#{query}",
                         :headers => signed_headers(params))
    if !response.body.empty?
      case response.headers['Content-Type']
      when 'application/json'
        response.body = Fog::JSON.decode(response.body)
      end
    end
    response
  rescue Excon::Errors::BadRequest => e
    raise Fog::Radosgw::Provisioning::ServiceUnavailable.new
  end
end