Class: Fog::GoGrid::Compute::Real
- Inherits:
-
Object
- Object
- Fog::GoGrid::Compute::Real
- Defined in:
- lib/fog/compute/go_grid.rb,
lib/fog/compute/requests/go_grid/grid_ip_list.rb,
lib/fog/compute/requests/go_grid/grid_image_get.rb,
lib/fog/compute/requests/go_grid/grid_image_list.rb,
lib/fog/compute/requests/go_grid/grid_server_add.rb,
lib/fog/compute/requests/go_grid/grid_server_get.rb,
lib/fog/compute/requests/go_grid/grid_server_list.rb,
lib/fog/compute/requests/go_grid/grid_server_power.rb,
lib/fog/compute/requests/go_grid/common_lookup_list.rb,
lib/fog/compute/requests/go_grid/grid_server_delete.rb,
lib/fog/compute/requests/go_grid/grid_loadbalancer_list.rb
Instance Method Summary collapse
-
#common_lookup_list(lookup, options = {}) ⇒ Object
List options and lookups.
-
#grid_image_get(options = {}) ⇒ Object
List images.
-
#grid_image_list(options = {}) ⇒ Object
List images.
-
#grid_ip_list(options = {}) ⇒ Object
List ips.
-
#grid_loadbalancer_list(options = {}) ⇒ Object
List load balancers.
-
#grid_server_add(name, image, ip, options = {}) ⇒ Object
Create a new server.
-
#grid_server_delete(server) ⇒ Object
Delete a server.
-
#grid_server_get(servers) ⇒ Object
Get one or more servers by name.
-
#grid_server_list(options = {}) ⇒ Object
List servers.
-
#grid_server_power(server, power) ⇒ Object
Start, Stop or Restart a server.
-
#initialize(options = {}) ⇒ Real
constructor
A new instance of Real.
- #reload ⇒ Object
- #request(params) ⇒ Object
Constructor Details
#initialize(options = {}) ⇒ Real
Returns a new instance of Real.
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/fog/compute/go_grid.rb', line 58 def initialize(={}) unless .delete(:provider) location = caller.first warning = "[yellow][WARN] Fog::GoGrid::Compute.new is deprecated, use Fog::Compute.new(:provider => 'GoGrid') instead[/]" warning << " [light_black](" << location << ")[/] " Formatador.display_line(warning) end require 'digest/md5' require 'json' @go_grid_api_key = [:go_grid_api_key] @go_grid_shared_secret = [:go_grid_shared_secret] @host = [:host] || "api.gogrid.com" @path = [:path] || "/api" @port = [:port] || 443 @scheme = [:scheme] || 'https' @connection = Fog::Connection.new("#{@scheme}://#{@host}:#{@port}", [:persistent]) end |
Instance Method Details
#common_lookup_list(lookup, options = {}) ⇒ Object
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
18 19 20 21 22 23 |
# File 'lib/fog/compute/requests/go_grid/common_lookup_list.rb', line 18 def common_lookup_list(lookup, ={}) request( :path => 'common/lookup/list', :query => {'lookup' => lookup}.merge!() ) end |
#grid_image_get(options = {}) ⇒ Object
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
18 19 20 21 22 23 |
# File 'lib/fog/compute/requests/go_grid/grid_image_get.rb', line 18 def grid_image_get(={}) request( :path => 'grid/image/get', :query => ) end |
#grid_image_list(options = {}) ⇒ Object
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
21 22 23 24 25 26 |
# File 'lib/fog/compute/requests/go_grid/grid_image_list.rb', line 21 def grid_image_list(={}) request( :path => 'grid/image/list', :query => ) end |
#grid_ip_list(options = {}) ⇒ Object
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
20 21 22 23 24 25 |
# File 'lib/fog/compute/requests/go_grid/grid_ip_list.rb', line 20 def grid_ip_list(={}) request( :path => 'grid/ip/list', :query => ) end |
#grid_loadbalancer_list(options = {}) ⇒ Object
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
18 19 20 21 22 23 |
# File 'lib/fog/compute/requests/go_grid/grid_loadbalancer_list.rb', line 18 def grid_loadbalancer_list(={}) request( :path => 'grid/loadbalancer/list', :query => ) end |
#grid_server_add(name, image, ip, options = {}) ⇒ Object
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
21 22 23 24 25 26 27 28 29 30 |
# File 'lib/fog/compute/requests/go_grid/grid_server_add.rb', line 21 def grid_server_add(name, image, ip, ={}) request( :path => 'grid/server/add', :query => { 'image' => image, 'ip' => ip, 'name' => name, }.merge!() ) end |
#grid_server_delete(server) ⇒ Object
Delete a server
Parameters
-
‘server’<~String> - id or name of server to delete
Returns
-
response<~Excon::Response>:
-
body<~Array>:
-
TODO: docs
15 16 17 18 19 20 |
# File 'lib/fog/compute/requests/go_grid/grid_server_delete.rb', line 15 def grid_server_delete(server) request( :path => 'grid/server/delete', :query => {'server' => server} ) end |
#grid_server_get(servers) ⇒ Object
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
15 16 17 18 19 20 |
# File 'lib/fog/compute/requests/go_grid/grid_server_get.rb', line 15 def grid_server_get(servers) request( :path => 'grid/server/get', :query => {'server' => [*servers]} ) end |
#grid_server_list(options = {}) ⇒ Object
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
20 21 22 23 24 25 |
# File 'lib/fog/compute/requests/go_grid/grid_server_list.rb', line 20 def grid_server_list(={}) request( :path => 'grid/server/list', :query => ) end |
#grid_server_power(server, power) ⇒ Object
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
16 17 18 19 20 21 |
# File 'lib/fog/compute/requests/go_grid/grid_server_power.rb', line 16 def grid_server_power(server, power) request( :path => 'grid/server/power', :query => {'server' => server} ) end |
#reload ⇒ Object
77 78 79 |
# File 'lib/fog/compute/go_grid.rb', line 77 def reload @connection.reset end |
#request(params) ⇒ Object
81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 |
# File 'lib/fog/compute/go_grid.rb', line 81 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::GoGrid::Compute::NotFound.slurp(error) else error end end unless response.body.empty? response.body = JSON.parse(response.body) end response end |