digitalocean package

Submodules

digitalocean.Account module

class digitalocean.Account.Account(*args, **kwargs)

Bases: digitalocean.baseapi.BaseAPI

classmethod get_object(api_token)

Class method that will return an Account object.

load()

digitalocean.Action module

class digitalocean.Action.Action(*args, **kwargs)

Bases: digitalocean.baseapi.BaseAPI

classmethod get_object(api_token, action_id)

Class method that will return a Action object by ID.

load()
load_directly()
wait(update_every_seconds=1)

Wait until the action is marked as completed or with an error. It will return True in case of success, otherwise False.

Optional Args:
update_every_seconds - int : number of seconds to wait before
checking if the action is completed.

digitalocean.Domain module

class digitalocean.Domain.Domain(*args, **kwargs)

Bases: digitalocean.baseapi.BaseAPI

create()

Create new doamin

create_new_domain_record(*args, **kwargs)

Create new domain record. https://developers.digitalocean.com/#create-a-new-domain-record

Parameters:
  • type – The record type (A, MX, CNAME, etc).
  • name – The host name, alias, or service being defined by the record
  • data – Variable data depending on record type.
Optional Args:
priority: The priority of the host port: The port that the service is accessible on weight: The weight of records with the same priority
destroy()

Destroy the domain by name

classmethod get_object(api_token, domain_name)

Class method that will return a Domain object by ID.

get_records(params=None)

Returns a list of Record objects

load()

digitalocean.Droplet module

exception digitalocean.Droplet.BadKernelObject

Bases: digitalocean.Droplet.DropletError

exception digitalocean.Droplet.BadSSHKeyFormat

Bases: digitalocean.Droplet.DropletError

class digitalocean.Droplet.Droplet(*args, **kwargs)

Bases: digitalocean.baseapi.BaseAPI

“Droplet management

Attributes accepted at creation time:

Parameters:
  • name (str) – name
  • size_slug (str) – droplet size
  • image (str) – image name to use to create droplet
  • region (str) – region
  • ssh_keys – (str, optional): list of ssh keys
  • backups (bool) – True if backups enabled
  • ipv6 (bool) – True if ipv6 enabled
  • private_networking (bool) – True if private networking enabled
  • user_data (str) – arbitrary data to pass to droplet
  • volumes (str, optional) – list of blockstorage volumes
  • monitoring – (bool) - True if installing the DigitalOcean monitoring agent
Attributes returned by API:

id (int): droplet id memory (str): memory size vcpus (int): number of vcpus disk (int): disk size in GB status (str): status locked (bool): True if locked created_at (str): creation date in format u‘2014-11-06T10:42:09Z’ status (str): status, e.g. ‘new’, ‘active’, etc networks (dict): details of connected networks kernel (dict): details of kernel backup_ids (int, optional): list of ids of backups of this droplet snapshot_ids (int, optional): list of ids of snapshots of this droplet action_ids (int, optional): list of ids of actions features (str, optional): list of enabled features. e.g.

[u’private_networking’, u’virtio’]

image (dict): details of image used to create this droplet ip_address (str): public ip addresses private_ip_address (str): private ip address ip_v6_address (str, optional): list of ipv6 addresses assigned end_point (str): url of api endpoint used volume_ids (str, optional): list of blockstorage volumes

change_kernel(kernel, return_dict=True)

Change the kernel to a new one

Parameters:kernel – instance of digitalocean.Kernel.Kernel
Optional Args:
return_dict (bool): Return a dict when True (default),
otherwise return an Action.

Returns dict or Action

create(*args, **kwargs)

Create the droplet with object properties.

Note: Every argument and parameter given to this method will be assigned to the object.

classmethod create_multiple(*args, **kwargs)
destroy()

Destroy the droplet

Returns dict

disable_backups(return_dict=True)

Disable automatic backups

Optional Args:
return_dict (bool): Return a dict when True (default),
otherwise return an Action.

Returns dict or Action

enable_backups(return_dict=True)

Enable automatic backups

Optional Args:
return_dict (bool): Return a dict when True (default),
otherwise return an Action.

Returns dict or Action

enable_ipv6(return_dict=True)

Enable IPv6 on an existing Droplet where available.

Optional Args:
return_dict (bool): Return a dict when True (default),
otherwise return an Action.

Returns dict or Action

enable_private_networking(return_dict=True)

Enable private networking on an existing Droplet where available.

