Class: Fog::Compute::RackspaceV2::Real
- Inherits:
-
Rackspace::Service
- Object
- Rackspace::Service
- Fog::Compute::RackspaceV2::Real
- Defined in:
- lib/fog/rackspace/compute_v2.rb,
lib/fog/rackspace/requests/compute_v2/get_image.rb,
lib/fog/rackspace/requests/compute_v2/get_flavor.rb,
lib/fog/rackspace/requests/compute_v2/get_server.rb,
lib/fog/rackspace/requests/compute_v2/get_keypair.rb,
lib/fog/rackspace/requests/compute_v2/get_network.rb,
lib/fog/rackspace/requests/compute_v2/list_images.rb,
lib/fog/rackspace/requests/compute_v2/create_image.rb,
lib/fog/rackspace/requests/compute_v2/delete_image.rb,
lib/fog/rackspace/requests/compute_v2/list_flavors.rb,
lib/fog/rackspace/requests/compute_v2/list_servers.rb,
lib/fog/rackspace/requests/compute_v2/set_metadata.rb,
lib/fog/rackspace/requests/compute_v2/attach_volume.rb,
lib/fog/rackspace/requests/compute_v2/create_server.rb,
lib/fog/rackspace/requests/compute_v2/delete_server.rb,
lib/fog/rackspace/requests/compute_v2/list_keypairs.rb,
lib/fog/rackspace/requests/compute_v2/list_metadata.rb,
lib/fog/rackspace/requests/compute_v2/list_networks.rb,
lib/fog/rackspace/requests/compute_v2/reboot_server.rb,
lib/fog/rackspace/requests/compute_v2/rescue_server.rb,
lib/fog/rackspace/requests/compute_v2/resize_server.rb,
lib/fog/rackspace/requests/compute_v2/update_server.rb,
lib/fog/rackspace/requests/compute_v2/create_keypair.rb,
lib/fog/rackspace/requests/compute_v2/create_network.rb,
lib/fog/rackspace/requests/compute_v2/delete_keypair.rb,
lib/fog/rackspace/requests/compute_v2/delete_network.rb,
lib/fog/rackspace/requests/compute_v2/get_attachment.rb,
lib/fog/rackspace/requests/compute_v2/list_addresses.rb,
lib/fog/rackspace/requests/compute_v2/rebuild_server.rb,
lib/fog/rackspace/requests/compute_v2/get_vnc_console.rb,
lib/fog/rackspace/requests/compute_v2/unrescue_server.rb,
lib/fog/rackspace/requests/compute_v2/update_metadata.rb,
lib/fog/rackspace/requests/compute_v2/list_attachments.rb,
lib/fog/rackspace/requests/compute_v2/delete_attachment.rb,
lib/fog/rackspace/requests/compute_v2/get_metadata_item.rb,
lib/fog/rackspace/requests/compute_v2/set_metadata_item.rb,
lib/fog/rackspace/requests/compute_v2/list_images_detail.rb,
lib/fog/rackspace/requests/compute_v2/list_flavors_detail.rb,
lib/fog/rackspace/requests/compute_v2/delete_metadata_item.rb,
lib/fog/rackspace/requests/compute_v2/revert_resize_server.rb,
lib/fog/rackspace/requests/compute_v2/confirm_resize_server.rb,
lib/fog/rackspace/requests/compute_v2/change_server_password.rb,
lib/fog/rackspace/requests/compute_v2/list_virtual_interfaces.rb,
lib/fog/rackspace/requests/compute_v2/create_virtual_interface.rb,
lib/fog/rackspace/requests/compute_v2/delete_virtual_interface.rb,
lib/fog/rackspace/requests/compute_v2/list_addresses_by_network.rb
Instance Method Summary collapse
-
#attach_volume(server_id, volume_id, device) ⇒ Excon::Response
This operation attaches a volume to the specified server.
- #authenticate(options = {}) ⇒ Object
-
#change_server_password(server_id, password) ⇒ Excon::Response
Changes server admin password.
-
#confirm_resize_server(server_id) ⇒ Excon::Response
Confirm server resize operation * Status Transition: * VERIFY_RESIZE -> ACTIVE * VERIFY_RESIZE -> ERROR (on error).
-
#create_image(server_id, name, options = {}) ⇒ Excon::Response
Create an image from a running server.
-
#create_keypair(key_name, attributes = nil) ⇒ Excon::Response
Request a new keypair to be created.
- #create_network(label, cidr) ⇒ Object
-
#create_server(name, image_id, flavor_id, min_count, max_count, options = {}) ⇒ Excon::Response
Create server * State Transitions * BUILD -> ACTIVE * BUILD -> ERROR (on error).
-
#create_virtual_interface(server_id, network_id) ⇒ Object
Creates virtual interface for a server.
-
#delete_attachment(server_id, volume_id) ⇒ Excon::Response
Deletes a specified volume attachment from a specified server instance.
-
#delete_image(image_id) ⇒ Excon::Response
Delete an image.
-
#delete_keypair(key_name) ⇒ Excon::Response
Delete the key specified with key_name.
-
#delete_metadata_item(collection, obj_id, key) ⇒ Excon::Response
Deletes a metadata item.
- #delete_network(id) ⇒ Object
-
#delete_server(server_id) ⇒ Excon::Response
Deletes a specified server instance from the system.
-
#delete_virtual_interface(server_id, interface_id) ⇒ Object
Deletes virtual interface from server.
- #endpoint_uri(service_endpoint_url = nil) ⇒ Object
-
#get_attachment(server_id, volume_id) ⇒ Excon::Response
Retrieves attachment.
-
#get_flavor(flavor_id) ⇒ Excon::Response
Retrieves flavor detail.
-
#get_image(image_id) ⇒ Excon::Response
Retrieves image detail.
-
#get_keypair(key_name) ⇒ Excon::Response
Retreive single keypair details.
-
#get_metadata_item(collection, obj_id, key) ⇒ Excon::Response
Retrieves single metadatum item by key.
- #get_network(id) ⇒ Object
-
#get_server(server_id) ⇒ Excon::Response
Retrieves server detail.
-
#get_vnc_console(server_id, console_type) ⇒ Object
Get a vnc console for an instance.
-
#initialize(options = {}) ⇒ Real
constructor
A new instance of Real.
-
#list_addresses(server_id) ⇒ Excon::Response
Lists all networks and addresses associated with a specified server.
-
#list_addresses_by_network(server_id, network_id) ⇒ Excon::Response
Lists all addresses associated with a specified server and network.
-
#list_attachments(server_id) ⇒ Excon::Response
Retrieves list of attached volumes.
-
#list_flavors ⇒ Excon::Response
Retrieves a list of flavors.
-
#list_flavors_detail ⇒ Excon::Response
Retrieves a list of flavors.
-
#list_images(options = {}) ⇒ Excon::Response
Retrieves a list of images ==== Parameters * options<~String>: * ‘name’<~String> - Filters the list of images by image name * ‘limit’<~String> - Maximum number of objects to return * ‘marker’<~String> - Only return objects whose name is greater than marker * ‘status’<~String> - Filters the list of images by status * ‘type’<~String> - Filters base Rackspace images or anyn custom server images that have been created.
-
#list_images_detail(options = {}) ⇒ Excon::Response
Retrieves a list of images ==== Parameters * options<~String>: * ‘name’<~String> - Filters the list of images by image name * ‘limit’<~String> - Maximum number of objects to return * ‘marker’<~String> - Only return objects whose name is greater than marker * ‘status’<~String> - Filters the list of images by status * ‘type’<~String> - Filters base Rackspace images or anyn custom server images that have been created.
-
#list_keypairs ⇒ Excon::Response
Returns a list of all key pairs associated with an account.
-
#list_metadata(collection, obj_id) ⇒ Excon::Response
Retrieves all metadata associated with a server or an image.
- #list_networks ⇒ Object
-
#list_servers ⇒ Excon::Response
Retrieves list of servers.
-
#list_virtual_interfaces(server_id) ⇒ Object
Lists virtual interfaces for a server.
-
#reboot_server(server_id, type) ⇒ Object
Reboots server.
-
#rebuild_server(server_id, image_id, options = {}) ⇒ Excon::Response
The rebuild operation removes all data on the server and replaces it with the specified image.
- #region ⇒ Object
- #request(params, parse_json = true) ⇒ Object
- #request_id_header ⇒ Object
-
#rescue_server(server_id) ⇒ Excon::Response
Puts server into rescue mode * Status Transition: * PREP_RESCUE -> RESCUE * PREP_RESCUE -> ACTIVE (on error).
-
#resize_server(server_id, flavor_id) ⇒ Excon::Response
Reverts server resize operation * Status Transition: * VERIFY_RESIZE -> ACTIVE * VERIFY_RESIZE -> ERROR (on error).
-
#revert_resize_server(server_id) ⇒ Excon::Response
Reverts server resize operation * Status Transition: * VERIFY_RESIZE -> ACTIVE * VERIFY_RESIZE -> ERROR (on error).
- #service_name ⇒ Object
-
#set_metadata(collection, obj_id, metadata = {}) ⇒ Excon::Response
Sets metadata associated with a server or an image.
-
#set_metadata_item(collection, obj_id, key, value) ⇒ Excon::Response
Sets a single metadatum item by key.
-
#unrescue_server(server_id) ⇒ Excon::Response
Take server out of rescue mode * Status Transition: * RESCUE -> PREP_UNRESCUE -> ACTIVE * RESCUE -> ERROR (on error).
-
#update_metadata(collection, obj_id, metadata = {}) ⇒ Excon::Response
Updates metadata items for a specified server or image.
-
#update_server(server_id, options = {}) ⇒ Object
Update the editable attributes of a specified server.
Methods inherited from Rackspace::Service
#request_without_retry, #service_net?
Constructor Details
#initialize(options = {}) ⇒ Real
Returns a new instance of Real.
147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 |
# File 'lib/fog/rackspace/compute_v2.rb', line 147 def initialize( = {}) @rackspace_api_key = [:rackspace_api_key] @rackspace_username = [:rackspace_username] @rackspace_auth_url = [:rackspace_auth_url] setup_custom_endpoint() @rackspace_must_reauthenticate = false @connection_options = [:connection_options] || {} authenticate deprecation_warnings() @persistent = [:persistent] || false @connection = Fog::Core::Connection.new(endpoint_uri.to_s, @persistent, @connection_options) end |
Instance Method Details
#attach_volume(server_id, volume_id, device) ⇒ Excon::Response
This operation attaches a volume to the specified server.
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/fog/rackspace/requests/compute_v2/attach_volume.rb', line 21 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 |
#authenticate(options = {}) ⇒ Object
175 176 177 178 179 180 181 182 |
# File 'lib/fog/rackspace/compute_v2.rb', line 175 def authenticate(={}) super({ :rackspace_api_key => @rackspace_api_key, :rackspace_username => @rackspace_username, :rackspace_auth_url => @rackspace_auth_url, :connection_options => @connection_options }) end |
#change_server_password(server_id, password) ⇒ Excon::Response
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.
Changes server admin password
15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/fog/rackspace/requests/compute_v2/change_server_password.rb', line 15 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_resize_server(server_id) ⇒ Excon::Response
All resizes are automatically confirmed after 24 hours if you do not explicitly confirm or revert the resize.
Confirm server resize operation
-
Status Transition:
-
VERIFY_RESIZE -> ACTIVE
-
VERIFY_RESIZE -> ERROR (on error)
-
18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/fog/rackspace/requests/compute_v2/confirm_resize_server.rb', line 18 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_image(server_id, name, options = {}) ⇒ Excon::Response
Create an image from a running server
-
State Transition:
-
SAVING -> ACTIVE
-
SAVING -> ERROR (on error)
-
21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/fog/rackspace/requests/compute_v2/create_image.rb', line 21 def create_image(server_id, name, = {}) data = { 'createImage' => { 'name' => name } } data['createImage'].merge!() request( :body => Fog::JSON.encode(data), :expects => 202, :method => 'POST', :path => "servers/#{server_id}/action" ) end |
#create_keypair(key_name, attributes = nil) ⇒ Excon::Response
Request a new keypair to be created
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/fog/rackspace/requests/compute_v2/create_keypair.rb', line 20 def create_keypair(key_name, attributes = nil) key_data = { 'name' => key_name } if attributes.is_a?(String) Fog::Logger.deprecation "Passing the public key as the 2nd arg is deprecated, please pass a hash of attributes." key_data.merge!("public_key" => attributes) end key_data.merge!(attributes) if attributes.is_a?(Hash) data = { 'keypair' => key_data } request( :method => 'POST', :expects => 200, :path => '/os-keypairs', :body => Fog::JSON.encode(data) ) end |
#create_network(label, cidr) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# 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(name, image_id, flavor_id, min_count, max_count, options = {}) ⇒ Excon::Response
Create server
-
State Transitions
-
BUILD -> ACTIVE
-
BUILD -> ERROR (on error)
-
55 56 57 58 59 60 61 62 63 64 65 66 67 68 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 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 |
# File 'lib/fog/rackspace/requests/compute_v2/create_server.rb', line 55 def create_server(name, image_id, flavor_id, min_count, max_count, = {}) data = { 'server' => { 'name' => name, 'imageRef' => image_id, 'flavorRef' => flavor_id, 'minCount' => min_count, 'maxCount' => max_count } } data['server']['adminPass'] = [:password] unless [:password].nil? data['server']['OS-DCF:diskConfig'] = [:disk_config] unless [:disk_config].nil? data['server']['metadata'] = [:metadata] unless [:metadata].nil? data['server']['personality'] = [:personality] unless [:personality].nil? data['server']['config_drive'] = [:config_drive] unless [:config_drive].nil? data['server']['user_data'] = [:user_data] unless [:user_data].nil? data['server']['networks'] = [:networks] || [ { :uuid => '00000000-0000-0000-0000-000000000000' }, { :uuid => '11111111-1111-1111-1111-111111111111' } ] if [:keypair] Fog::Logger.deprecation(":keypair has been depreciated. Please use :key_name instead.") [:key_name] = [:keypair] end data['server']['key_name'] = [:key_name] unless [:key_name].nil? if [:block_device_mapping] if [:boot_volume_id] Fog::Logger.warning("Manual :block_device_mapping overrides :boot_volume_id in #create_server!") end if [:boot_image_id] Fog::Logger.warning("Manual :block_device_mapping overrides :boot_image_id in #create_server!") end data['server']['block_device_mapping_v2'] = [:block_device_mapping] else if [:boot_volume_id] if [:boot_image_id] Fog::Logger.warning(":boot_volume_id overrides :boot_image_id!") end if [:boot_volume_size] Fog::Logger.warning("Boot volume size: " + [:boot_volume_size] + "GB") end data['server']['block_device_mapping_v2'] = [{ 'boot_index' => '0', 'uuid' => [:boot_volume_id], 'source_type' => 'volume', 'destination_type' => 'volume', 'volume_size' => [:boot_volume_size] ? [:boot_volume_size] : 100 }] end if [:boot_image_id] data['server']['block_device_mapping_v2'] = [{ 'boot_index' => '0', 'uuid' => [:boot_image_id], 'source_type' => 'image', 'destination_type' => 'volume', 'volume_size' => [:boot_volume_size] ? [:boot_volume_size] : 100 }] end end request( :body => Fog::JSON.encode(data), :expects => [202], :method => 'POST', :path => "servers" ) end |
#create_virtual_interface(server_id, network_id) ⇒ Object
Creates virtual interface for a server
13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/fog/rackspace/requests/compute_v2/create_virtual_interface.rb', line 13 def create_virtual_interface(server_id, network_id) data = { :virtual_interface => { :network_id => network_id } } request( :expects => [200], :method => 'POST', :path => "servers/#{server_id}/os-virtual-interfacesv2", :body => Fog::JSON.encode(data) ) end |
#delete_attachment(server_id, volume_id) ⇒ Excon::Response
Deletes a specified volume attachment from a specified server instance.
14 15 16 17 18 19 20 |
# File 'lib/fog/rackspace/requests/compute_v2/delete_attachment.rb', line 14 def (server_id, volume_id) request( :expects => [202], :method => 'DELETE', :path => "servers/#{server_id}/os-volume_attachments/#{volume_id}" ) end |
#delete_image(image_id) ⇒ Excon::Response
Delete an image
13 14 15 16 17 18 19 |
# File 'lib/fog/rackspace/requests/compute_v2/delete_image.rb', line 13 def delete_image(image_id) request( :expects => 204, :method => 'DELETE', :path => "images/#{image_id}" ) end |
#delete_keypair(key_name) ⇒ Excon::Response
Delete the key specified with key_name
13 14 15 16 17 18 19 |
# File 'lib/fog/rackspace/requests/compute_v2/delete_keypair.rb', line 13 def delete_keypair(key_name) request( :method => 'DELETE', :expects => 202, :path => "/os-keypairs/#{URI.escape(key_name)}" ) end |
#delete_metadata_item(collection, obj_id, key) ⇒ Excon::Response
Deletes a metadata item.
15 16 17 18 19 20 21 |
# File 'lib/fog/rackspace/requests/compute_v2/delete_metadata_item.rb', line 15 def (collection, obj_id, key) request( :expects => 204, :method => 'DELETE', :path => "#{collection}/#{obj_id}/metadata/#{key}" ) end |
#delete_network(id) ⇒ Object
5 6 7 |
# 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 |
#delete_server(server_id) ⇒ Excon::Response
Deletes a specified server instance from the system.
13 14 15 16 17 18 19 |
# File 'lib/fog/rackspace/requests/compute_v2/delete_server.rb', line 13 def delete_server(server_id) request({ :expects => [204], :method => 'DELETE', :path => "servers/#{server_id}" }, false) end |
#delete_virtual_interface(server_id, interface_id) ⇒ Object
Deletes virtual interface from server
13 14 15 16 17 18 19 |
# File 'lib/fog/rackspace/requests/compute_v2/delete_virtual_interface.rb', line 13 def delete_virtual_interface(server_id, interface_id) request( :expects => [200], :method => 'DELETE', :path => "servers/#{server_id}/os-virtual-interfacesv2/#{interface_id}" ) end |
#endpoint_uri(service_endpoint_url = nil) ⇒ Object
196 197 198 |
# File 'lib/fog/rackspace/compute_v2.rb', line 196 def endpoint_uri(service_endpoint_url=nil) @uri = super(@rackspace_endpoint || service_endpoint_url, :rackspace_compute_url) end |
#get_attachment(server_id, volume_id) ⇒ Excon::Response
Retrieves attachment
20 21 22 23 24 25 26 |
# File 'lib/fog/rackspace/requests/compute_v2/get_attachment.rb', line 20 def (server_id, volume_id) request( :expects => [200, 203, 300], :method => 'GET', :path => "servers/#{server_id}/os-volume_attachments/#{volume_id}" ) end |
#get_flavor(flavor_id) ⇒ Excon::Response
Retrieves flavor detail
22 23 24 25 26 27 28 |
# File 'lib/fog/rackspace/requests/compute_v2/get_flavor.rb', line 22 def get_flavor(flavor_id) request( :expects => [200, 203], :method => 'GET', :path => "flavors/#{Fog::Rackspace.escape(flavor_id)}" ) end |
#get_image(image_id) ⇒ Excon::Response
Retrieves image detail
26 27 28 29 30 31 32 |
# File 'lib/fog/rackspace/requests/compute_v2/get_image.rb', line 26 def get_image(image_id) request( :expects => [200, 203], :method => 'GET', :path => "images/#{Fog::Rackspace.escape(image_id)}" ) end |
#get_keypair(key_name) ⇒ Excon::Response
Retreive single keypair details
18 19 20 21 22 23 24 |
# File 'lib/fog/rackspace/requests/compute_v2/get_keypair.rb', line 18 def get_keypair(key_name) request( :method => 'GET', :expects => 200, :path => "/os-keypairs/#{key_name}" ) end |
#get_metadata_item(collection, obj_id, key) ⇒ Excon::Response
Retrieves single metadatum item by key.
17 18 19 20 21 22 23 |
# File 'lib/fog/rackspace/requests/compute_v2/get_metadata_item.rb', line 17 def (collection, obj_id, key) request( :expects => 200, :method => 'GET', :path => "#{collection}/#{obj_id}/metadata/#{key}" ) end |
#get_network(id) ⇒ Object
5 6 7 |
# 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 |
#get_server(server_id) ⇒ Excon::Response
Retrieves server detail
40 41 42 43 44 45 46 |
# File 'lib/fog/rackspace/requests/compute_v2/get_server.rb', line 40 def get_server(server_id) request( :expects => [200, 203, 300], :method => 'GET', :path => "servers/#{server_id}" ) end |
#get_vnc_console(server_id, console_type) ⇒ Object
Get a vnc console for an instance.
Parameters
-
server_id <~String> - The ID of the server.
-
console_type <~String> - Type of vnc console to get (‘novnc’ or ‘xvpvnc’).
Returns
-
response <~Excon::Response>:
-
body <~Hash>:
-
url <~String>
-
type <~String>
-
-
15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/fog/rackspace/requests/compute_v2/get_vnc_console.rb', line 15 def get_vnc_console(server_id, console_type) data = { 'os-getVNCConsole' => { 'type' => console_type } } request( :body => Fog::JSON.encode(data), :expects => [200], :method => 'POST', :path => "servers/#{server_id}/action" ) end |
#list_addresses(server_id) ⇒ Excon::Response
Lists all networks and addresses associated with a specified server.
14 15 16 17 18 19 20 |
# File 'lib/fog/rackspace/requests/compute_v2/list_addresses.rb', line 14 def list_addresses(server_id) request( :method => 'GET', :expects => 200, :path => "/servers/#{server_id}/ips" ) end |
#list_addresses_by_network(server_id, network_id) ⇒ Excon::Response
Lists all addresses associated with a specified server and network
21 22 23 24 25 26 27 |
# File 'lib/fog/rackspace/requests/compute_v2/list_addresses_by_network.rb', line 21 def list_addresses_by_network(server_id, network_id) request( :method => 'GET', :expects => 200, :path => "servers/#{server_id}/ips/#{network_id}" ) end |
#list_attachments(server_id) ⇒ Excon::Response
Retrieves list of attached volumes
20 21 22 23 24 25 26 |
# File 'lib/fog/rackspace/requests/compute_v2/list_attachments.rb', line 20 def (server_id) request( :expects => [200, 203, 300], :method => 'GET', :path => "servers/#{server_id}/os-volume_attachments" ) end |
#list_flavors ⇒ Excon::Response
Retrieves a list of flavors
18 19 20 21 22 23 24 |
# File 'lib/fog/rackspace/requests/compute_v2/list_flavors.rb', line 18 def list_flavors request( :expects => [200, 203], :method => 'GET', :path => 'flavors' ) end |
#list_flavors_detail ⇒ Excon::Response
Retrieves a list of flavors
21 22 23 24 25 26 27 |
# File 'lib/fog/rackspace/requests/compute_v2/list_flavors_detail.rb', line 21 def list_flavors_detail request( :expects => [200, 203], :method => 'GET', :path => 'flavors/detail' ) end |
#list_images(options = {}) ⇒ Excon::Response
Retrieves a list of images
Parameters
-
options<~String>:
-
‘name’<~String> - Filters the list of images by image name
-
‘limit’<~String> - Maximum number of objects to return
-
‘marker’<~String> - Only return objects whose name is greater than marker
-
‘status’<~String> - Filters the list of images by status
-
‘type’<~String> - Filters base Rackspace images or anyn custom server images that have been created
-
26 27 28 29 30 31 32 33 34 |
# File 'lib/fog/rackspace/requests/compute_v2/list_images.rb', line 26 def list_images( = {}) = .reject {|key, value| value.nil?} request( :expects => [200, 203], :method => 'GET', :path => 'images', :query => {'format' => 'json'}.merge!() ) end |
#list_images_detail(options = {}) ⇒ Excon::Response
Retrieves a list of images
Parameters
-
options<~String>:
-
‘name’<~String> - Filters the list of images by image name
-
‘limit’<~String> - Maximum number of objects to return
-
‘marker’<~String> - Only return objects whose name is greater than marker
-
‘status’<~String> - Filters the list of images by status
-
‘type’<~String> - Filters base Rackspace images or anyn custom server images that have been created
-
33 34 35 36 37 38 39 40 41 |
# File 'lib/fog/rackspace/requests/compute_v2/list_images_detail.rb', line 33 def list_images_detail( = {}) = .reject {|key, value| value.nil?} request( :expects => [200, 203], :method => 'GET', :path => 'images/detail', :query => {'format' => 'json'}.merge!() ) end |
#list_keypairs ⇒ Excon::Response
Returns a list of all key pairs associated with an account.
18 19 20 21 22 23 24 |
# File 'lib/fog/rackspace/requests/compute_v2/list_keypairs.rb', line 18 def list_keypairs request( :method => 'GET', :expects => 200, :path => 'os-keypairs' ) end |
#list_metadata(collection, obj_id) ⇒ Excon::Response
Retrieves all metadata associated with a server or an image.
16 17 18 19 20 21 22 |
# File 'lib/fog/rackspace/requests/compute_v2/list_metadata.rb', line 16 def (collection, obj_id) request( :expects => [200, 203], :method => 'GET', :path => "#{collection}/#{obj_id}/metadata" ) end |
#list_networks ⇒ Object
5 6 7 |
# File 'lib/fog/rackspace/requests/compute_v2/list_networks.rb', line 5 def list_networks request(:method => 'GET', :path => 'os-networksv2', :expects => 200) end |
#list_servers ⇒ Excon::Response
Retrieves list of servers
39 40 41 42 43 44 45 |
# File 'lib/fog/rackspace/requests/compute_v2/list_servers.rb', line 39 def list_servers request( :expects => [200, 203, 300], :method => 'GET', :path => 'servers/detail' ) end |
#list_virtual_interfaces(server_id) ⇒ Object
Lists virtual interfaces for a server
12 13 14 15 16 17 18 |
# File 'lib/fog/rackspace/requests/compute_v2/list_virtual_interfaces.rb', line 12 def list_virtual_interfaces(server_id) request( :expects => [200], :method => 'GET', :path => "servers/#{server_id}/os-virtual-interfacesv2" ) end |
#reboot_server(server_id, type) ⇒ Object
Reboots server
13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/fog/rackspace/requests/compute_v2/reboot_server.rb', line 13 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 |
#rebuild_server(server_id, image_id, options = {}) ⇒ Excon::Response
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.
-
Status Transition:
-
ACTIVE -> REBUILD -> ACTIVE
-
ACTIVE -> REBUILD -> ERROR (on error)
-
45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/fog/rackspace/requests/compute_v2/rebuild_server.rb', line 45 def rebuild_server(server_id, image_id, ={}) data = { 'rebuild' => || {} } data['rebuild']['imageRef'] = image_id request( :body => Fog::JSON.encode(data), :expects => [202], :method => 'POST', :path => "servers/#{server_id}/action" ) end |
#region ⇒ Object
192 193 194 |
# File 'lib/fog/rackspace/compute_v2.rb', line 192 def region @rackspace_region end |
#request(params, parse_json = true) ⇒ Object
163 164 165 166 167 168 169 170 171 172 173 |
# File 'lib/fog/rackspace/compute_v2.rb', line 163 def request(params, parse_json = true) super rescue Excon::Errors::NotFound => error raise NotFound.slurp(error, self) rescue Excon::Errors::BadRequest => error raise BadRequest.slurp(error, self) rescue Excon::Errors::InternalServerError => error raise InternalServerError.slurp(error, self) rescue Excon::Errors::HTTPStatusError => error raise ServiceError.slurp(error, self) end |
#request_id_header ⇒ Object
188 189 190 |
# File 'lib/fog/rackspace/compute_v2.rb', line 188 def request_id_header "x-compute-request-id" end |
#rescue_server(server_id) ⇒ Excon::Response
Rescue mode is only guaranteed to be active for 90 minutes
Puts server into rescue mode
-
Status Transition:
-
PREP_RESCUE -> RESCUE
-
PREP_RESCUE -> ACTIVE (on error)
-
18 19 20 21 22 23 24 25 26 27 28 29 |
# 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 |
#resize_server(server_id, flavor_id) ⇒ Excon::Response
All resizes are automatically confirmed after 24 hours if you do not explicitly confirm or revert the resize.
Reverts server resize operation
-
Status Transition:
-
VERIFY_RESIZE -> ACTIVE
-
VERIFY_RESIZE -> ERROR (on error)
-
19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/fog/rackspace/requests/compute_v2/resize_server.rb', line 19 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 |
#revert_resize_server(server_id) ⇒ Excon::Response
All resizes are automatically confirmed after 24 hours if you do not explicitly confirm or revert the resize.
Reverts server resize operation
-
Status Transition:
-
VERIFY_RESIZE -> ACTIVE
-
VERIFY_RESIZE -> ERROR (on error)
-
19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/fog/rackspace/requests/compute_v2/revert_resize_server.rb', line 19 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 |
#service_name ⇒ Object
184 185 186 |
# File 'lib/fog/rackspace/compute_v2.rb', line 184 def service_name :cloudServersOpenStack end |
#set_metadata(collection, obj_id, metadata = {}) ⇒ Excon::Response
Sets metadata associated with a server or an image.
17 18 19 20 21 22 23 24 |
# File 'lib/fog/rackspace/requests/compute_v2/set_metadata.rb', line 17 def (collection, obj_id, = {}) request( :expects => [200, 203], :method => 'PUT', :path => "#{collection}/#{obj_id}/metadata", :body => Fog::JSON.encode('metadata' => ) ) end |
#set_metadata_item(collection, obj_id, key, value) ⇒ Excon::Response
Sets a single metadatum item by key.
18 19 20 21 22 23 24 25 |
# File 'lib/fog/rackspace/requests/compute_v2/set_metadata_item.rb', line 18 def (collection, obj_id, key, value) request( :expects => 200, :method => 'PUT', :path => "#{collection}/#{obj_id}/metadata/#{key}", :body => Fog::JSON.encode('meta' => { key => value }) ) end |
#unrescue_server(server_id) ⇒ Excon::Response
Take server out of rescue mode
-
Status Transition:
-
RESCUE -> PREP_UNRESCUE -> ACTIVE
-
RESCUE -> ERROR (on error)
-
17 18 19 20 21 22 23 24 25 26 27 28 |
# 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 |
#update_metadata(collection, obj_id, metadata = {}) ⇒ Excon::Response
Updates metadata items for a specified server or image.
17 18 19 20 21 22 23 24 |
# File 'lib/fog/rackspace/requests/compute_v2/update_metadata.rb', line 17 def (collection, obj_id, = {}) request( :expects => [200, 203], :method => 'POST', :path => "#{collection}/#{obj_id}/metadata", :body => Fog::JSON.encode('metadata' => ) ) end |
#update_server(server_id, options = {}) ⇒ Object
If you edit the server name, the server host name does not change. Also, server names are not guaranteed to be unique.
Update the editable attributes of a specified server.
17 18 19 20 21 22 23 24 25 26 |
# File 'lib/fog/rackspace/requests/compute_v2/update_server.rb', line 17 def update_server(server_id, ={}) data = .is_a?(Hash) ? : { 'name' => } #LEGACY - second parameter was previously server name request( :body => Fog::JSON.encode('server' => data), :expects => [200], :method => 'PUT', :path => "servers/#{server_id}" ) end |