DigitalOcean::Droplet - Represents a Droplet object in the DigitalOcean API
version 0.17
FILL ME IN
Returns the api path for this droplet.
This will retrieve a list of all kernels available to a Dropet by returning a DigitalOcean::Collection that can be used to iterate through the DigitalOcean::Kernels objects of the kernels collection.
my $kernels_collection = $droplet->kernels; my $obj; while($obj = $kernels_collection->next) { print $obj->name . "\n"; }
If you would like a different per_page value to be used for this collection instead of per_page, it can be passed in as a parameter:
per_page
#set default for all collections to be 30 $do->per_page(30); #set this collection to have 2 objects returned per page my $kernels_collection = $droplet->kernels(2); my $obj; while($obj = $kernels_collection->next) { print $obj->name . "\n"; }
This will retrieve the snapshots that have been created from a Droplet by returning a DigitalOcean::Collection that can be used to iterate through the DigitalOcean::Snapshot objects of the snapshots collection.
my $snapshots_collection = $droplet->snapshots; my $obj; while($obj = $snapshots_collection->next) { print $obj->name . "\n"; }
#set default for all collections to be 30 $do->per_page(30); #set this collection to have 2 objects returned per page my $snapshots_collection = $droplet->snapshots(2); my $obj; while($obj = $snapshots_collection->next) { print $obj->name . "\n"; }
This will retrieve the backups that have been created from a Droplet by returning a DigitalOcean::Collection that can be used to iterate through the DigitalOcean::Backup objects of the backups collection.
my $backups_collection = $droplet->backups; my $obj; while($obj = $backups_collection->next) { print $obj->name . "\n"; }
#set default for all collections to be 30 $do->per_page(30); #set this collection to have 2 objects returned per page my $backups_collection = $droplet->backups(2); my $obj; while($obj = $backups_collection->next) { print $obj->name . "\n"; }
This will retrieve all actions that have been executed on a Droplet by returning a DigitalOcean::Collection that can be used to iterate through the DigitalOcean::Action objects of the actions collection.
my $actions_collection = $droplet->actions; my $obj; while($obj = $actions_collection->next) { print $obj->id . "\n"; }
#set default for all collections to be 30 $do->per_page(30); #set this collection to have 2 objects returned per page my $actions_collection = $droplet->actions(2); my $obj; while($obj = $actions_collection->next) { print $obj->id . "\n"; }
This deletes the droplet. This will return 1 on success and undef on failure.
$droplet->delete; #droplet now gone
This method returns all of the droplets that are running on the same physical server as the DigitalOcean::Droplet object this method is called with. It returns an array reference.
my $neighbors = $droplet->neighbors; for my $neighbor (@$neighbors) { print $neighbor->name . "\n"; }
This will retrieve an action associated with the DigitalOcean::Droplet object by id and return a DigitalOcean::Action object.
my $action = $droplet->action(56789);
This method disables backups on your droplet. It returns a DigitalOcean::Action object.
my $action = $droplet->disable_backups;
This method allows you to reboot a droplet. This is the preferred method to use if a server is not responding. It returns a DigitalOcean::Action object.
my $action = $droplet->reboot;
A reboot action is an attempt to reboot the Droplet in a graceful way, similar to using the reboot command from the console.
This method allows you to power cycle a droplet. This will turn off the droplet and then turn it back on. It returns a DigitalOcean::Action object.
my $action = $droplet->power_cycle;
A powercycle action is similar to pushing the reset button on a physical machine, it's similar to booting from scratch.
This method allows you to shutdown a running droplet. The droplet will remain in your account. It returns a DigitalOcean::Action object.
my $action = $droplet->shutdown;
A shutdown action is an attempt to shutdown the Droplet in a graceful way, similar to using the shutdown command from the console. Since a shutdown command can fail, this action guarantees that the command is issued, not that it succeeds. The preferred way to turn off a Droplet is to attempt a shutdown, with a reasonable timeout, followed by a power off action to ensure the Droplet is off.
This method allows you to poweroff a running droplet. The droplet will remain in your account. It returns a DigitalOcean::Action object.
my $action = $droplet->power_off;
A power_off event is a hard shutdown and should only be used if the shutdown action is not successful. It is similar to cutting the power on a server and could lead to complications.
This method allows you to poweron a powered off droplet. It returns a DigitalOcean::Action object.
my $action = $droplet->power_on;
This method allows you to restore a droplet with a previous image or snapshot. This will be a mirror copy of the image or snapshot to your droplet. Be sure you have backed up any necessary information prior to restore. It returns a DigitalOcean::Action object.
image Required, string if an image slug. number if an image ID., An image slug or ID. This represents the image that the Droplet will use as a base.
my $action = $droplet->restore(image => 56789);
A Droplet restoration will rebuild an image using a backup image. The image ID that is passed in must be a backup of the current Droplet instance. The operation will leave any embedded SSH keys intact.
This method will reset the root password for a droplet. Please be aware that this will reboot the droplet to allow resetting the password. It returns a DigitalOcean::Action object.
my $action = $droplet->password_reset;
This method allows you to resize a specific droplet to a different size. It returns a DigitalOcean::Action object.
disk Optional, Boolean (1 or undef), Whether to increase disk size
size Required, String, The size slug that you want to resize to.
my $action = $droplet->resize( disk => 1, size => '1gb', );
In order to resize your droplet, it must first be powered off, and you must wait for the droplet to be powered off before you can call resize on the droplet. Making the call accurately would look something like this:
$droplet->power_off(wait_on_action => 1); my $action = $droplet->resize( disk => 1, size => '1gb', wait_on_action => 1, ); $droplet->power_on(wait_on_action => 1);
If your droplet is already on and you want to resize it and boot your droplet back up, you can call "resize_reboot" to do the above code for you.
In order to call "resize_reboot", your droplet must be powered off. If your droplet is already running, this method makes a call to resize for you and powers off your droplet, and then powers it on after it is done resizing and handles waiting on each event to finish so you do not have to write this code. This is essentially the code that "resize_reboot" performs for you:
$droplet->power_off(wait_on_action => 1); $droplet->resize( disk => $disk, size => $size, wait_on_action => 1, ); $droplet->power_on(wait_on_event => 1);
So a call to "resize_reboot" would look like:
my $actions = $droplet->resize_reboot( disk => 1, size => '1gb', ); for my $action (@$actions) { print $action->id . ' ' . $action->status . "\n"; }
It returns an array reference of all three actions returned by "power_off", "resize", and "power_on".
This method allows you to rebuild a Droplet. It returns a DigitalOcean::Action object. A rebuild action functions just like a new create. This is useful if you want to start again but retain the same IP address for your droplet.
my $action = $droplet->rebuild( image => 'ubuntu-14-04-x64', );
This method renames the droplet to the specified name. The new name is reflected in the DigitalOcean::Droplet object. It returns a DigitalOcean::Action object.
name Required, String, The new name for the Droplet.
$droplet->rename(name => $new_name);
This method allows you to change the kernel of a Droplet. It returns a DigitalOcean::Action object.
kernel Required, Number, A unique number used to identify and reference a specific kernel.
my $action = $droplet->change_kernel(kernel => 991);
In order for a new kernel to be active, the machine must be powered off and then powered on. This function changes the kernel for you and powers off your droplet, and then powers it on. It also handles waiting on each event so you do not have to write this code. This is essentially the code that "change_kernel_reboot" performs for you:
$droplet->change_kernel(kernel => $kernel); $droplet->power_off(wait_on_action => 1); $droplet->power_on(wait_on_event => 1);
So a call to "change_kernel_reboot" would look like:
my $actions = $droplet->change_kernel_reboot(kernel => 991); for my $action (@$actions) { print $action->id . ' ' . $action->status . "\n"; }
It returns an array reference of all three actions returned by "change_kernel", "power_off", and "power_on".
This method allows you to enable IPv6 networking on an existing Droplet (within a region that has IPv6 available). It returns a DigitalOcean::Action object.
my $action = $droplet->enable_ipv6;
This method allows you to enable private networking on an existing Droplet (within a region that has private networking available). It returns a DigitalOcean::Action object.
my $action = $droplet->enable_private_networking;
In order to enable private networking for your droplet, it must first be powered off, and you must wait for the droplet to be powered off before you can call snapshot on the droplet. Making the call accurately would look something like this:
$droplet->power_off(wait_on_event => 1); $droplet->enable_private_networking(wait_on_event => 1); $droplet->power_on(wait_on_event => 1);
If your droplet is already on and you want to enable private networking and boot your droplet back up, you can call "enable_private_networking_reboot" to do the above code for you.
In order to call "enable_private_networking", your droplet must be powered off. If your droplet is already running, this method makes a call to "enable_private_networking" for you and powers off your droplet, and then powers it on after it is done and handles waiting on each event to finish so you do not have to write this code. This is essentially the code that "enable_private_networking" performs for you:
$droplet->power_off(wait_on_action => 1); $droplet->enable_private_networking(wait_on_action => 1); $droplet->power_on(wait_on_event => 1);
So a call to "enable_private_networking_reboot" would look like:
my $actions = $droplet->enable_private_networking_reboot; for my $action (@$actions) { print $action->id . ' ' . $action->status . "\n"; }
It returns an array reference of all three actions returned by "power_off", "enable_private_networking", and "power_on".
This method allows you to take a snapshot of the droplet once it has been powered off, which can later be restored or used to create a new droplet from the same image.
name Optional, String, this is the name of the new snapshot you want to create. If not set, the snapshot name will default to date/time
In order to take a snapshot of your droplet, it must first be powered off, and you must wait for the droplet to be powered off before you can call snapshot on the droplet. Making the call accurately would look something like this:
$droplet->power_off(wait_on_event => 1); $droplet->snapshot;
If your droplet is already on and you essentially want to take a snapshot and boot your droplet back up, you can call L/snapshot_reboot> to do the above code for you. (The "snapshot" method turns the droplet back on for you).
This method allows you to upgrade a droplet. It returns a DigitalOcean::Action object.
my $action = $droplet->upgrade;
If your droplet is already running, this method makes a call to "snapshot" for you and powers off your droplet, and then powers it on after it is done taking a snapshot and handles waiting on each event to finish so you do not have to write this code. This is essentially the code that "snapshot_reboot" performs for you:
$droplet->power_off(wait_on_event => 1); $droplet->snapshot(wait_on_event => 1); #snapshot powers your droplet back on for you
So a call to "snapshot_reboot" would look like:
my $actions = $droplet->snapshot_reboot; for my $action (@$actions) { print $action->id . ' ' . $action->status . "\n"; }
It returns an array reference of both actions returned by "power_off", "snapshot_reboot".
Adam Hopkins <srchulo@cpan.org>
This software is copyright (c) 2019 by Adam Hopkins.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
To install DigitalOcean, copy and paste the appropriate command in to your terminal.
cpanm
cpanm DigitalOcean
CPAN shell
perl -MCPAN -e shell install DigitalOcean
For more information on module installation, please visit the detailed CPAN module installation guide.