Class: Fog::Rackspace::BlockStorage::Real
- Defined in:
- lib/fog/rackspace/block_storage.rb,
lib/fog/rackspace/requests/block_storage/get_volume.rb,
lib/fog/rackspace/requests/block_storage/get_snapshot.rb,
lib/fog/rackspace/requests/block_storage/list_volumes.rb,
lib/fog/rackspace/requests/block_storage/create_volume.rb,
lib/fog/rackspace/requests/block_storage/delete_volume.rb,
lib/fog/rackspace/requests/block_storage/list_snapshots.rb,
lib/fog/rackspace/requests/block_storage/create_snapshot.rb,
lib/fog/rackspace/requests/block_storage/delete_snapshot.rb,
lib/fog/rackspace/requests/block_storage/get_volume_type.rb,
lib/fog/rackspace/requests/block_storage/list_volume_types.rb
Instance Method Summary collapse
- #authenticate(options = {}) ⇒ Object
-
#create_snapshot(volume_id, options = {}) ⇒ Excon::Response
Create a snapshot from a volume.
-
#create_volume(size, options = {}) ⇒ Excon::Response
Create volume.
-
#delete_snapshot(snapshot_id) ⇒ Excon::Response
Delete snapshot.
-
#delete_volume(volume_id) ⇒ Excon::Response
Delete volume.
- #endpoint_uri(service_endpoint_url = nil) ⇒ Object
-
#get_snapshot(snapshot_id) ⇒ Excon::Response
Retrieves snapshot detail.
-
#get_volume(volume_id) ⇒ Excon::Response
Retrieves volume detail.
-
#get_volume_type(volume_type_id) ⇒ Excon::Response
Retrieves volume type detail.
-
#initialize(options = {}) ⇒ Real
constructor
A new instance of Real.
-
#list_snapshots ⇒ Excon::Response
Retrieves list of snapshots.
-
#list_volume_types ⇒ Excon::Response
Retrieves list of volume types.
-
#list_volumes ⇒ Excon::Response
Retrieves list of volumes.
- #region ⇒ Object
- #request(params, parse_json = true) ⇒ Object
- #request_id_header ⇒ Object
- #service_name ⇒ Object
Methods inherited from Service
#request_without_retry, #service_net?
Constructor Details
#initialize(options = {}) ⇒ Real
Returns a new instance of Real.
72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 |
# File 'lib/fog/rackspace/block_storage.rb', line 72 def initialize( = {}) @rackspace_api_key = [:rackspace_api_key] @rackspace_username = [:rackspace_username] @rackspace_auth_url = [:rackspace_auth_url] @rackspace_must_reauthenticate = false @connection_options = [:connection_options] || {} setup_custom_endpoint() authenticate deprecation_warnings() @persistent = [:persistent] || false @connection = Fog::Core::Connection.new(endpoint_uri.to_s, @persistent, @connection_options) end |
Instance Method Details
#authenticate(options = {}) ⇒ Object
100 101 102 103 104 105 106 107 |
# File 'lib/fog/rackspace/block_storage.rb', line 100 def authenticate(={}) super({ :rackspace_api_key => @rackspace_api_key, :rackspace_username => @rackspace_username, :rackspace_auth_url => @rackspace_auth_url, :connection_options => @connection_options }) end |
#create_snapshot(volume_id, options = {}) ⇒ Excon::Response
All writes to the volume should be flushed before creating the snapshot, either by un-mounting any file systems on the volume or by detaching the volume.
Create a snapshot from a volume
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/fog/rackspace/requests/block_storage/create_snapshot.rb', line 28 def create_snapshot(volume_id, = {}) data = { 'snapshot' => { 'volume_id' => volume_id } } data['snapshot']['display_name'] = [:display_name] unless [:display_name].nil? data['snapshot']['display_description'] = [:display_description] unless [:display_description].nil? data['snapshot']['force'] = [:force] unless [:force].nil? request( :body => Fog::JSON.encode(data), :expects => [200], :method => 'POST', :path => "snapshots" ) end |
#create_volume(size, options = {}) ⇒ Excon::Response
Create volume
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/fog/rackspace/requests/block_storage/create_volume.rb', line 34 def create_volume(size, = {}) data = { 'volume' => { 'size' => size } } data['volume']['display_name'] = [:display_name] unless [:display_name].nil? data['volume']['display_description'] = [:display_description] unless [:display_description].nil? data['volume']['volume_type'] = [:volume_type] unless [:volume_type].nil? data['volume']['availability_zone'] = [:availability_zone] unless [:availability_zone].nil? data['volume']['snapshot_id'] = [:snapshot_id] unless [:snapshot_id].nil? data['volume']['imageRef'] = [:image_id] unless [:image_id].nil? request( :body => Fog::JSON.encode(data), :expects => [200], :method => 'POST', :path => "volumes" ) end |
#delete_snapshot(snapshot_id) ⇒ Excon::Response
Delete snapshot
14 15 16 17 18 19 20 |
# File 'lib/fog/rackspace/requests/block_storage/delete_snapshot.rb', line 14 def delete_snapshot(snapshot_id) request( :expects => [202], :method => 'DELETE', :path => "snapshots/#{snapshot_id}" ) end |
#delete_volume(volume_id) ⇒ Excon::Response
You cannot delete a volume until all of its dependent snaphosts have been deleted.
Delete volume
15 16 17 18 19 20 21 |
# File 'lib/fog/rackspace/requests/block_storage/delete_volume.rb', line 15 def delete_volume(volume_id) request( :expects => [202], :method => 'DELETE', :path => "volumes/#{volume_id}" ) end |
#endpoint_uri(service_endpoint_url = nil) ⇒ Object
121 122 123 |
# File 'lib/fog/rackspace/block_storage.rb', line 121 def endpoint_uri(service_endpoint_url=nil) @uri = super(@rackspace_endpoint || service_endpoint_url, :rackspace_block_storage_url) end |
#get_snapshot(snapshot_id) ⇒ Excon::Response
Retrieves snapshot detail
24 25 26 27 28 29 30 |
# File 'lib/fog/rackspace/requests/block_storage/get_snapshot.rb', line 24 def get_snapshot(snapshot_id) request( :expects => [200], :method => 'GET', :path => "snapshots/#{snapshot_id}" ) end |
#get_volume(volume_id) ⇒ Excon::Response
Retrieves volume detail
28 29 30 31 32 33 34 |
# File 'lib/fog/rackspace/requests/block_storage/get_volume.rb', line 28 def get_volume(volume_id) request( :expects => [200], :method => 'GET', :path => "volumes/#{volume_id}" ) end |
#get_volume_type(volume_type_id) ⇒ Excon::Response
Retrieves volume type detail
18 19 20 21 22 23 24 |
# File 'lib/fog/rackspace/requests/block_storage/get_volume_type.rb', line 18 def get_volume_type(volume_type_id) request( :expects => [200], :method => 'GET', :path => "types/#{volume_type_id}" ) end |
#list_snapshots ⇒ Excon::Response
Retrieves list of snapshots
21 22 23 24 25 26 27 |
# File 'lib/fog/rackspace/requests/block_storage/list_snapshots.rb', line 21 def list_snapshots request( :expects => [200], :method => 'GET', :path => 'snapshots' ) end |
#list_volume_types ⇒ Excon::Response
Retrieves list of volume types
17 18 19 20 21 22 23 |
# File 'lib/fog/rackspace/requests/block_storage/list_volume_types.rb', line 17 def list_volume_types request( :expects => [200], :method => 'GET', :path => 'types' ) end |
#list_volumes ⇒ Excon::Response
Retrieves list of volumes
25 26 27 28 29 30 31 |
# File 'lib/fog/rackspace/requests/block_storage/list_volumes.rb', line 25 def list_volumes request( :expects => [200], :method => 'GET', :path => 'volumes' ) end |
#region ⇒ Object
113 114 115 |
# File 'lib/fog/rackspace/block_storage.rb', line 113 def region @rackspace_region end |
#request(params, parse_json = true) ⇒ Object
88 89 90 91 92 93 94 95 96 97 98 |
# File 'lib/fog/rackspace/block_storage.rb', line 88 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
117 118 119 |
# File 'lib/fog/rackspace/block_storage.rb', line 117 def request_id_header "X-Compute-Request-Id" end |
#service_name ⇒ Object
109 110 111 |
# File 'lib/fog/rackspace/block_storage.rb', line 109 def service_name :cloudBlockStorage end |