Optional Args:
return_dict (bool): Return a dict when True (default),
otherwise return an Action.

Returns dict or Action

get_action(action_id)

Returns a specific Action by its ID.

Parameters:action_id (int) – id of action
get_actions()

Returns a list of Action objects This actions can be used to check the droplet’s status

get_data(*args, **kwargs)

Customized version of get_data to perform __check_actions_in_data

get_events()

A helper function for backwards compatability. Calls get_actions()

get_kernel_available()

Get a list of kernels available

classmethod get_object(api_token, droplet_id)

Class method that will return a Droplet object by ID.

Parameters:
  • api_token (str) – token
  • droplet_id (int) – droplet id
get_snapshots()

This method will return the snapshots/images connected to that specific droplet.

load()

Fetch data about droplet - use this instead of get_data()

power_cycle(return_dict=True)

restart the droplet

Optional Args:
return_dict (bool): Return a dict when True (default),
otherwise return an Action.

Returns dict or Action

power_off(return_dict=True)

restart the droplet

Optional Args:
return_dict (bool): Return a dict when True (default),
otherwise return an Action.

Returns dict or Action

power_on(return_dict=True)

Boot up the droplet

Optional Args:
return_dict (bool): Return a dict when True (default),
otherwise return an Action.

Returns dict or Action

reboot(return_dict=True)

restart the droplet

Optional Args:
return_dict (bool): Return a dict when True (default),
otherwise return an Action.

Returns dict or Action

rebuild(image_id=None, return_dict=True)

Restore the droplet to an image ( snapshot or backup )

Parameters:image_id (int) – id of image
Optional Args:
return_dict (bool): Return a dict when True (default),
otherwise return an Action.

Returns dict or Action

rename(name, return_dict=True)

Rename the droplet

Parameters:name (str) – new name
Optional Args:
return_dict (bool): Return a dict when True (default),
otherwise return an Action.

Returns dict or Action

reset_root_password(return_dict=True)

reset the root password

Optional Args:
return_dict (bool): Return a dict when True (default),
otherwise return an Action.

Returns dict or Action

resize(new_size_slug, return_dict=True, disk=True)

Resize the droplet to a new size slug. https://developers.digitalocean.com/documentation/v2/#resize-a-droplet

Parameters:new_size_slug (str) – name of new size
Optional Args:
return_dict (bool): Return a dict when True (default),
otherwise return an Action.

disk (bool): If a permanent resize, with disk changes included.

Returns dict or Action

restore(image_id, return_dict=True)

Restore the droplet to an image ( snapshot or backup )

Parameters:image_id (int) – id of image
Optional Args:
return_dict (bool): Return a dict when True (default),
otherwise return an Action.

Returns dict or Action

shutdown(return_dict=True)

shutdown the droplet

Optional Args:
return_dict (bool): Return a dict when True (default),
otherwise return an Action.

Returns dict or Action

take_snapshot(snapshot_name, return_dict=True, power_off=False)

Take a snapshot!

Parameters:snapshot_name (str) – name of snapshot
Optional Args:
return_dict (bool): Return a dict when True (default),
otherwise return an Action.
power_off (bool): Before taking the snapshot the droplet will be
turned off with another API call. It will wait until the droplet will be powered off.

Returns dict or Action

exception digitalocean.Droplet.DropletError

Bases: digitalocean.baseapi.Error

Base exception class for this module

digitalocean.FloatingIP module

class digitalocean.FloatingIP.FloatingIP(*args, **kwargs)

Bases: digitalocean.baseapi.BaseAPI

assign(droplet_id)

Assign a FloatingIP to a Droplet.

Parameters:droplet_id – int - droplet id
create(*args, **kwargs)

Creates a FloatingIP and assigns it to a Droplet.

Note: Every argument and parameter given to this method will be assigned to the object.

Parameters:droplet_id – int - droplet id
destroy()

Destroy the FloatingIP

classmethod get_object(api_token, ip)

Class method that will return a FloatingIP object by its IP.

Parameters:
  • api_token – str - token
  • ip – str - floating ip address
load()

Load the FloatingIP object from DigitalOcean.

Requires self.ip to be set.

reserve(*args, **kwargs)

Creates a FloatingIP in a region without assigning it to a specific Droplet.

Note: Every argument and parameter given to this method will be assigned to the object.

Parameters:region_slug – str - region’s slug (e.g. ‘nyc3’)
unassign()

