Source code for digitalocean.Image
# -*- coding: utf-8 -*-
from .baseapi import BaseAPI, POST, DELETE, PUT
[docs]class Image(BaseAPI):
def __init__(self, *args, **kwargs):
self.id = None
self.name = None
self.distribution = None
self.slug = None
self.min_disk_size = None
self.public = None
self.regions = []
self.created_at = None
self.size_gigabytes = None
super(Image, self).__init__(*args, **kwargs)
@classmethod
[docs] def get_object(cls, api_token, image_id):
"""
Class method that will return an Image object by ID.
"""
image = cls(token=api_token, id=image_id)
image.load()
return image
[docs] def load(self):
data = self.get_data("images/%s" % self.id)
image_dict = data['image']
# Setting the attribute values
for attr in image_dict.keys():
setattr(self, attr, image_dict[attr])
return self
[docs] def destroy(self):
"""
Destroy the image
"""
return self.get_data("images/%s/" % self.id, type=DELETE)
[docs] def transfer(self, new_region_slug):
"""
Transfer the image
"""
return self.get_data(
"images/%s/actions/" % self.id,
type=POST,
params={"type": "transfer", "region": new_region_slug}
)
[docs] def rename(self, new_name):
"""
Rename an image
"""
return self.get_data(
"images/%s" % self.id,
type=PUT,
params={"name": new_name}
)
def __str__(self):
return "<Image: %s %s %s>" % (self.id, self.distribution, self.name)