Class: Fog::Compute::BareMetalCloud::Real
- Inherits:
-
Object
- Object
- Fog::Compute::BareMetalCloud::Real
- Defined in:
- lib/fog/bare_metal_cloud/compute.rb,
lib/fog/bare_metal_cloud/requests/compute/add_server.rb,
lib/fog/bare_metal_cloud/requests/compute/get_server.rb,
lib/fog/bare_metal_cloud/requests/compute/list_plans.rb,
lib/fog/bare_metal_cloud/requests/compute/list_images.rb,
lib/fog/bare_metal_cloud/requests/compute/list_servers.rb,
lib/fog/bare_metal_cloud/requests/compute/cancel_server.rb,
lib/fog/bare_metal_cloud/requests/compute/reboot_server.rb,
lib/fog/bare_metal_cloud/requests/compute/list_configurations.rb,
lib/fog/bare_metal_cloud/requests/compute/add_server_by_configuration.rb
Instance Method Summary collapse
-
#add_server(plan_id, options = {}) ⇒ Object
Boot a new server.
-
#add_server_by_configuration(config, options = {}) ⇒ Object
Boot a new server by configuration.
-
#cancel_server(server_id) ⇒ Object
Shutdown a running server.
-
#get_server(server_id) ⇒ Object
List servers.
-
#initialize(options = {}) ⇒ Real
constructor
A new instance of Real.
-
#list_configurations ⇒ Object
List Configurations.
-
#list_images ⇒ Object
List images.
-
#list_plans ⇒ Object
List available plans.
-
#list_servers ⇒ Object
List servers.
-
#reboot_server(server_id) ⇒ Object
Reboot a running server.
- #reload ⇒ Object
- #request(params) ⇒ Object
Constructor Details
#initialize(options = {}) ⇒ Real
Returns a new instance of Real.
52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/fog/bare_metal_cloud/compute.rb', line 52 def initialize(={}) require 'fog/core/parser' @bare_metal_cloud_password = [:bare_metal_cloud_password] @bare_metal_cloud_username = [:bare_metal_cloud_username] @connection_options = [:connection_options] || {} @host = [:host] || "noc.newservers.com" @persistent = [:persistent] || false @port = [:port] || 443 @scheme = [:scheme] || 'https' @connection = Fog::Connection.new("#{@scheme}://#{@host}:#{@port}", @persistent, @connection_options) end |
Instance Method Details
#add_server(plan_id, options = {}) ⇒ Object
Boot a new server
Parameters
- planId<~String> - The id of the plan to boot the server with
- options<~Hash>: optional extra arguments
- imageId<~String> - Optional image to boot server from
- name<~String> - Name to boot new server with
Returns
- response<~Excon::Response>:
- body<~Hash>:
- 'server'<~Hash>:
- 'id'<~String> - Id of the image
- 'server'<~Hash>:
- body<~Hash>:
20 21 22 23 24 25 26 27 28 |
# File 'lib/fog/bare_metal_cloud/requests/compute/add_server.rb', line 20 def add_server(plan_id, = {}) request( :expects => 200, :method => 'GET', :parser => Fog::ToHashDocument.new, :path => 'api/addServer', :query => {'planId' => plan_id}.merge!() ) end |
#add_server_by_configuration(config, options = {}) ⇒ Object
Boot a new server by configuration
Parameters
- config<~String> - The Hardware configuration string
- options<~Hash>: optional extra arguments
- imageName<~String> - Optional imageName to be installed
- name<~String> - Optional server Name
Returns
- response<~Excon::Response>:
- body<~Hash>:
- 'server'<~Hash>:
- 'id'<~String> - Id of the image
- 'server'<~Hash>:
- body<~Hash>:
20 21 22 23 24 25 26 27 28 |
# File 'lib/fog/bare_metal_cloud/requests/compute/add_server_by_configuration.rb', line 20 def add_server_by_configuration(config, = {}) request( :expects => 200, :method => 'GET', :parser => Fog::ToHashDocument.new, :path => 'api/addServerByConfiguration', :query => {'configuration' => config}.merge!() ) end |
#cancel_server(server_id) ⇒ Object
Shutdown a running server
Parameters
- serverId<~String> - The id of the server to shutdown
Returns
- response<~Excon::Response>:
- body<~Hash>:
- 'server'<~Hash>:
- 'id'<~String> - Id of the image
- 'server'<~Hash>:
- body<~Hash>:
17 18 19 20 21 22 23 24 25 |
# File 'lib/fog/bare_metal_cloud/requests/compute/cancel_server.rb', line 17 def cancel_server(server_id) request( :expects => 200, :method => 'GET', :parser => Fog::ToHashDocument.new, :path => 'api/cancelServer', :query => {'serverId' => server_id} ) end |
#get_server(server_id) ⇒ Object
List servers
Parameters
- serverId<~String> - Id of the server
Returns
- response<~Excon::Response>:
- body<~Has>:
- server<~Hash>:
- 'id'<~String> - Id of the server
- 'mac-address'<~String> - mac-address of the server
- 'ip'<~Hash>:
- 'address'<~String> - Address of the ip
- 'name'<~String> - Name of the ip
- 'login'<~Hash>:
- 'name'<~String> - Name of the login
- 'password'<~String> - Password of the login
- 'username'<~String> - Username of the login
- 'name'<~String> - Name of the server
- 'notes'<~String> - Notes about the server
- 'state'<~String> - State of the server
- server<~Hash>:
- body<~Has>:
28 29 30 31 32 33 34 35 36 |
# File 'lib/fog/bare_metal_cloud/requests/compute/get_server.rb', line 28 def get_server(server_id) request( :expects => 200, :method => 'GET', :parser => Fog::ToHashDocument.new, :path => 'api/getServer', :query => {'serverId' => server_id} ) end |
#list_configurations ⇒ Object
List Configurations
Returns
- response<~Excon::Response>:
- body<~Hash>:
- available-server<~Array>:
- 'configuration'<~String> - Hardware Configuration string
- 'quantity'<~String>: - quantity of servers to a certain configuration
- available-server<~Array>:
- body<~Hash>:
15 16 17 18 19 20 21 22 |
# File 'lib/fog/bare_metal_cloud/requests/compute/list_configurations.rb', line 15 def list_configurations request( :expects => 200, :method => 'GET', :parser => Fog::ToHashDocument.new, :path => 'api/listConfigurations' ) end |
#list_images ⇒ Object
List images
Returns
- response<~Excon::Response>:
- body<~Hash>:
- 'image'<~Array>
- 'Size'<~String> - Size of the image
- 'Name'<~String> - Name of the image
- 'image'<~Array>
- body<~Hash>:
15 16 17 18 19 20 21 22 |
# File 'lib/fog/bare_metal_cloud/requests/compute/list_images.rb', line 15 def list_images request( :expects => 200, :method => 'GET', :parser => Fog::ToHashDocument.new, :path => 'api/listImages' ) end |
#list_plans ⇒ Object
List available plans
Returns
- response<~Excon::Response>:
- body<~Hash>:
- 'plan'<~Array>
- 'id'<~String> - Id of the plan
- 'name'<~String> - Name of the plan
- 'rate'<~String> - Cost per hour of the plan
- 'os'<~String> - Operating system of the plan
- 'config'<~String> - Configuration of the plan
- 'plan'<~Array>
- body<~Hash>:
18 19 20 21 22 23 24 25 |
# File 'lib/fog/bare_metal_cloud/requests/compute/list_plans.rb', line 18 def list_plans request( :expects => 200, :method => 'GET', :parser => Fog::ToHashDocument.new, :path => 'api/listPlans' ) end |
#list_servers ⇒ Object
List servers
Returns
- response<~Excon::Response>:
- body<~Hash>:
- server<~Array>:
- 'id'<~String> - Id of the server
- 'ip'<~Hash>:
- 'address'<~String> - Address of the ip
- 'name'<~String> - Name of the ip
- 'login'<~Hash>:
- 'name'<~String> - Name of the login
- 'password'<~String> - Password of the login
- 'username'<~String> - Username of the login
- 'name'<~String> - Name of the server
- 'notes'<~String> - Notes about the server
- 'state'<~String> - State of the server
- server<~Array>:
- body<~Hash>:
24 25 26 27 28 29 30 31 |
# File 'lib/fog/bare_metal_cloud/requests/compute/list_servers.rb', line 24 def list_servers request( :expects => 200, :method => 'GET', :parser => Fog::ToHashDocument.new, :path => 'api/listServers' ) end |
#reboot_server(server_id) ⇒ Object
Reboot a running server
Parameters
- serverId<~String> - The id of the server to reboot
11 12 13 14 15 16 17 18 19 |
# File 'lib/fog/bare_metal_cloud/requests/compute/reboot_server.rb', line 11 def reboot_server(server_id) request( :expects => 200, :method => 'GET', :parser => Fog::ToHashDocument.new, :path => 'api/rebootServer', :query => {'serverId' => server_id} ) end |
#reload ⇒ Object
65 66 67 |
# File 'lib/fog/bare_metal_cloud/compute.rb', line 65 def reload @connection.reset end |
#request(params) ⇒ Object
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 |
# File 'lib/fog/bare_metal_cloud/compute.rb', line 69 def request(params) params[:query] ||= {} params[:query].merge!({ :password => @bare_metal_cloud_password, :username => @bare_metal_cloud_username }) params[:headers] ||= {} case params[:method] when 'DELETE', 'GET', 'HEAD' params[:headers]['Accept'] = 'application/xml' when 'POST', 'PUT' params[:headers]['Content-Type'] = 'application/xml' end begin response = @connection.request(params.merge!({:host => @host})) rescue Excon::Errors::HTTPStatusError => error raise case error when Excon::Errors::NotFound Fog::Compute::BareMetalCloud::NotFound.slurp(error) else error end end response end |