In Files

Class/Module Index [+]

Quicksearch

Fog::Compute::RackspaceV2::Real

Public Class Methods

new(options = {}) click to toggle source
# 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

Public Instance Methods

attach_volume(server_id, volume_id, device) click to toggle source

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
authenticate() click to toggle source
# 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
change_server_password(server_id, password) click to toggle source

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_resize_server(server_id) click to toggle source

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_image(server_id, name, options = {}) click to toggle source

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
create_network(label, cidr) click to toggle source
# 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 = {}) click to toggle source

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
delete_attachment(server_id, volume_id) click to toggle source

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_image(image_id) click to toggle source

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
delete_metadata_item(collection, obj_id, key) click to toggle source

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
delete_network(id) click to toggle source
# 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) click to toggle source

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
endpoint_uri(service_endpoint_url=nil) click to toggle source
# 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
get_attachment(server_id, volume_id) click to toggle source

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
get_flavor(flavor_id) click to toggle source

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
get_image(image_id) click to toggle source

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
get_metadata_item(collection, obj_id, key) click to toggle source

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
get_network(id) click to toggle source
# 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) click to toggle source

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
list_addresses(server_id) click to toggle source

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
list_addresses_by_network(server_id, network_id) click to toggle source

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
list_attachments(server_id) click to toggle source

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
list_flavors() click to toggle source

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
list_images() click to toggle source

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
list_metadata(collection, obj_id) click to toggle source

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
list_networks() click to toggle source
# 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() click to toggle source

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
reboot_server(server_id, type) click to toggle source

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
rebuild_server(server_id, image_id, options={}) click to toggle source

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
region() click to toggle source
# File lib/fog/rackspace/compute_v2.rb, line 186
def region
  @rackspace_region
end
request(params) click to toggle source
# 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
rescue_server(server_id) click to toggle source

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
resize_server(server_id, flavor_id) click to toggle source

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
revert_resize_server(server_id) click to toggle source

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
service_name() click to toggle source
# File lib/fog/rackspace/compute_v2.rb, line 182
def service_name
  :cloudServersOpenStack
end
set_metadata(collection, obj_id, metadata = {}) click to toggle source

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
set_metadata_item(collection, obj_id, key, value) click to toggle source

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
unrescue_server(server_id) click to toggle source

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
update_metadata(collection, obj_id, metadata = {}) click to toggle source

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_server(server_id, options={}) click to toggle source

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

[Validate]

Generated with the Darkfish Rdoc Generator 2.