Unassign a FloatingIP.

digitalocean.Image module

class digitalocean.Image.Image(*args, **kwargs)

Bases: digitalocean.baseapi.BaseAPI

destroy()

Destroy the image

classmethod get_object(api_token, image_id)

Class method that will return an Image object by ID.

load()
rename(new_name)

Rename an image

transfer(new_region_slug)

Transfer the image

digitalocean.Kernel module

class digitalocean.Kernel.Kernel(*args, **kwargs)

Bases: digitalocean.baseapi.BaseAPI

digitalocean.LoadBalancer module

class digitalocean.LoadBalancer.ForwardingRule(entry_protocol=None, entry_port=None, target_protocol=None, target_port=None, certificate_id='', tls_passthrough=False)

Bases: object

An object holding information about a LoadBalancer forwarding rule setting.

Parameters:
  • entry_protocol (str) – The protocol used for traffic to a LoadBalancer. The possible values are: “http”, “https”, or “tcp”
  • entry_port (int) – The port the LoadBalancer instance will listen on
  • target_protocol (str) – The protocol used for traffic from a LoadBalancer to the backend Droplets. The possible values are: “http”, “https”, or “tcp”
  • target_port (int) – The port on the backend Droplets on which the LoadBalancer will send traffic
  • certificate_id (str, optional) – The ID of the TLS certificate used for SSL termination if enabled
  • tls_passthrough (bool, optional) – A boolean indicating if SSL encrypted traffic will be passed through to the backend Droplets
class digitalocean.LoadBalancer.HealthCheck(protocol='http', port=80, path='/', check_interval_seconds=10, response_timeout_seconds=5, healthy_threshold=5, unhealthy_threshold=3)

Bases: object

An object holding information about a LoadBalancer health check settings.

Parameters:
  • protocol (str) – The protocol used for health checks. The possible values are “http” or “tcp”.
  • port (int) – The port on the backend Droplets for heath checks
  • path (str) – The path to send a health check request to
  • check_interval_seconds (int) – The number of seconds between between two consecutive health checks
  • response_timeout_seconds (int) – The number of seconds the Load Balancer instance will wait for a response until marking a check as failed
  • healthy_threshold (int) – The number of times a health check must fail for a backend Droplet to be removed from the pool
  • unhealthy_threshold (int) – The number of times a health check must pass for a backend Droplet to be re-added to the pool
class digitalocean.LoadBalancer.LoadBalancer(*args, **kwargs)

Bases: digitalocean.baseapi.BaseAPI

An object representing an DigitalOcean Load Balancer.

Attributes accepted at creation time:

Args:

name (str): The Load Balancer’s name region (str): The slug identifier for a DigitalOcean region algorithm (str, optional): The load balancing algorithm to be

used. Currently, it must be either “round_robin” or “least_connections”

forwarding_rules (obj:list): A list of ForwrdingRules objects health_check (obj, optional): A HealthCheck object sticky_sessions (obj, optional): A StickySessions object redirect_http_to_https (bool, optional): A boolean indicating

whether HTTP requests to the Load Balancer should be redirected to HTTPS
droplet_ids (obj:list of int): A list of IDs representing
Droplets to be added to the Load Balancer (mutually exclusive with ‘tag’)
tag (str): A string representing a DigitalOcean Droplet tag
(mutually exclusive with ‘droplet_ids’)
Attributes returned by API:

name (str): The Load Balancer’s name id (str): An unique identifier for a LoadBalancer ip (str): Public IP address for a LoadBalancer region (str): The slug identifier for a DigitalOcean region algorithm (str, optional): The load balancing algorithm to be

used. Currently, it must be either “round_robin” or “least_connections”

forwarding_rules (obj:list): A list of ForwrdingRules objects health_check (obj, optional): A HealthCheck object sticky_sessions (obj, optional): A StickySessions object redirect_http_to_https (bool, optional): A boolean indicating

whether HTTP requests to the Load Balancer should be redirected to HTTPS
droplet_ids (obj:list of int): A list of IDs representing
Droplets to be added to the Load Balancer

tag (str): A string representing a DigitalOcean Droplet tag status (string): An indication the current state of the LoadBalancer created_at (str): The date and time when the LoadBalancer was created

add_droplets(droplet_ids)

Assign a LoadBalancer to a Droplet.

