Class: AWS::EC2::Volume
- Inherits:
-
Resource
- Object
- Core::Resource
- Resource
- AWS::EC2::Volume
- Includes:
- TaggedItem
- Defined in:
- lib/aws/ec2/volume.rb
Overview
Represents an Amazon EBS volume.
Instance Attribute Summary collapse
-
#availability_zone_name ⇒ String
readonly
Name of the Availability Zone in which the volume was created.
-
#create_time ⇒ Time
readonly
The time at which the volume was created.
-
#id ⇒ String
readonly
Returns the volume ID.
-
#size ⇒ Integer
readonly
The size of the volume in gigabytes.
-
#status ⇒ Symbol
(also: #state)
readonly
The status of the volume.
Attributes included from Core::Model
Instance Method Summary collapse
-
#attach_to(instance, device) ⇒ Attachment
(also: #attach)
Attaches the volume to an instance.
-
#attachments ⇒ AttachmentCollection
The collection of attachments that involve this volume.
-
#availability_zone ⇒ AvailabilityZone
Returns the Availability Zone in which the volume was created.
-
#create_snapshot(description = nil) ⇒ Snapshot
A new snapshot created from the volume.
-
#delete ⇒ Object
Deletes the volume.
-
#detach_from(instance, device, options = {}) ⇒ Attachment
Detaches the volume from an instance.
-
#exists? ⇒ Boolean
True if the volume exists.
-
#initialize(id, opts = {}) ⇒ Volume
constructor
A new instance of Volume.
-
#snapshot ⇒ Snapshot
Snapshot from which the volume was created (may be nil).
Methods included from TaggedItem
#add_tag, #cached_tags, #clear_tags, #tagging_resource_type, #tags
Methods inherited from Core::Resource
attribute_providers, attribute_providers_for, attributes, #attributes_from_response, define_attribute_type, #eql?, #inspect, new_from
Methods included from Core::Cacheable
Methods included from Core::Model
#client, #config_prefix, #inspect
Constructor Details
#initialize(id, opts = {}) ⇒ Volume
Returns a new instance of Volume.
56 57 58 59 |
# File 'lib/aws/ec2/volume.rb', line 56 def initialize(id, opts = {}) @id = id super(opts) end |
Instance Attribute Details
#availability_zone_name ⇒ String (readonly)
Name of the Availability Zone in which the volume was created.
51 52 53 |
# File 'lib/aws/ec2/volume.rb', line 51 def availability_zone_name @availability_zone_name end |
#create_time ⇒ Time (readonly)
The time at which the volume was created.
51 52 53 |
# File 'lib/aws/ec2/volume.rb', line 51 def create_time @create_time end |
#id ⇒ String (readonly)
Returns the volume ID.
62 63 64 |
# File 'lib/aws/ec2/volume.rb', line 62 def id @id end |
#size ⇒ Integer (readonly)
The size of the volume in gigabytes.
51 52 53 |
# File 'lib/aws/ec2/volume.rb', line 51 def size @size end |
#status ⇒ Symbol (readonly) Also known as: state
The status of the volume. Possible values:
-
:creating
-
:available
-
:in_use
-
:deleting
-
:deleted
-
:error
51 52 53 |
# File 'lib/aws/ec2/volume.rb', line 51 def status @status end |
Instance Method Details
#attach_to(instance, device) ⇒ Attachment Also known as: attach
Attaches the volume to an instance.
114 115 116 117 118 119 120 121 122 |
# File 'lib/aws/ec2/volume.rb', line 114 def attach_to(instance, device) resp = client.attach_volume( :volume_id => id, :instance_id => instance.id, :device => device ) instance = Instance.new(resp.instance_id, :config => config) Attachment.new(self, instance, resp.device, :config => config) end |
#attachments ⇒ AttachmentCollection
Returns The collection of attachments that involve this volume.
163 164 165 |
# File 'lib/aws/ec2/volume.rb', line 163 def AttachmentCollection.new(self, :config => config) end |
#availability_zone ⇒ AvailabilityZone
Returns the Availability Zone in which the volume was created.
155 156 157 158 159 |
# File 'lib/aws/ec2/volume.rb', line 155 def availability_zone if name = availability_zone_name AvailabilityZone.new(name, :config => config) end end |
#create_snapshot(description = nil) ⇒ Snapshot
Returns A new snapshot created from the volume.
97 98 99 100 101 |
# File 'lib/aws/ec2/volume.rb', line 97 def create_snapshot description = nil opts = { :volume => self } opts[:description] = description if description SnapshotCollection.new(:config => config).create(opts) end |
#delete ⇒ Object
Deletes the volume.
88 89 90 91 |
# File 'lib/aws/ec2/volume.rb', line 88 def delete client.delete_volume(:volume_id => id) nil end |
#detach_from(instance, device, options = {}) ⇒ Attachment
Detaches the volume from an instance.
132 133 134 135 136 137 |
# File 'lib/aws/ec2/volume.rb', line 132 def detach_from(instance, device, = {}) instance = Instance.new(instance.id, :config => config), a = Attachment.new(self, instance, device, :config => config) a.delete() a end |
#exists? ⇒ Boolean
Returns True if the volume exists.
140 141 142 143 144 145 |
# File 'lib/aws/ec2/volume.rb', line 140 def exists? resp = client.describe_volumes(:filters => [ { :name => 'volume-id', :values => [id] } ]) resp.volume_index.key?(id) end |