Class: Fog::Rackspace::Servers
- Inherits:
-
Object
- Object
- Fog::Rackspace::Servers
- Defined in:
- lib/fog/rackspace/servers.rb,
lib/fog/rackspace/models/servers/server.rb,
lib/fog/rackspace/models/servers/servers.rb,
lib/fog/rackspace/requests/servers/list_images.rb,
lib/fog/rackspace/requests/servers/list_images.rb,
lib/fog/rackspace/requests/files/get_containers.rb,
lib/fog/rackspace/requests/servers/create_image.rb,
lib/fog/rackspace/requests/servers/create_image.rb,
lib/fog/rackspace/requests/servers/delete_image.rb,
lib/fog/rackspace/requests/servers/delete_image.rb,
lib/fog/rackspace/requests/servers/list_flavors.rb,
lib/fog/rackspace/requests/servers/list_flavors.rb,
lib/fog/rackspace/requests/servers/list_servers.rb,
lib/fog/rackspace/requests/servers/list_servers.rb,
lib/fog/rackspace/requests/files/head_containers.rb,
lib/fog/rackspace/requests/servers/create_server.rb,
lib/fog/rackspace/requests/servers/create_server.rb,
lib/fog/rackspace/requests/servers/delete_server.rb,
lib/fog/rackspace/requests/servers/delete_server.rb,
lib/fog/rackspace/requests/servers/reboot_server.rb,
lib/fog/rackspace/requests/servers/reboot_server.rb,
lib/fog/rackspace/requests/servers/update_server.rb,
lib/fog/rackspace/requests/servers/update_server.rb,
lib/fog/rackspace/requests/servers/get_server_details.rb,
lib/fog/rackspace/requests/servers/get_server_details.rb,
lib/fog/rackspace/requests/servers/list_images_detail.rb,
lib/fog/rackspace/requests/servers/list_images_detail.rb,
lib/fog/rackspace/requests/servers/list_servers_detail.rb,
lib/fog/rackspace/requests/servers/list_servers_detail.rb
Defined Under Namespace
Class Method Summary collapse
Instance Method Summary collapse
-
#create_image ⇒ Object
Create an image from a running server.
-
#create_server ⇒ Object
Create a new server.
-
#delete_image ⇒ Object
Delete an image.
-
#delete_server ⇒ Object
Delete an existing server.
- #get_flavors ⇒ Object
-
#get_server_details ⇒ Object
Get details about a server.
-
#initialize(options = {}) ⇒ Servers
constructor
A new instance of Servers.
-
#list_flavors ⇒ Object
List all images (IDs and names only).
-
#list_images ⇒ Object
List all images (IDs and names only).
-
#list_images_detail ⇒ Object
List all images.
-
#list_servers ⇒ Object
List all servers (IDs and names only).
-
#list_servers_detail ⇒ Object
List all servers details.
- #list_servers_details ⇒ Object
-
#reboot_server(server_id, type) ⇒ Object
Reboot an existing server.
- #request(params) ⇒ Object
- #servers ⇒ Object
-
#update_server ⇒ Object
Update an existing server.
Constructor Details
#initialize(options = {}) ⇒ Servers
Returns a new instance of Servers.
23 24 25 26 27 28 29 30 31 32 |
# File 'lib/fog/rackspace/servers.rb', line 23 def initialize(={}) credentials = Fog::Rackspace.authenticate() @auth_token = credentials['X-Auth-Token'] uri = URI.parse(credentials['X-Server-Management-Url']) @host = uri.host @path = uri.path @port = uri.port @scheme = uri.scheme @connection = Fog::Connection.new("#{@scheme}://#{@host}:#{@port}") end |
Class Method Details
.reload ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/fog/rackspace/servers.rb', line 5 def self.reload load "fog/rackspace/models/servers/server.rb" load "fog/rackspace/models/servers/servers.rb" load "fog/rackspace/requests/servers/create_image.rb" load "fog/rackspace/requests/servers/create_server.rb" load "fog/rackspace/requests/servers/delete_image.rb" load "fog/rackspace/requests/servers/delete_server.rb" load "fog/rackspace/requests/servers/get_server_details.rb" load "fog/rackspace/requests/servers/list_flavors.rb" load "fog/rackspace/requests/servers/list_images.rb" load "fog/rackspace/requests/servers/list_images_detail.rb" load "fog/rackspace/requests/servers/list_servers.rb" load "fog/rackspace/requests/servers/list_servers_detail.rb" load "fog/rackspace/requests/servers/reboot_server.rb" load "fog/rackspace/requests/servers/update_server.rb" end |
Instance Method Details
#create_image ⇒ Object
Create an image from a running server
Parameters
-
server_id<~Integer> - Id of server to create image from
-
options<~Hash> - Name
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/fog/rackspace/requests/servers/create_image.rb', line 13 def create_image(server_id, = {}) data = { 'image' => { 'serverId' => server_id } } if ['name'] data['image']['name'] = ['name'] end request( :body => data.to_json, :expects => 202, :method => 'POST', :path => "images" ) end |
#create_server ⇒ Object
Create a new server
Parameters
-
flavor_id<~Integer> - Id of flavor for server
-
image_id<~Integer> - Id of image for server
-
name<~String> - Name of server
-
options<~Hash>:
-
‘metadata’<~Hash> - Up to 5 key value pairs containing 255 bytes of info
-
‘name’<~String> - Name of server, defaults to “slice#id”
-
‘personality’<~Array>: Up to 5 files to customize server
-
file<~Hash>:
-
‘contents’<~String> - Contents of file (10kb total of contents)
-
‘path’<~String> - Path to file (255 bytes total of path strings)
-
-
-
Returns
-
response<~Fog::AWS::Response>:
-
body<~Hash>:
-
‘server’<~Hash>:
-
‘addresses’<~Hash>:
-
‘public’<~Array> - public address strings
-
‘private’<~Array> - private address strings
-
-
‘adminPass’<~String> - Admin password for server
-
‘flavorId’<~Integer> - Id of servers current flavor
-
‘hostId’<~String>
-
‘id’<~Integer> - Id of server
-
‘imageId’<~Integer> - Id of image used to boot server
-
‘metadata’<~Hash> - metadata
-
‘name<~String> - Name of server
-
‘progress’<~Integer> - Progress through current status
-
‘status’<~String> - Current server status
-
-
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
# File 'lib/fog/rackspace/requests/servers/create_server.rb', line 37 def create_server(flavor_id, image_id, = {}) data = { 'server' => { 'flavorId' => flavor_id, 'imageId' => image_id } } if ['metadata'] data['server']['metadata'] = ['metadata'] end if ['name'] data['server']['name'] = ['name'] end if ['personality'] data['server']['personality'] = [] for file in ['personality'] data['server']['personality'] << { 'contents' => Base64.encode64(file['contents']), 'path' => file['path'] } end end request( :body => data.to_json, :expects => 202, :method => 'POST', :path => 'servers.json' ) end |
#delete_image ⇒ Object
Delete an image
Parameters
-
image_id<~Integer> - Id of image to delete
12 13 14 15 16 17 18 |
# File 'lib/fog/rackspace/requests/servers/delete_image.rb', line 12 def delete_image(image_id) request( :expects => 204, :method => 'DELETE', :path => "images/#{image_id}" ) end |
#delete_server ⇒ Object
Delete an existing server
Parameters
-
id<~Integer> - Id of server to delete
12 13 14 15 16 17 18 |
# File 'lib/fog/rackspace/requests/servers/delete_server.rb', line 12 def delete_server(id) request( :expects => 202, :method => 'DELETE', :path => "servers/#{id}" ) end |
#get_flavors ⇒ Object
49 50 |
# File 'lib/fog/rackspace/requests/files/get_containers.rb', line 49 def get_flavors end |
#get_server_details ⇒ Object
Get details about a server
Returns
-
response<~Fog::AWS::Response>:
-
body<~Hash>:
-
‘server’<~Hash>:
-
‘addresses’<~Hash>:
-
‘public’<~Array> - public address strings
-
‘private’<~Array> - private address strings
-
-
‘flavorId’<~Integer> - Id of servers current flavor
-
‘hostId’<~String>
-
‘id’<~Integer> - Id of server
-
‘imageId’<~Integer> - Id of image used to boot server
-
‘metadata’<~Hash> - metadata
-
‘name<~String> - Name of server
-
‘progress’<~Integer> - Progress through current status
-
‘status’<~String> - Current server status
-
-
24 25 26 27 28 29 30 |
# File 'lib/fog/rackspace/requests/servers/get_server_details.rb', line 24 def get_server_details(id) request( :expects => 200, :method => 'GET', :path => "servers/#{id}.json" ) end |
#list_flavors ⇒ Object
List all images (IDs and names only)
Returns
-
response<~Fog::AWS::Response>:
-
body<~Hash>:
-
‘id’<~Integer> - Id of the flavor
-
‘name’<~String> - Name of the flavor
-
‘ram’<~Integer> - Amount of ram for the flavor
-
‘disk’<~Integer> - Amount of diskspace for the flavor
-
-
16 17 18 19 20 21 22 |
# File 'lib/fog/rackspace/requests/servers/list_flavors.rb', line 16 def list_flavors request( :expects => 200, :method => 'GET', :path => 'flavors.json' ) end |
#list_images ⇒ Object
List all images (IDs and names only)
Returns
-
response<~Fog::AWS::Response>:
-
body<~Hash>:
-
‘id’<~Integer> - Id of the image
-
‘name’<~String> - Name of the image
-
-
14 15 16 17 18 19 20 |
# File 'lib/fog/rackspace/requests/servers/list_images.rb', line 14 def list_images request( :expects => [200, 203], :method => 'GET', :path => 'images.json' ) end |
#list_images_detail ⇒ Object
List all images
Returns
-
response<~Fog::AWS::Response>:
-
body<~Hash>:
-
‘id’<~Integer> - Id of the image
-
‘name’<~String> - Name of the image
-
‘updated’<~String> - Last update timestamp for image
-
‘created’<~String> - Creation timestamp for image
-
‘status’<~String> - Status of image
-
-
17 18 19 20 21 22 23 |
# File 'lib/fog/rackspace/requests/servers/list_images_detail.rb', line 17 def list_images_detail request( :expects => [200, 203], :method => 'GET', :path => 'images/detail.json' ) end |
#list_servers ⇒ Object
List all servers (IDs and names only)
Returns
-
response<~Fog::AWS::Response>:
-
body<~Hash>:
-
‘servers’<~Array>:
-
‘id’<~Integer> - Id of server
-
‘name<~String> - Name of server
-
-
15 16 17 18 19 20 21 |
# File 'lib/fog/rackspace/requests/servers/list_servers.rb', line 15 def list_servers request( :expects => 200, :method => 'GET', :path => 'servers.json' ) end |
#list_servers_detail ⇒ Object
List all servers details
Returns
-
response<~Fog::AWS::Response>:
-
body<~Hash>:
-
‘servers’<~Array>:
-
‘id’<~Integer> - Id of server
-
‘name<~String> - Name of server
-
‘imageId’<~Integer> - Id of image used to boot server
-
‘flavorId’<~Integer> - Id of servers current flavor
-
‘hostId’<~String>
-
‘status’<~String> - Current server status
-
‘progress’<~Integer> - Progress through current status
-
‘addresses’<~Hash>:
-
‘public’<~Array> - public address strings
-
‘private’<~Array> - private address strings
-
-
‘metadata’<~Hash> - metadata
-
-
24 25 26 27 28 29 30 |
# File 'lib/fog/rackspace/requests/servers/list_servers_detail.rb', line 24 def list_servers_detail request( :expects => [200, 203], :method => 'GET', :path => 'servers/detail.json' ) end |
#list_servers_details ⇒ Object
42 43 |
# File 'lib/fog/rackspace/requests/servers/list_servers_detail.rb', line 42 def list_servers_details end |
#reboot_server(server_id, type) ⇒ Object
Reboot an existing server
Parameters
-
server_id<~Integer> - Id of server to reboot
-
type<~String> - Type of reboot, must be in [‘HARD’, ‘SOFT’]
13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/fog/rackspace/requests/servers/reboot_server.rb', line 13 def reboot_server(server_id, type) data = { 'reboot' => { 'type' => type } } request( :body => data.to_json, :expects => 202, :method => 'POST', :path => "servers/#{id}" ) end |
#request(params) ⇒ Object
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/fog/rackspace/servers.rb', line 34 def request(params) response = @connection.request({ :body => params[:body], :expects => params[:expects], :headers => { 'X-Auth-Token' => @auth_token }, :host => @host, :method => params[:method], :path => "#{@path}/#{params[:path]}" }) unless response.body.empty? response.body = JSON.parse(response.body) end response end |
#servers ⇒ Object
5 6 7 |
# File 'lib/fog/rackspace/models/servers/servers.rb', line 5 def servers Fog::Rackspace::Servers::Servers.new(:connection => self) end |
#update_server ⇒ Object
Update an existing server
Parameters
# server_id<~Integer> - Id of server to update
-
options<~Hash>:
-
name<~String> - New name for server
-
adminPass<~String> - New admin password for server
-
15 16 |
# File 'lib/fog/rackspace/requests/servers/update_server.rb', line 15 def update_server end |