Parameters:(obj (droplet_ids) – list of int): A list of Droplet IDs
add_forwarding_rules(forwarding_rules)

Adds new forwarding rules to a LoadBalancer.

Parameters:(obj (forwarding_rules) – list): A list of ForwrdingRules objects
create(*args, **kwargs)

Creates a new LoadBalancer.

Note: Every argument and parameter given to this method will be assigned to the object.

Parameters:
  • name (str) – The Load Balancer’s name
  • region (str) – The slug identifier for a DigitalOcean region
  • algorithm (str, optional) – The load balancing algorithm to be used. Currently, it must be either “round_robin” or “least_connections”
  • (obj (droplet_ids) – list): A list of ForwrdingRules objects
  • health_check (obj, optional) – A HealthCheck object
  • sticky_sessions (obj, optional) – A StickySessions object
  • redirect_http_to_https (bool, optional) – A boolean indicating whether HTTP requests to the Load Balancer should be redirected to HTTPS
  • (objlist of int): A list of IDs representing Droplets to be added to the Load Balancer (mutually exclusive with ‘tag’)
  • tag (str) – A string representing a DigitalOcean Droplet tag (mutually exclusive with ‘droplet_ids’)
destroy()

Destroy the LoadBalancer

classmethod get_object(api_token, id)

Class method that will return a LoadBalancer object by its ID.

Parameters:
  • api_token (str) – DigitalOcean API token
  • id (str) – Load Balancer ID
load()

Loads updated attributues for a LoadBalancer object.

Requires self.id to be set.

remove_droplets(droplet_ids)

Unassign a LoadBalancer.

Parameters:(obj (droplet_ids) – list of int): A list of Droplet IDs
remove_forwarding_rules(forwarding_rules)

Removes existing forwarding rules from a LoadBalancer.

Parameters:(obj (forwarding_rules) – list): A list of ForwrdingRules objects
class digitalocean.LoadBalancer.StickySesions(type='none', cookie_name='DO_LB', cookie_ttl_seconds=300)

Bases: object

An object holding information on a LoadBalancer’s sticky sessions settings.

Parameters:
  • type (str) – The type of sticky sessions used. Can be “cookies” or “none”
  • cookie_name (str, optional) – The name used for the client cookie when using cookies for sticky session
  • cookie_ttl_seconds (int, optional) – The number of seconds until the cookie expires

digitalocean.Manager module

class digitalocean.Manager.Manager(*args, **kwargs)

Bases: digitalocean.baseapi.BaseAPI

get_account()

Returns an Account object.

get_action(action_id)

Return an Action object by a specific ID.

get_all_certificates()

This function returns a list of Certificate objects.

get_all_domains()

This function returns a list of Domain object.

get_all_droplets(tag_name=None)

This function returns a list of Droplet object.

get_all_floating_ips()

This function returns a list of FloatingIP objects.

get_all_images()

This function returns a list of Image objects containing all available DigitalOcean images, both public and private.

get_all_load_balancers()

Returns a list of Load Balancer objects.

get_all_regions()

This function returns a list of Region object.

get_all_sizes()

This function returns a list of Size object.

get_all_sshkeys()

This function returns a list of SSHKey object.

get_all_volumes()

This function returns a list of Volume objects.

get_app_images()

This function returns a list of Image objectobjects representing public DigitalOcean ‘One-Click’ application images.

get_certificate(id)

Returns a Certificate object by its ID.

Parameters:id (str) – Certificate ID
get_distro_images()

This function returns a list of Image objects representing public base distribution images.

get_domain(domain_name)

Return a Domain by its domain_name

get_droplet(droplet_id)

Return a Droplet by its ID.

get_floating_ip(ip)

Returns a of FloatingIP object by its IP address.

get_global_images()

This function returns a list of Image objects representing public DigitalOcean images (e.g. base distribution images and ‘One-Click’ applications).

get_image(image_id)

Return a Image by its ID.

get_images(private=False, type=None)

This function returns a list of Image object.

get_load_balancer(id)

Returns a Load Balancer object by its ID.

Parameters:id (str) – Load Balancer ID
get_my_images()

This function returns a list of Image objects representing private DigitalOcean images (e.g. snapshots and backups).

get_ssh_key(ssh_key_id)

Return a SSHKey object by its ID.

get_volume(volume_id)

Returns a Volume object by its ID.

digitalocean.Metadata module

class digitalocean.Metadata.Metadata(*args, **kwargs)

