# File lib/fog/rackspace/compute_v2.rb, line 126 def initialize(options = {}) @rackspace_api_key = options[:rackspace_api_key] @rackspace_username = options[:rackspace_username] @rackspace_auth_url = options[:rackspace_auth_url] setup_custom_endpoint(options) @rackspace_must_reauthenticate = false @connection_options = options[:connection_options] || {} authenticate deprecation_warnings(options) @persistent = options[:persistent] || false @connection = Fog::Connection.new(endpoint_uri.to_s, @persistent, @connection_options) end
This operation attaches a volume to the specified server. @param [String] server_id @param [String] volume_id @param [String] device name of the device /dev/xvd[a-p] (optional) @return [Excon::Response] response:
* body [Hash]: * volumeAttachment [Hash]: * device [String] - The name of the device, such as /dev/xvdb. Specify auto for auto-assignment. * serverId [String] - The id of the server that attached the volume * id [String] - The id of the attachment * volumeId [String] - The id of the volume that was attached
@raise [Fog::Compute::RackspaceV2::NotFound] - HTTP 404 @raise [Fog::Compute::RackspaceV2::BadRequest] - HTTP 400 @raise [Fog::Compute::RackspaceV2::InternalServerError] - HTTP 500 @raise [Fog::Compute::RackspaceV2::ServiceError] @see docs.rackspace.com/servers/api/v2/cs-devguide/content/Attach_Volume_to_Server.html
# File lib/fog/rackspace/requests/compute_v2/attach_volume.rb, line 22 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/compute_v2.rb, line 173 def authenticate options = { :rackspace_api_key => @rackspace_api_key, :rackspace_username => @rackspace_username, :rackspace_auth_url => @rackspace_auth_url } super(options) end
Changes server admin password @param [String] server_id @param [String] password @return [Excon::Response] response @raise [Fog::Compute::RackspaceV2::NotFound] - HTTP 404 @raise [Fog::Compute::RackspaceV2::BadRequest] - HTTP 400 @raise [Fog::Compute::RackspaceV2::InternalServerError] - HTTP 500 @raise [Fog::Compute::RackspaceV2::ServiceError] @note Though Rackspace does not enforce complexity requirements for the password, the operating system might. If the password is not complex enough, the server might enter an ERROR state. @see docs.rackspace.com/servers/api/v2/cs-devguide/content/Change_Password-d1e3234.html
# File lib/fog/rackspace/requests/compute_v2/change_server_password.rb, line 16 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
Confirm server resize operation @param [String] server_id The id of the server to revert @return [Excon::Response] response @raise [Fog::Compute::RackspaceV2::NotFound] - HTTP 404 @raise [Fog::Compute::RackspaceV2::BadRequest] - HTTP 400 @raise [Fog::Compute::RackspaceV2::InternalServerError] - HTTP 500 @raise [Fog::Compute::RackspaceV2::ServiceError] @note All resizes are automatically confirmed after 24 hours if you do not explicitly confirm or revert the resize. @see docs.rackspace.com/servers/api/v2/cs-devguide/content/Revert_Resized_Server-d1e4024.html
Status Transition:
VERIFY_RESIZE -> ACTIVE
VERIFY_RESIZE -> ERROR (on error)
# File lib/fog/rackspace/requests/compute_v2/confirm_resize_server.rb, line 19 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
@param [String] server_id Id of server to create image from @param [String] name name for created image @param [Hash] options @option options [Hash] :metadata - key value pairs of image metadata @return [Excon::Response] response @raise [Fog::Compute::RackspaceV2::NotFound] - HTTP 404 @raise [Fog::Compute::RackspaceV2::BadRequest] - HTTP 400 @raise [Fog::Compute::RackspaceV2::InternalServerError] - HTTP 500 @raise [Fog::Compute::RackspaceV2::ServiceError] @see docs.rackspace.com/servers/api/v2/cs-devguide/content/Create_Image-d1e4655.html
State Transition:
SAVING -> ACTIVE
SAVING -> ERROR (on error)
# File lib/fog/rackspace/requests/compute_v2/create_image.rb, line 22 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_network.rb, line 5 def create_network(label, cidr) data = { 'network' => { 'label' => label, 'cidr' => cidr } } request( :method => 'POST', :body => Fog::JSON.encode(data), :path => "os-networksv2", :expects => 200 ) end
Create server @param [String] name name of server @param [String] image_id of the image used to create server @param [String] flavor_id id of the flavor of the image @param [String] min_count @param [String] max_count @param [Hash] options @option options [Hash] metadata key value pairs of server metadata @option options [String] OS-DCF:diskConfig The disk configuration value. (AUTO or MANUAL) @option options [Hash] personality Hash containing data to inject into the file system of the cloud server instance during server creation. @return [Excon::Response] response:
* body [Hash]: * server [Hash]: * name [String] - name of server * imageRef [String] - id of image used to create server * flavorRef [String] - id of flavor used to create server * OS-DCF:diskConfig [String] - The disk configuration value. * name [String] - name of server * metadata [Hash] - Metadata key and value pairs. * personality [Array]: * [Hash]: * path - path of the file created * contents - Base 64 encoded file contents * networks [Array]: * [Hash]: * uuid [String] - uuid of attached network
@raise [Fog::Compute::RackspaceV2::NotFound] - HTTP 404 @raise [Fog::Compute::RackspaceV2::BadRequest] - HTTP 400 @raise [Fog::Compute::RackspaceV2::InternalServerError] - HTTP 500 @raise [Fog::Compute::RackspaceV2::ServiceError] @see docs.rackspace.com/servers/api/v2/cs-devguide/content/CreateServers.html @see docs.rackspace.com/servers/api/v2/cs-devguide/content/Server_Metadata-d1e2529.html @see docs.rackspace.com/servers/api/v2/cs-devguide/content/Server_Personality-d1e2543.html @see docs.rackspace.com/servers/api/v2/cs-devguide/content/ch_extensions.html#diskconfig_attribute
State Transitions
BUILD -> ACTIVE
BUILD -> ERROR (on error)
# File lib/fog/rackspace/requests/compute_v2/create_server.rb, line 43 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']['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? data['server']['networks'] = options[:networks] || [ { :uuid => '00000000-0000-0000-0000-000000000000' }, { :uuid => '11111111-1111-1111-1111-111111111111' } ] request( :body => Fog::JSON.encode(data), :expects => [202], :method => 'POST', :path => "servers" ) end
Deletes a specified volume attachment from a specified server instance. @param [String] server_id id of server containing volume to delete @param [String] volume_id id of volume on server to delete @return [Excon::Response] response @raise [Fog::Compute::RackspaceV2::NotFound] - HTTP 404 @raise [Fog::Compute::RackspaceV2::BadRequest] - HTTP 400 @raise [Fog::Compute::RackspaceV2::InternalServerError] - HTTP 500 @raise [Fog::Compute::RackspaceV2::ServiceError] @see docs.rackspace.com/servers/api/v2/cs-devguide/content/Delete_Volume_Attachment.html
# File lib/fog/rackspace/requests/compute_v2/delete_attachment.rb, line 15 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 @param [String] image_id Id of image to delete @return [Excon::Response] response @raise [Fog::Compute::RackspaceV2::NotFound] - HTTP 404 @raise [Fog::Compute::RackspaceV2::BadRequest] - HTTP 400 @raise [Fog::Compute::RackspaceV2::InternalServerError] - HTTP 500 @raise [Fog::Compute::RackspaceV2::ServiceError] @see docs.rackspace.com/servers/api/v2/cs-devguide/content/Delete_Image-d1e4957.html
# File lib/fog/rackspace/requests/compute_v2/delete_image.rb, line 14 def delete_image(image_id) request( :expects => 204, :method => 'DELETE', :path => "images/#{image_id}" ) end
Deletes a metadata item. @param [String<images, servers>] collection type of metadata @param [String] obj_id id of the object where the metadata is attached @param [String] key the key of the metadata to delete @return [Excon::Response] response @raise [Fog::Compute::RackspaceV2::NotFound] - HTTP 404 @raise [Fog::Compute::RackspaceV2::BadRequest] - HTTP 400 @raise [Fog::Compute::RackspaceV2::InternalServerError] - HTTP 500 @raise [Fog::Compute::RackspaceV2::ServiceError] @see docs.rackspace.com/servers/api/v2/cs-devguide/content/Delete_Metadata_Item-d1e5790.html
# File lib/fog/rackspace/requests/compute_v2/delete_metadata_item.rb, line 16 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_network.rb, line 5 def delete_network(id) request(:method => 'DELETE', :path => "os-networksv2/#{id}", :expects => 202) end
Deletes a specified server instance from the system. @param [String] server_id the id of the server to delete @return [Excon::Response] response @raise [Fog::Compute::RackspaceV2::NotFound] - HTTP 404 @raise [Fog::Compute::RackspaceV2::BadRequest] - HTTP 400 @raise [Fog::Compute::RackspaceV2::InternalServerError] - HTTP 500 @raise [Fog::Compute::RackspaceV2::ServiceError] @see docs.rackspace.com/servers/api/v2/cs-devguide/content/Delete_Server-d1e2883.html
# File lib/fog/rackspace/requests/compute_v2/delete_server.rb, line 14 def delete_server(server_id) request( :expects => [204], :method => 'DELETE', :path => "servers/#{server_id}" ) end
# File lib/fog/rackspace/compute_v2.rb, line 190 def endpoint_uri(service_endpoint_url=nil) @uri = super(@rackspace_endpoint || service_endpoint_url, :rackspace_compute_url) end
Retrieves attachment @param [String] server_id @param [String] volume_id @return [Excon::Response] response:
* body [Hash]: * volumeAttachment [Hash]: * device [String] - The name of the device, such as /dev/xvdb. Specify auto for auto-assignment. * serverId [String] - The id of the server that attached the volume * id [String] - The id of the attachment * volumeId [String] - The id of the volume that was attached
@raise [Fog::Compute::RackspaceV2::NotFound] - HTTP 404 @raise [Fog::Compute::RackspaceV2::BadRequest] - HTTP 400 @raise [Fog::Compute::RackspaceV2::InternalServerError] - HTTP 500 @raise [Fog::Compute::RackspaceV2::ServiceError] @see docs.rackspace.com/servers/api/v2/cs-devguide/content/Get_Volume_Attachment_Details.html
# File lib/fog/rackspace/requests/compute_v2/get_attachment.rb, line 21 def get_attachment(server_id, volume_id) request( :expects => [200, 203, 300], :method => 'GET', :path => "servers/#{server_id}/os-volume_attachments/#{volume_id}" ) end
Retrieves flavor detail @param [Sring] flavor_id @return [Excon::Response] response:
* body [Hash]: * flavor [Hash]: * disk [Fixnum] - disk size in GB * id [String] - id of flavor * name [String] - name of flavor * ram [Fixnum] - amount of ram in MB * swap [Fixnum] - amount of swap in GB * vcpus [Fixnum] - number of virtual CPUs * links [Array] - links to flavor
@raise [Fog::Compute::RackspaceV2::NotFound] - HTTP 404 @raise [Fog::Compute::RackspaceV2::BadRequest] - HTTP 400 @raise [Fog::Compute::RackspaceV2::InternalServerError] - HTTP 500 @raise [Fog::Compute::RackspaceV2::ServiceError] @see docs.rackspace.com/servers/api/v2/cs-devguide/content/Get_Flavor_Details-d1e4317.html
# File lib/fog/rackspace/requests/compute_v2/get_flavor.rb, line 23 def get_flavor(flavor_id) request( :expects => [200, 203], :method => 'GET', :path => "flavors/#{flavor_id}" ) end
Retrieves image detail @param [String] image_id @return [Excon::Response] response:
* body [Hash]: * image [Hash]: * OS-DCF:diskConfig [String] - The disk configuration value. * created [String] - created timestamp * id [String] - id of image * metadata [Hash] - image metadata * minDisk [Fixnum] * minRam [Fixnum] * name [String] - name of image * progress [Fixnum] - progress complete. Value is from 0 to 100. * status [String] - status of current image * updated [String] - updated timestamp * links [Array] - links to flavor
@raise [Fog::Compute::RackspaceV2::NotFound] - HTTP 404 @raise [Fog::Compute::RackspaceV2::BadRequest] - HTTP 400 @raise [Fog::Compute::RackspaceV2::InternalServerError] - HTTP 500 @raise [Fog::Compute::RackspaceV2::ServiceError] @see docs.rackspace.com/servers/api/v2/cs-devguide/content/Get_Image_Details-d1e4848.html
# File lib/fog/rackspace/requests/compute_v2/get_image.rb, line 27 def get_image(image_id) request( :expects => [200, 203], :method => 'GET', :path => "images/#{image_id}" ) end
Retrieves single metadatum item by key. @param [String<images, servers>] collection type of metadata @param [String] obj_id id of the object where the metadata is attached @param [String] key the key of the metadata to retrieve @return [Excon::Response] response:
* body [Hash]: * meta [Hash]:
@raise [Fog::Compute::RackspaceV2::NotFound] - HTTP 404 @raise [Fog::Compute::RackspaceV2::BadRequest] - HTTP 400 @raise [Fog::Compute::RackspaceV2::InternalServerError] - HTTP 500 @raise [Fog::Compute::RackspaceV2::ServiceError] @see docs.rackspace.com/servers/api/v2/cs-devguide/content/Get_Metadata_Item-d1e5507.html
# File lib/fog/rackspace/requests/compute_v2/get_metadata_item.rb, line 18 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_network.rb, line 5 def get_network(id) request(:method => 'GET', :path => "os-networksv2/#{id}", :expects => 200) end
Retrieves server detail @param [String] server_id @return [Excon::Response] response:
* body [Hash]: * server [Hash]: * OS-DCF:diskConfig [String] - The disk configuration value. * OS-EXT-STS:power_state [Fixnum] - The power state. * OS-EXT-STS:task_state [String] - The task state. * OS-EXT-STS:vm_state [String] - The VM state. * accessIPv4 [String] - The public IP version 4 access address. * accessIPv6 [String] - The public IP version 6 access address. * addresses [Hash] - Public and private IP addresses, The version field indicates whether the IP address is version 4 or 6. * created [String] - created timestamp * hostId [String] - The host id. * id [String] - id of image * image [Hash]: * id [String] - id of the image * links [Hash] - links to image * flavor [Hash]: * id [String] - id of the flavor * links [Hash] - links to flavor * links [Hash] - links to server * metadata [Hash] - server metadata * name [String] - name of server * progress [Fixnum] - progress complete. Value is from 0 to 100. * rax-bandwidth:bandwidth [Array] - The amount of bandwidth used for the specified audit period. * status [String] - The server status. * tenant_id [String] - The tenant ID. * updated [String] - updated timestamp * user_id [Array] - The user ID.
@raise [Fog::Compute::RackspaceV2::NotFound] - HTTP 404 @raise [Fog::Compute::RackspaceV2::BadRequest] - HTTP 400 @raise [Fog::Compute::RackspaceV2::InternalServerError] - HTTP 500 @raise [Fog::Compute::RackspaceV2::ServiceError] @see docs.rackspace.com/servers/api/v2/cs-devguide/content/Get_Server_Details-d1e2623.html
# File lib/fog/rackspace/requests/compute_v2/get_server.rb, line 41 def get_server(server_id) request( :expects => [200, 203, 300], :method => 'GET', :path => "servers/#{server_id}" ) end
Lists all networks and addresses associated with a specified server. @param [String] server_id @return [Excon::Response] response:
* body [Hash]: * addresses [Hash] - key is the network name and the value are an array of addresses allocated for that network
@raise [Fog::Compute::RackspaceV2::NotFound] - HTTP 404 @raise [Fog::Compute::RackspaceV2::BadRequest] - HTTP 400 @raise [Fog::Compute::RackspaceV2::InternalServerError] - HTTP 500 @raise [Fog::Compute::RackspaceV2::ServiceError]
# File lib/fog/rackspace/requests/compute_v2/list_addresses.rb, line 15 def list_addresses(server_id) request( :method => 'GET', :expects => 200, :path => "/servers/#{server_id}/ips" ) end
Lists all addresses associated with a specified server and network @param [String] server_id @param [String] network_id @return [Excon::Response] response:
* body [Hash]: * network [Hash]: * id [String] - id of network * ip [Array]: * [Hash]: * version [Fixnum] - version of the address * addr [String] - ip address
@raise [Fog::Compute::RackspaceV2::NotFound] - HTTP 404 @raise [Fog::Compute::RackspaceV2::BadRequest] - HTTP 400 @raise [Fog::Compute::RackspaceV2::InternalServerError] - HTTP 500 @raise [Fog::Compute::RackspaceV2::ServiceError] @see docs.rackspace.com/servers/api/v2/cs-devguide/content/List_Addresses_by_Network-d1e3118.html
# File lib/fog/rackspace/requests/compute_v2/list_addresses_by_network.rb, line 22 def list_addresses_by_network(server_id, network_id) request( :method => 'GET', :expects => 200, :path => "servers/#{server_id}/ips/#{network_id}" ) end
Retrieves list of attached volumes @param [String] server_id @return [Excon::Response] response:
* body [Hash]: * volumeAttachment [Array]: * [Hash]: * device [String] - The name of the device, such as /dev/xvdb. Specify auto for auto-assignment. * serverId [String] - The id of the server that attached the volume * id [String] - The id of the attachment * volumeId [String] - The id of the volume that was attached
@raise [Fog::Compute::RackspaceV2::NotFound] - HTTP 404 @raise [Fog::Compute::RackspaceV2::BadRequest] - HTTP 400 @raise [Fog::Compute::RackspaceV2::InternalServerError] - HTTP 500 @raise [Fog::Compute::RackspaceV2::ServiceError] @see docs.rackspace.com/servers/api/v2/cs-devguide/content/List_Volume_Attachments.html
# File lib/fog/rackspace/requests/compute_v2/list_attachments.rb, line 21 def list_attachments(server_id) request( :expects => [200, 203, 300], :method => 'GET', :path => "servers/#{server_id}/os-volume_attachments" ) end
Retrieves a list of flavors @return [Excon::Response] response:
* body [Hash]: * flavors [Array]: * [Hash]: * id [String] - flavor id * links [Array] - flavor links * name [String] - flavor name
@raise [Fog::Compute::RackspaceV2::NotFound] - HTTP 404 @raise [Fog::Compute::RackspaceV2::BadRequest] - HTTP 400 @raise [Fog::Compute::RackspaceV2::InternalServerError] - HTTP 500 @raise [Fog::Compute::RackspaceV2::ServiceError] @see docs.rackspace.com/servers/api/v2/cs-devguide/content/List_Flavors-d1e4188.html
# File lib/fog/rackspace/requests/compute_v2/list_flavors.rb, line 19 def list_flavors request( :expects => [200, 203], :method => 'GET', :path => 'flavors' ) end
Retrieves a list of images @return [Excon::Response] response:
* body [Hash]: * images [Array]: * [Hash]: * id [String] - flavor id * links [Array] - image links * name [String] - image name
@raise [Fog::Compute::RackspaceV2::NotFound] - HTTP 404 @raise [Fog::Compute::RackspaceV2::BadRequest] - HTTP 400 @raise [Fog::Compute::RackspaceV2::InternalServerError] - HTTP 500 @raise [Fog::Compute::RackspaceV2::ServiceError] @see docs.rackspace.com/servers/api/v2/cs-devguide/content/List_Flavors-d1e4188.html
# File lib/fog/rackspace/requests/compute_v2/list_images.rb, line 19 def list_images request( :expects => [200, 203], :method => 'GET', :path => 'images' ) end
Retrieves all metadata associated with a server or an image. @param [String<images, servers>] collection type of metadata @param [String] obj_id id of the object where the metadata is attached @return [Excon::Response] response:
* body [Hash]: * meta [Hash]:
@raise [Fog::Compute::RackspaceV2::NotFound] - HTTP 404 @raise [Fog::Compute::RackspaceV2::BadRequest] - HTTP 400 @raise [Fog::Compute::RackspaceV2::InternalServerError] - HTTP 500 @raise [Fog::Compute::RackspaceV2::ServiceError] @see docs.rackspace.com/servers/api/v2/cs-devguide/content/List_Metadata-d1e5089.html
# File lib/fog/rackspace/requests/compute_v2/list_metadata.rb, line 17 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_networks.rb, line 5 def list_networks request(:method => 'GET', :path => 'os-networksv2', :expects => 200) end
Retrieves list of servers @return [Excon::Response] response:
* body [Hash]: * server [Hash]: * OS-DCF:diskConfig [String] - The disk configuration value. * OS-EXT-STS:power_state [Fixnum] - The power state. * OS-EXT-STS:task_state [String] - The task state. * OS-EXT-STS:vm_state [String] - The VM state. * accessIPv4 [String] - The public IP version 4 access address. * accessIPv6 [String] - The public IP version 6 access address. * addresses [Hash] - Public and private IP addresses, The version field indicates whether the IP address is version 4 or 6. * created [String] - created timestamp * hostId [String] - The host id. * id [String] - id of image * image [Hash]: * id [String] - id of the image * links [Hash] - links to image * flavor [Hash]: * id [String] - id of the flavor * links [Hash] - links to flavor * links [Hash] - links to server * metadata [Hash] - server metadata * name [String] - name of server * progress [Fixnum] - progress complete. Value is from 0 to 100. * rax-bandwidth:bandwidth [Array] - The amount of bandwidth used for the specified audit period. * status [String] - The server status. * tenant_id [String] - The tenant ID. * updated [String] - updated timestamp * user_id [Array] - The user ID.
@raise [Fog::Compute::RackspaceV2::NotFound] - HTTP 404 @raise [Fog::Compute::RackspaceV2::BadRequest] - HTTP 400 @raise [Fog::Compute::RackspaceV2::InternalServerError] - HTTP 500 @raise [Fog::Compute::RackspaceV2::ServiceError] @see docs.rackspace.com/servers/api/v2/cs-devguide/content/List_Servers-d1e2078.html
# File lib/fog/rackspace/requests/compute_v2/list_servers.rb, line 40 def list_servers request( :expects => [200, 203, 300], :method => 'GET', :path => 'servers/detail' ) end
Reboots server @param [String] server_id @param [String<SOFT,HARD>] type type of reboot @raise [Fog::Compute::RackspaceV2::NotFound] - HTTP 404 @raise [Fog::Compute::RackspaceV2::BadRequest] - HTTP 400 @raise [Fog::Compute::RackspaceV2::InternalServerError] - HTTP 500 @raise [Fog::Compute::RackspaceV2::ServiceError] @see docs.rackspace.com/servers/api/v2/cs-devguide/content/Reboot_Server-d1e3371.html
# File lib/fog/rackspace/requests/compute_v2/reboot_server.rb, line 14 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
The rebuild operation removes all data on the server and replaces it with the specified image. The serverRef and all IP addresses remain the same. If you specify name, metadata, accessIPv4, or accessIPv6 in the rebuild request, new values replace existing values. Otherwise, these values do not change. @param [String] server_id id of the server to rebuild @param [String] image_id id of image used to rebuild the server @param [Hash] options @option options [String] accessIPv4 The IP version 4 address. @option options [String] accessIPv6 The IP version 6 address. @option options [String] adminPass The administrator password. @option options [Hash] metadata key value pairs of server metadata @option options [String] OS-DCF:diskConfig The disk configuration value. (AUTO or MANUAL) @option options [Hash] personality Hash containing data to inject into the file system of the cloud server instance during server creation. @return [Excon::Response] response:
* body [Hash]: * server [Hash]: * name [String] - name of server * imageRef [String] - id of image used to create server * flavorRef [String] - id of flavor used to create server * OS-DCF:diskConfig [String] - The disk configuration value. * name [String] - name of server * metadata [Hash] - Metadata key and value pairs. * personality [Array]: * [Hash]: * path - path of the file created * contents - Base 64 encoded file contents * networks [Array]: * [Hash]: * uuid [String] - uuid of attached network
@raise [Fog::Compute::RackspaceV2::NotFound] - HTTP 404 @raise [Fog::Compute::RackspaceV2::BadRequest] - HTTP 400 @raise [Fog::Compute::RackspaceV2::InternalServerError] - HTTP 500 @raise [Fog::Compute::RackspaceV2::ServiceError] @see docs.rackspace.com/servers/api/v2/cs-devguide/content/Rebuild_Server-d1e3538.html @see docs.rackspace.com/servers/api/v2/cs-devguide/content/Server_Metadata-d1e2529.html @see docs.rackspace.com/servers/api/v2/cs-devguide/content/Server_Personality-d1e2543.html @see docs.rackspace.com/servers/api/v2/cs-devguide/content/ch_extensions.html#diskconfig_attribute
Status Transition:
ACTIVE -> REBUILD -> ACTIVE
ACTIVE -> REBUILD -> ERROR (on error)
# File lib/fog/rackspace/requests/compute_v2/rebuild_server.rb, line 46 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 186 def region @rackspace_region end
# File lib/fog/rackspace/compute_v2.rb, line 142 def request(params) begin response = @connection.request(params.merge!({ :headers => { 'Content-Type' => 'application/json', 'Accept' => 'application/json', 'X-Auth-Token' => auth_token }.merge!(params[:headers] || {}), :host => endpoint_uri.host, :path => "#{endpoint_uri.path}/#{params[:path]}" })) rescue Excon::Errors::NotFound => error raise NotFound.slurp(error, region) 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? begin response.body = Fog::JSON.decode(response.body) rescue Fog::JSON::LoadError response.body = {} end end response end
Puts server into rescue mode @param [String] server_id id of server to rescue @return [Excon::Response] response @raise [Fog::Rackspace::Errors::NotFound] - HTTP 404 @raise [Fog::Rackspace::Errors::BadRequest] - HTTP 400 @raise [Fog::Rackspace::Errors::InternalServerError] - HTTP 500 @raise [Fog::Rackspace::Errors::ServiceError] @note Rescue mode is only guaranteed to be active for 90 minutes @see docs.rackspace.com/servers/api/v2/cs-devguide/content/rescue_mode.html
Status Transition:
PREP_RESCUE -> RESCUE
PREP_RESCUE -> ACTIVE (on error)
# File lib/fog/rackspace/requests/compute_v2/rescue_server.rb, line 18 def rescue_server(server_id) data = { 'rescue' => nil } request( :body => Fog::JSON.encode(data), :expects => [200], :method => 'POST', :path => "servers/#{server_id}/action" ) end
Reverts server resize operation @param [String] server_id id of server to resize @param [String] flavor_id id of the desired flavor @return [Excon::Response] response @raise [Fog::Compute::RackspaceV2::NotFound] - HTTP 404 @raise [Fog::Compute::RackspaceV2::BadRequest] - HTTP 400 @raise [Fog::Compute::RackspaceV2::InternalServerError] - HTTP 500 @raise [Fog::Compute::RackspaceV2::ServiceError] @note All resizes are automatically confirmed after 24 hours if you do not explicitly confirm or revert the resize. @see docs.rackspace.com/servers/api/v2/cs-devguide/content/Revert_Resized_Server-d1e4024.html
Status Transition:
VERIFY_RESIZE -> ACTIVE
VERIFY_RESIZE -> ERROR (on error)
# File lib/fog/rackspace/requests/compute_v2/resize_server.rb, line 20 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
Reverts server resize operation @param [String] server_id @return [Excon::Response] response @raise [Fog::Compute::RackspaceV2::NotFound] - HTTP 404 @raise [Fog::Compute::RackspaceV2::BadRequest] - HTTP 400 @raise [Fog::Compute::RackspaceV2::InternalServerError] - HTTP 500 @raise [Fog::Compute::RackspaceV2::ServiceError] @note All resizes are automatically confirmed after 24 hours if you do not explicitly confirm or revert the resize. @see docs.rackspace.com/servers/api/v2/cs-devguide/content/Revert_Resized_Server-d1e4024.html @see Server#resize
Status Transition:
VERIFY_RESIZE -> ACTIVE
VERIFY_RESIZE -> ERROR (on error)
# File lib/fog/rackspace/requests/compute_v2/revert_resize_server.rb, line 20 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/compute_v2.rb, line 182 def service_name :cloudServersOpenStack end
Sets metadata associated with a server or an image. @param [String<images, servers>] collection type of metadata @param [String] obj_id id of the object where the metadata is attached @param [Hash] metadata key value pairs of metadata @return [Excon::Response] response:
* body [Hash]: * metadata [Hash]:
@raise [Fog::Compute::RackspaceV2::NotFound] - HTTP 404 @raise [Fog::Compute::RackspaceV2::BadRequest] - HTTP 400 @raise [Fog::Compute::RackspaceV2::InternalServerError] - HTTP 500 @raise [Fog::Compute::RackspaceV2::ServiceError] @see docs.rackspace.com/servers/api/v2/cs-devguide/content/Create_or_Replace_Metadata-d1e5358.html
# File lib/fog/rackspace/requests/compute_v2/set_metadata.rb, line 18 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
Sets a single metadatum item by key. @param [String<images, servers>] collection type of metadata @param [String] obj_id id of the object where the metadata is attached @param [String] key the key of the metadata to set @param [String] value the value of the metadata to set @return [Excon::Response] response:
* body [Hash]: * meta [Hash]:
@raise [Fog::Compute::RackspaceV2::NotFound] - HTTP 404 @raise [Fog::Compute::RackspaceV2::BadRequest] - HTTP 400 @raise [Fog::Compute::RackspaceV2::InternalServerError] - HTTP 500 @raise [Fog::Compute::RackspaceV2::ServiceError] @see docs.rackspace.com/servers/api/v2/cs-devguide/content/Create_or_Update_a_Metadata_Item-d1e5633.html
# File lib/fog/rackspace/requests/compute_v2/set_metadata_item.rb, line 19 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
Take server out of rescue mode @param [String] server_id id of server @return [Excon::Response] response @raise [Fog::Rackspace::Errors::NotFound] - HTTP 404 @raise [Fog::Rackspace::Errors::BadRequest] - HTTP 400 @raise [Fog::Rackspace::Errors::InternalServerError] - HTTP 500 @raise [Fog::Rackspace::Errors::ServiceError] @see docs.rackspace.com/servers/api/v2/cs-devguide/content/exit_rescue_mode.html
Status Transition:
RESCUE -> PREP_UNRESCUE -> ACTIVE
RESCUE -> ERROR (on error)
# File lib/fog/rackspace/requests/compute_v2/unrescue_server.rb, line 17 def unrescue_server(server_id) data = { 'unrescue' => nil } request( :body => Fog::JSON.encode(data), :expects => [202], :method => 'POST', :path => "servers/#{server_id}/action" ) end
Updates metadata items for a specified server or image. @param [String<images, servers>] collection type of metadata @param [String] obj_id id of the object where the metadata is attached @param [Hash] metadata key value pairs of metadata @return [Excon::Response] response:
* body [Hash]: * metadata [Hash]:
@raise [Fog::Compute::RackspaceV2::NotFound] - HTTP 404 @raise [Fog::Compute::RackspaceV2::BadRequest] - HTTP 400 @raise [Fog::Compute::RackspaceV2::InternalServerError] - HTTP 500 @raise [Fog::Compute::RackspaceV2::ServiceError] @see docs.rackspace.com/servers/api/v2/cs-devguide/content/Update_Metadata-d1e5208.html
# File lib/fog/rackspace/requests/compute_v2/update_metadata.rb, line 18 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
Update the editable attributes of a specified server. @param [String] server_id @param [Hash] options @option options [Hash] name name for server @option options [String] accessIPv4 The IP version 4 address. @option options [Hash] accessIPv6 The IP version 6 address. @raise [Fog::Compute::RackspaceV2::NotFound] - HTTP 404 @raise [Fog::Compute::RackspaceV2::BadRequest] - HTTP 400 @raise [Fog::Compute::RackspaceV2::InternalServerError] - HTTP 500 @raise [Fog::Compute::RackspaceV2::ServiceError] @note If you edit the server name, the server host name does not change. Also, server names are not guaranteed to be unique. @see docs.rackspace.com/servers/api/v2/cs-devguide/content/ServerUpdate.html
# File lib/fog/rackspace/requests/compute_v2/update_server.rb, line 18 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.