class Fog::Compute::GoGrid::Real

Public Class Methods

new(options={}) click to toggle source
# 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

common_lookup_list(lookup, options={}) click to toggle source

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
grid_image_get(options={}) click to toggle source

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
grid_image_list(options={}) click to toggle source

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
grid_ip_list(options={}) click to toggle source

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
grid_loadbalancer_list(options={}) click to toggle source

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
grid_server_add(image, ip, name, server_ram, options={}) click to toggle source

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
grid_server_delete(server) click to toggle source

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
grid_server_get(servers) click to toggle source

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
grid_server_list(options={}) click to toggle source

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
grid_server_power(server, power) click to toggle source

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
reload() click to toggle source
# File lib/fog/go_grid/compute.rb, line 70
def reload
  @connection.reset
end
request(params) click to toggle source
# 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
support_password_get(id, options={}) click to toggle source

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
support_password_list(options={}) click to toggle source

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