The following object methods are supported:
volumeId -- ID of this volume.
size -- Size of this volume (in GB).
snapshotId -- ID of snapshot this volume was created from.
availabilityZone -- Availability zone in which this volume resides.
status -- Volume state, one of "creating", "available",
"in-use", "deleting", "deleted", "error"
createTime -- Timestamp for when volume was created.
volumeType -- The volume type, one of "standard", "io1", or "gp2"
iops -- The number of I/O operations per second that the volume
supports, an integer between 100 and 4000. Only valid for
volumes of type "io1".
encrypted -- True if volume is encrypted.
tags -- Hashref containing tags associated with this group.
See L<VM::EC2::Generic>.
In addition, this class provides several convenience functions:
$attachment=$vol->attachment@attachments=$vol->attachments
The attachment() method returns a VM::EC2::BlockDevice::Attachment object describing the attachment of
this volume to an instance. If the volume is unused, then this returns undef.
The attachments() method is similar, except that it returns a list of the attachments. Currently an EBS
volume can only be attached to one instance at a time, but the Amazon call syntax supports multiple
attachments and this method is provided for future compatibility.
$attachment=$vol->attach($instance,$device)$attachment=$vol->attach(-instance_id=>$instance,-device=>$device)
Attach this volume to an instance using virtual device $device. Both arguments are required. The result
is a VM::EC2::BlockDevice::Attachment object which you can monitor by calling current_status():
my $a = $volume->attach('i-12345','/dev/sdg');
while ($a->current_status ne 'attached') {
sleep 2;
}
print "volume is ready to go\n";
$attachment=$volume->detach()$attachment=$volume->detach(-instance_id=>$instance_id,-device=>$device,-force=>$force);
Detaches this volume. With no arguments, will detach the volume from whatever instance it is currently
attached to. Provide -instance_id and/or -device as a check that you are detaching the volume from the
expected instance and device.
Optional arguments:
-instance_id -- ID of the instance to detach from.
-device -- How the device is exposed to the instance.
-force -- Force detachment, even if previous attempts were
unsuccessful.
The result is a VM::EC2::BlockDevice::Attachment object which you can monitor by calling
current_status():
my $a = $volume->detach;
while ($a->current_status ne 'detached') {
sleep 2;
}
print "volume is ready to go\n";
$boolean=$vol->deleteOnTermination([$boolean])
Get or set the deleteOnTermination flag for attached volumes. If the volume is unattached, then this
causes a fatal error. Called with no arguments, this method returns the current state of the
deleteOnTermination flag for the volume's attachment. Called with a true/false argument, the method sets
the flag by calling modify_instance_attributes() on the corresponding instance and returns true if
successful.
$snap=$vol->from_snapshot
Returns the VM::EC2::Snapshot object that this volume was originally derived from. It will return undef
if the resource no longer exists, or if the volume was created from scratch.
@snap=$vol->to_snapshots
If this volume has been used to create one or more snapshots, this method will return them as a list of
VM::EC2::Snapshot objects.
$snapshot=$vol->create_snapshot('Description')
Create a snapshot of the volume and return a VM::EC2::Snapshot object. To ensure a consistent snapshot,
you should unmount the volume before snapshotting it. The optional argument allows you to add a
description to the snapshot.
Here is an example:
$s = $volume->create_snapshot("Backed up at ".localtime);
while ($s->current_status eq 'pending') {
print "Progress: ",$s->progress,"% done\n";
}
print "Snapshot status: ",$s->current_status,"\n";
$status=$vol->current_status
This returns the up-to-date status of the volume. It works by calling refresh() and then returning
status().
$boolean=$vol->auto_enable_io([$new_boolean])
Get or set the auto-enable IO flag.
$boolean=$vol->enable_volume_io()
Enable volume I/O after it has been disabled by an Amazon health check. If successful, the call will
return true.