Source code for pontoon.lib.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_size = None self.public = None self.regions = [] self.created_at = None super(Image, self).__init__(*args, **kwargs) @classmethod
[docs] def get_object(cls, api_token, image_id, mocked): """ Class method that will return an Image object by ID. """ image = cls(token=api_token, id=image_id, mocked=mocked) image.mock_data = "images/single.json" image.load() return image
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 """ self.mock_status = 204 return self.get_data("images/%s/" % self.id, type=DELETE)
[docs] def transfer(self, new_region_slug): """ Transfer the image """ self.mock_data = "actions/ipv6_completed.json" 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 """ self.mock_data = "actions/ipv6_completed.json" return self.get_data( "images/%s" % self.id, type=PUT, params={"name": new_name} )
def __str__(self): return "%s %s %s" % (self.id, self.name, self.distribution) def __repr__(self): return "< %s %s %s >" % (self.id, self.distribution, self.name)