Class: GoGridClient

Inherits:
Object
  • Object
show all
Defined in:
lib/deltacloud/drivers/gogrid/gogrid_client.rb

Instance Method Summary collapse

Constructor Details

#initialize(server = 'https://api.gogrid.com/api', apikey = 'YOUR API KEY', secret = 'YOUR SHARED SECRET', format = 'json', version = '1.9') ⇒ GoGridClient

Returns a new instance of GoGridClient.



44
45
46
47
48
49
50
51
52
# File 'lib/deltacloud/drivers/gogrid/gogrid_client.rb', line 44

def initialize(server='https://api.gogrid.com/api',
               apikey='YOUR API KEY',
               secret='YOUR SHARED SECRET',
               format='json',
               version='1.9')
  @server = server
  @secret = secret
  @default_params = {'format'=>format, 'v'=>version,'api_key' => apikey}
end

Instance Method Details

#encode_params(params) ⇒ Object



81
82
83
# File 'lib/deltacloud/drivers/gogrid/gogrid_client.rb', line 81

def encode_params(params)
  params.map {|k,v| "#{CGI.escape(k.to_s)}=#{CGI.escape(v.to_s)}" }.join("&")
end

#getRequestURL(method, params) ⇒ Object



54
55
56
57
58
59
# File 'lib/deltacloud/drivers/gogrid/gogrid_client.rb', line 54

def getRequestURL(method,params)
  requestURL = @server+'/'+method+'?'
  call_params = @default_params.merge(params)
  call_params['sig']=getSignature(@default_params['api_key'],@secret)
  requestURL = requestURL+encode_params(call_params)
end

#getSignature(key, secret) ⇒ Object



61
62
63
# File 'lib/deltacloud/drivers/gogrid/gogrid_client.rb', line 61

def getSignature(key,secret)
  Digest::MD5.hexdigest(key+secret+"%.0f"%Time.now.to_f)
end

#request(method, params = {}, version = nil) ⇒ Object



71
72
73
74
75
76
77
78
79
# File 'lib/deltacloud/drivers/gogrid/gogrid_client.rb', line 71

def request(method, params={}, version=nil)
  if version
    @default_params['v'] = version
  else
    @default_params['v'] = '1.9'
  end
  request = sendAPIRequest(method, params)
  JSON::parse(request)
end

#sendAPIRequest(method, params = {}) ⇒ Object



65
66
67
68
69
# File 'lib/deltacloud/drivers/gogrid/gogrid_client.rb', line 65

def sendAPIRequest(method,params={})
  OpenURI.without_ssl_verification do
    open(getRequestURL(method,params)).read
  end
end