class Fog::Compute::GoGrid::Real
Public Class Methods
# File lib/fog/go_grid/compute.rb, line 57 def initialize(options={}) require 'digest/md5' @go_grid_api_key = options[:go_grid_api_key] @go_grid_shared_secret = options[:go_grid_shared_secret] @connection_options = options[:connection_options] || {} @host = options[:host] || "api.gogrid.com" @path = options[:path] || "/api" @persistent = options[:persistent] || false @port = options[:port] || 443 @scheme = options[:scheme] || 'https' @connection = Fog::XML::Connection.new("#{@scheme}://#{@host}:#{@port}", @persistent, @connection_options) end
Public Instance Methods
List options and lookups
Parameters¶ ↑
-
'lookup'<~String> - the lookup to be listed
-
options<~Hash>:
-
'sort'<~String> - column to sort result by in ['description', 'id', 'name']
-
'asc'<~String> - order to sort in ['true','false']
-
Returns¶ ↑
-
response<~Excon::Response>:
-
body<~Array>:
-
TODO: docs
# File lib/fog/go_grid/requests/compute/common_lookup_list.rb, line 17 def common_lookup_list(lookup, options={}) request( :path => 'common/lookup/list', :query => {'lookup' => lookup}.merge!(options) ) end
List images
Parameters¶ ↑
-
options<~Hash>:
-
'id'<~String> - ID of the image
-
'name'<~String> - Name of the image
-
'image'<~String> - ID(s) or Name(s) of the images to retrive. Can be speicifed multiple times
-
Returns¶ ↑
-
response<~Excon::Response>:
-
body<~Array>:
-
TODO: docs
# File lib/fog/go_grid/requests/compute/grid_image_get.rb, line 17 def grid_image_get(options={}) request( :path => 'grid/image/get', :query => options ) end
List images
Parameters¶ ↑
-
options<~Hash>:
-
'datacenter'<~String> - datacenter to limit results to
-
'isPublic'<~String> - If true only returns public images, in ['false', 'true']
-
'num_items'<~Integer> - Number of items to return
-
'page'<~Integer> - Page index for paginated results
-
'state'<~String> - state to limit results to, in ['Saving', 'Available']
-
'type'<~String> - image type to limit results to
-
Returns¶ ↑
-
response<~Excon::Response>:
-
body<~Array>:
-
TODO: docs
# File lib/fog/go_grid/requests/compute/grid_image_list.rb, line 20 def grid_image_list(options={}) request( :path => 'grid/image/list', :query => options ) end
List ips
Parameters¶ ↑
-
options<~Hash>:
-
'datacenter'<~String> - datacenter to limit results to
-
'ip.state'<~String> - state to limit results to in ip.state
-
'ip.type'<~String> - type to limit results to in ip.type
-
'num_items'<~Integer> - Number of items to return
-
'page'<~Integer> - Page index for paginated results
-
Returns¶ ↑
-
response<~Excon::Response>:
-
body<~Array>:
-
TODO: docs
# File lib/fog/go_grid/requests/compute/grid_ip_list.rb, line 19 def grid_ip_list(options={}) request( :path => 'grid/ip/list', :query => options ) end
List load balancers
Parameters¶ ↑
-
options<~Hash>:
-
'datacenter'<~String> - datacenter to limit results to
-
'num_items'<~Integer> - Number of items to return
-
'page'<~Integer> - Page index for paginated results
-
Returns¶ ↑
-
response<~Excon::Response>:
-
body<~Array>:
-
TODO: docs
# File lib/fog/go_grid/requests/compute/grid_loadbalancer_list.rb, line 17 def grid_loadbalancer_list(options={}) request( :path => 'grid/loadbalancer/list', :query => options ) end
Create a new server
Parameters¶ ↑
-
'name'<~String> - name of the server, 20 or fewer characters
-
'image'<~String> - image to use, in
grid_image_list
-
'ip'<~String> - initial public ip for this server
-
'options'<~Hash>:
-
'server.ram'<~String> - flavor to use, in
common_lookup_list
('server.ram') -
'description'<~String> - description of this server
-
'isSandbox'<~String> - treat this server as image sandbox? in ['true', 'false']
-
Returns¶ ↑
-
response<~Excon::Response>:
-
body<~Array>:
-
TODO: docs
# File lib/fog/go_grid/requests/compute/grid_server_add.rb, line 20 def grid_server_add(image, ip, name, server_ram, options={}) request( :path => 'grid/server/add', :query => { 'image' => image, 'ip' => ip, 'name' => name, 'server.ram' => server_ram }.merge!(options) ) end
Delete a server
Parameters¶ ↑
-
'server'<~String> - id or name of server to delete
Returns¶ ↑
-
response<~Excon::Response>:
-
body<~Array>:
-
TODO: docs
# File lib/fog/go_grid/requests/compute/grid_server_delete.rb, line 14 def grid_server_delete(server) request( :path => 'grid/server/delete', :query => {'server' => server} ) end
Get one or more servers by name
Parameters¶ ↑
-
'server'<~String> - id or name of server(s) to lookup
Returns¶ ↑
-
response<~Excon::Response>:
-
body<~Array>:
-
TODO: docs
# File lib/fog/go_grid/requests/compute/grid_server_get.rb, line 14 def grid_server_get(servers) request( :path => 'grid/server/get', :query => {'server' => [*servers]} ) end
List servers
Parameters¶ ↑
-
options<~Hash>:
-
'datacenter'<~String> - datacenter to limit results to
-
'isSandbox'<~String> - If true only returns
Image
Sandbox servers, in ['false', 'true'] -
'num_items'<~Integer> - Number of items to return
-
'page'<~Integer> - Page index for paginated results
-
'server.type'<~String> - server type to limit results to
-
Returns¶ ↑
-
response<~Excon::Response>:
-
body<~Array>:
-
TODO: docs
# File lib/fog/go_grid/requests/compute/grid_server_list.rb, line 19 def grid_server_list(options={}) request( :path => 'grid/server/list', :query => options ) end
Start, Stop or Restart a server
Parameters¶ ↑
-
'server'<~String> - id or name of server to power
-
'power'<~String> - power operation, in ['restart', 'start', 'stop']
Returns¶ ↑
-
response<~Excon::Response>:
-
body<~Array>:
-
TODO: docs
# File lib/fog/go_grid/requests/compute/grid_server_power.rb, line 15 def grid_server_power(server, power) request( :path => 'grid/server/power', :query => {'server' => server, 'power' => power} ) end
# File lib/fog/go_grid/compute.rb, line 70 def reload @connection.reset end
# File lib/fog/go_grid/compute.rb, line 74 def request(params) params = { :expects => 200, :method => 'GET' }.merge!(params) params[:query] ||= {} params[:query].merge!({ 'api_key' => @go_grid_api_key, 'format' => 'json', 'sig' => Digest::MD5.hexdigest("#{@go_grid_api_key}#{@go_grid_shared_secret}#{Time.now.to_i}"), 'v' => '1.5' }) begin response = @connection.request( params.merge!(:path => "#{@path}/#{params[:path]}") ) rescue Excon::Errors::HTTPStatusError => error raise case error when Excon::Errors::NotFound Fog::Compute::GoGrid::NotFound.slurp(error) else error end end unless response.body.empty? response.body = Fog::JSON.decode(response.body) end response end
Get one or more passwords by id
Parameters¶ ↑
-
options<~Hash>:
-
'id'<~String> - id of the password to retrieve
-
Returns¶ ↑
-
response<~Excon::Response>:
-
body<~Array>:
-
TODO: docs
# File lib/fog/go_grid/requests/compute/support_password_get.rb, line 15 def support_password_get(id, options={}) request( :path => 'support/password/get', :query => { 'id' => id }.merge!(options) ) end
List passwords
Parameters¶ ↑
-
options<~Hash>:
-
'datacenter'<~String> - datacenter to limit results to
-
'isSandbox'<~String> - If true only returns
Image
Sandbox servers, in ['false', 'true'] -
'num_items'<~Integer> - Number of items to return
-
'page'<~Integer> - Page index for paginated results
-
'server.type'<~String> - server type to limit results to
-
Returns¶ ↑
-
response<~Excon::Response>:
-
body<~Array>:
-
TODO: docs
# File lib/fog/go_grid/requests/compute/support_password_list.rb, line 19 def support_password_list(options={}) request( :path => 'support/password/list', :query => options ) end