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.
-
#iops ⇒ String
readonly
The current value of iops.
-
#size ⇒ Integer
readonly
The size of the volume in gigabytes.
-
#status ⇒ Symbol
(also: #state)
readonly
The status of the volume.
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.
-
#snapshot ⇒ Snapshot
Snapshot from which the volume was created (may be nil).
Methods included from TaggedItem
Instance Attribute Details
#availability_zone_name ⇒ String (readonly)
Name of the Availability Zone in which the volume was created.
53 54 55 |
# File 'lib/aws/ec2/volume.rb', line 53 def availability_zone_name @availability_zone_name end |
#create_time ⇒ Time (readonly)
The time at which the volume was created.
53 54 55 |
# File 'lib/aws/ec2/volume.rb', line 53 def create_time @create_time end |
#id ⇒ String (readonly)
Returns the volume ID.
64 65 66 |
# File 'lib/aws/ec2/volume.rb', line 64 def id @id end |
#iops ⇒ String (readonly)
Returns the current value of iops.
53 54 55 |
# File 'lib/aws/ec2/volume.rb', line 53 def iops @iops end |
#size ⇒ Integer (readonly)
The size of the volume in gigabytes.
53 54 55 |
# File 'lib/aws/ec2/volume.rb', line 53 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
53 54 55 |
# File 'lib/aws/ec2/volume.rb', line 53 def status @status end |
Instance Method Details
#attach_to(instance, device) ⇒ Attachment Also known as: attach
Attaches the volume to an instance.
118 119 120 121 122 123 124 125 126 |
# File 'lib/aws/ec2/volume.rb', line 118 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.
167 168 169 |
# File 'lib/aws/ec2/volume.rb', line 167 def AttachmentCollection.new(self, :config => config) end |
#availability_zone ⇒ AvailabilityZone
Returns the Availability Zone in which the volume was created.
159 160 161 162 163 |
# File 'lib/aws/ec2/volume.rb', line 159 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.
101 102 103 104 105 |
# File 'lib/aws/ec2/volume.rb', line 101 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.
92 93 94 95 |
# File 'lib/aws/ec2/volume.rb', line 92 def delete client.delete_volume(:volume_id => id) nil end |
#detach_from(instance, device, options = {}) ⇒ Attachment
Detaches the volume from an instance.
136 137 138 139 140 141 |
# File 'lib/aws/ec2/volume.rb', line 136 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.
144 145 146 147 148 149 |
# File 'lib/aws/ec2/volume.rb', line 144 def exists? resp = client.describe_volumes(:filters => [ { :name => 'volume-id', :values => [id] } ]) resp.volume_index.key?(id) end |