Object
# File lib/fog/rackspace/compute_v2.rb, line 90 def initialize(options = {}) @rackspace_api_key = options[:rackspace_api_key] @rackspace_username = options[:rackspace_username] @rackspace_auth_url = options[:rackspace_auth_url] @rackspace_must_reauthenticate = false @connection_options = options[:connection_options] || {} endpoint = options[:rackspace_endpoint] || DFW_ENDPOINT uri = URI.parse(endpoint) @host = uri.host @persistent = options[:persistent] || false @path = uri.path @port = uri.port @scheme = uri.scheme authenticate @connection = Fog::Connection.new(uri.to_s, @persistent, @connection_options) end
# File lib/fog/rackspace/requests/compute_v2/attach_volume.rb, line 5 def attach_volume(server_id, volume_id, device) data = { 'volumeAttachment' => { 'volumeId' => volume_id } } data['volumeAttachment']['device'] = device if device request( :body => Fog::JSON.encode(data), :expects => [200], :method => 'POST', :path => "servers/#{server_id}/os-volume_attachments" ) end
# File lib/fog/rackspace/requests/compute_v2/change_server_password.rb, line 5 def change_server_password(server_id, password) data = { 'changePassword' => { 'adminPass' => password } } request( :body => Fog::JSON.encode(data), :expects => [202], :method => 'POST', :path => "servers/#{server_id}/action" ) end
# File lib/fog/rackspace/requests/compute_v2/confirm_resize_server.rb, line 5 def confirm_resize_server(server_id) data = { 'confirmResize' => nil } request( :body => Fog::JSON.encode(data), :expects => [204], :method => 'POST', :path => "servers/#{server_id}/action" ) end
Create an image from a running server
server_id<~Integer> - Id of server to create image from
name - Name of image
options<~Hash> - Name
# File lib/fog/rackspace/requests/compute_v2/create_image.rb, line 13 def create_image(server_id, name, options = {}) data = { 'createImage' => { 'name' => name } } data['createImage'].merge!(options) request( :body => Fog::JSON.encode(data), :expects => 202, :method => 'POST', :path => "servers/#{server_id}/action" ) end
# File lib/fog/rackspace/requests/compute_v2/create_server.rb, line 5 def create_server(name, image_id, flavor_id, min_count, max_count, options = {}) data = { 'server' => { 'name' => name, 'imageRef' => image_id, 'flavorRef' => flavor_id, 'minCount' => min_count, 'maxCount' => max_count } } data['server']['metadata'] = options[:metadata] unless options[:metadata].nil? data['server']['OS-DCF:diskConfig'] = options[:disk_config] unless options[:disk_config].nil? data['server']['metadata'] = options[:metadata] unless options[:metadata].nil? data['server']['personality'] = options[:personality] unless options[:personality].nil? request( :body => Fog::JSON.encode(data), :expects => [202], :method => 'POST', :path => "servers" ) end
# File lib/fog/rackspace/requests/compute_v2/delete_attachment.rb, line 5 def delete_attachment(server_id, volume_id) request( :expects => [202], :method => 'DELETE', :path => "servers/#{server_id}/os-volume_attachments/#{volume_id}" ) end
Delete an image
image_id<~Integer> - Id of image to delete
# File lib/fog/rackspace/requests/compute_v2/delete_image.rb, line 11 def delete_image(image_id) request( :expects => 204, :method => 'DELETE', :path => "images/#{image_id}" ) end
# File lib/fog/rackspace/requests/compute_v2/delete_metadata_item.rb, line 5 def delete_metadata_item(collection, obj_id, key) request( :expects => 204, :method => 'DELETE', :path => "/#{collection}/#{obj_id}/metadata/#{key}" ) end
# File lib/fog/rackspace/requests/compute_v2/delete_server.rb, line 5 def delete_server(server_id) request( :expects => [204], :method => 'DELETE', :path => "servers/#{server_id}" ) end
# File lib/fog/rackspace/requests/compute_v2/get_attachment.rb, line 5 def get_attachment(server_id, volume_id) request( :expects => [200, 203, 300], :method => 'GET', :path => "servers/#{server_id}/os-volume_attachments/#{volume_id}" ) end
# File lib/fog/rackspace/requests/compute_v2/get_flavor.rb, line 5 def get_flavor(flavor_id) request( :expects => [200, 203], :method => 'GET', :path => "flavors/#{flavor_id}" ) end
# File lib/fog/rackspace/requests/compute_v2/get_image.rb, line 5 def get_image(image_id) request( :expects => [200, 203], :method => 'GET', :path => "images/#{image_id}" ) end
# File lib/fog/rackspace/requests/compute_v2/get_metadata_item.rb, line 5 def get_metadata_item(collection, obj_id, key) request( :expects => 200, :method => 'GET', :path => "/#{collection}/#{obj_id}/metadata/#{key}" ) end
# File lib/fog/rackspace/requests/compute_v2/get_server.rb, line 5 def get_server(server_id) request( :expects => [200, 203, 300], :method => 'GET', :path => "servers/#{server_id}" ) end
# File lib/fog/rackspace/requests/compute_v2/list_addresses.rb, line 6 def list_addresses(server_id) request( :method => 'GET', :expects => 200, :path => "/servers/#{server_id}/ips" ) end
# File lib/fog/rackspace/requests/compute_v2/list_addresses_by_network.rb, line 6 def list_addresses_by_network(server_id, network_id) request( :method => 'GET', :expects => 200, :path => "servers/#{server_id}/ips/#{network_id}" ) end
# File lib/fog/rackspace/requests/compute_v2/list_attachments.rb, line 5 def list_attachments(server_id) request( :expects => [200, 203, 300], :method => 'GET', :path => "servers/#{server_id}/os-volume_attachments" ) end
# File lib/fog/rackspace/requests/compute_v2/list_flavors.rb, line 5 def list_flavors request( :expects => [200, 203], :method => 'GET', :path => 'flavors' ) end
# File lib/fog/rackspace/requests/compute_v2/list_images.rb, line 5 def list_images request( :expects => [200, 203], :method => 'GET', :path => 'images' ) end
# File lib/fog/rackspace/requests/compute_v2/list_metadata.rb, line 5 def list_metadata(collection, obj_id) request( :expects => [200, 203], :method => 'GET', :path => "/#{collection}/#{obj_id}/metadata" ) end
# File lib/fog/rackspace/requests/compute_v2/list_servers.rb, line 5 def list_servers request( :expects => [200, 203, 300], :method => 'GET', :path => 'servers/detail' ) end
# File lib/fog/rackspace/requests/compute_v2/reboot_server.rb, line 5 def reboot_server(server_id, type) data = { 'reboot' => { 'type' => type } } request( :body => Fog::JSON.encode(data), :expects => [202], :method => 'POST', :path => "servers/#{server_id}/action" ) end
# File lib/fog/rackspace/requests/compute_v2/rebuild_server.rb, line 5 def rebuild_server(server_id, image_id, options={}) data = { 'rebuild' => options || {} } data['rebuild']['imageRef'] = image_id request( :body => Fog::JSON.encode(data), :expects => [202], :method => 'POST', :path => "servers/#{server_id}/action" ) end
# File lib/fog/rackspace/compute_v2.rb, line 111 def request(params) begin response = @connection.request(params.merge!({ :headers => { 'Content-Type' => 'application/json', 'X-Auth-Token' => @auth_token }.merge!(params[:headers] || {}), :host => @host, :path => "#{@path}/#{params[:path]}" })) rescue Excon::Errors::NotFound => error raise NotFound.slurp error rescue Excon::Errors::BadRequest => error raise BadRequest.slurp error rescue Excon::Errors::InternalServerError => error raise InternalServerError.slurp error rescue Excon::Errors::HTTPStatusError => error raise ServiceError.slurp error end unless response.body.empty? response.body = Fog::JSON.decode(response.body) end response end
# File lib/fog/rackspace/requests/compute_v2/resize_server.rb, line 5 def resize_server(server_id, flavor_id) data = { 'resize' => { 'flavorRef' => flavor_id } } request( :body => Fog::JSON.encode(data), :expects => [202], :method => 'POST', :path => "servers/#{server_id}/action" ) end
# File lib/fog/rackspace/requests/compute_v2/revert_resize_server.rb, line 5 def revert_resize_server(server_id) data = { 'revertResize' => nil } request( :body => Fog::JSON.encode(data), :expects => [202], :method => 'POST', :path => "servers/#{server_id}/action" ) end
# File lib/fog/rackspace/requests/compute_v2/set_metadata.rb, line 5 def set_metadata(collection, obj_id, metadata = {}) request( :expects => [200, 203], :method => 'PUT', :path => "/#{collection}/#{obj_id}/metadata", :body => Fog::JSON.encode('metadata' => metadata) ) end
# File lib/fog/rackspace/requests/compute_v2/set_metadata_item.rb, line 5 def set_metadata_item(collection, obj_id, key, value) request( :expects => 200, :method => 'PUT', :path => "/#{collection}/#{obj_id}/metadata/#{key}", :body => Fog::JSON.encode('meta' => { key => value }) ) end
# File lib/fog/rackspace/requests/compute_v2/update_metadata.rb, line 5 def update_metadata(collection, obj_id, metadata = {}) request( :expects => [200, 203], :method => 'POST', :path => "/#{collection}/#{obj_id}/metadata", :body => Fog::JSON.encode('metadata' => metadata) ) end
# File lib/fog/rackspace/requests/compute_v2/update_server.rb, line 5 def update_server(server_id, options={}) data = options.is_a?(Hash) ? options : { 'name' => options } #LEGACY - second parameter was previously server name request( :body => Fog::JSON.encode('server' => data), :expects => [200], :method => 'PUT', :path => "servers/#{server_id}" ) end
Generated with the Darkfish Rdoc Generator 2.