Bases: digitalocean.baseapi.BaseAPI

Metadata API: Provide useful information about the current Droplet. See: https://developers.digitalocean.com/metadata/#introduction

droplet_id = None
end_point = 'http://169.254.169.254/metadata/v1'
get_data(url, headers={}, params={}, render_json=True)

Customized version of get_data to directly get the data without using the authentication method.

load()

digitalocean.Record module

class digitalocean.Record.Record(domain_name=None, *args, **kwargs)

Bases: digitalocean.baseapi.BaseAPI

create()

Create a record for a domain

destroy()

Destroy the record

classmethod get_object(api_token, domain, record_id)

Class method that will return a Record object by ID and the domain.

load()
save()

Save existing record

digitalocean.Region module

class digitalocean.Region.Region(*args, **kwargs)

Bases: digitalocean.baseapi.BaseAPI

digitalocean.SSHKey module

class digitalocean.SSHKey.SSHKey(*args, **kwargs)

Bases: digitalocean.baseapi.BaseAPI

create()

Create the SSH Key

destroy()

Destroy the SSH Key

edit()

Edit the SSH Key

classmethod get_object(api_token, ssh_key_id)

Class method that will return a SSHKey object by ID.

load()

Load the SSHKey object from DigitalOcean.

Requires either self.id or self.fingerprint to be set.

load_by_pub_key(public_key)

This method will laod a SSHKey object from DigitalOcean from a public_key. This method will avoid problem like uploading the same public_key twice.

digitalocean.Size module

class digitalocean.Size.Size(*args, **kwargs)

Bases: digitalocean.baseapi.BaseAPI

digitalocean.Tag module

class digitalocean.Tag.Tag(*args, **kwargs)

Bases: digitalocean.baseapi.BaseAPI

add_droplets(droplet)

Add the Tag to a Droplet.

Attributes accepted at creation time:
droplet: array of string or array of int, or array of Droplets.
create(**kwargs)

Create the tag.

delete()
classmethod get_object(api_token, tag_name)
load()

Fetch data about tag

remove_droplets(droplet)

Remove the Tag from the Droplet.

Attributes accepted at creation time:
droplet: array of string or array of int, or array of Droplets.
update_tag(name)

digitalocean.Volume module

class digitalocean.Volume.Volume(*args, **kwargs)

Bases: digitalocean.baseapi.BaseAPI

attach(droplet_id, region)

Attach a Volume to a Droplet.

Parameters:
  • droplet_id – int - droplet id
  • region – string - slug identifier for the region
create(*args, **kwargs)

Creates a Block Storage volume

Note: Every argument and parameter given to this method will be assigned to the object.

Parameters:
  • name – string - a name for the volume
  • region – string - slug identifier for the region
  • size_gigabytes – int - size of the Block Storage volume in GiB
Optional Args:
description: string - text field to describe a volume
destroy()

Destroy a volume

detach(droplet_id, region)

Detach a Volume to a Droplet.

Parameters:
  • droplet_id – int - droplet id
  • region – string - slug identifier for the region
classmethod get_object(api_token, volume_id)

Class method that will return an Volume object by ID.

load()
resize(size_gigabytes, region)

Detach a Volume to a Droplet.

Parameters:
  • size_gigabytes – int - size of the Block Storage volume in GiB
  • region – string - slug identifier for the region

digitalocean.baseapi module

class digitalocean.baseapi.BaseAPI(*args, **kwargs)

Bases: object

Basic api class for

end_point = 'https://api.digitalocean.com/v2/'
get_data(url, type='GET', params=None)

This method is a basic implementation of __call_api that checks errors too. In case of success the method will return True or the content of the response to the request.

Pagination is automatically detected and handled accordingly

get_timeout()

Checks if any timeout for the requests to DigitalOcean is required. To set a timeout, use the REQUEST_TIMEOUT_ENV_VAR environment variable.

token = ''
exception digitalocean.baseapi.DataReadError

Bases: digitalocean.baseapi.Error

exception digitalocean.baseapi.Error

Bases: exceptions.Exception

Base exception class for this module

exception digitalocean.baseapi.JSONReadError

Bases: digitalocean.baseapi.Error

exception digitalocean.baseapi.NotFoundError

Bases: digitalocean.baseapi.Error

exception digitalocean.baseapi.TokenError

Bases: digitalocean.baseapi.Error

Module contents

digitalocean API to manage droplets