2015-04-09 23:20:56 +02:00
|
|
|
import logging
|
|
|
|
log = logging.getLogger(__name__)
|
|
|
|
|
|
|
|
|
|
|
|
class AmazonMachineImage(object):
|
|
|
|
|
2016-06-04 11:35:59 +02:00
|
|
|
def __init__(self, image_id, ec2_connection):
|
|
|
|
self.ec2_connection = ec2_connection
|
|
|
|
self.ami = self.ec2_connection.get_image(image_id)
|
2015-04-09 23:20:56 +02:00
|
|
|
|
|
|
|
|
|
|
|
class EBSImage(AmazonMachineImage):
|
|
|
|
|
2016-06-04 11:35:59 +02:00
|
|
|
def destroy(self):
|
|
|
|
log.debug('Deleting AMI')
|
|
|
|
self.ami.deregister()
|
|
|
|
for device, block_device_type in self.ami.block_device_mapping.items():
|
|
|
|
self.ec2_connection.delete_snapshot(block_device_type.snapshot_id)
|
|
|
|
del self.ami
|
2015-04-10 00:17:00 +02:00
|
|
|
|
|
|
|
|
|
|
|
class S3Image(AmazonMachineImage):
|
|
|
|
|
2016-06-04 11:35:59 +02:00
|
|
|
def destroy(self):
|
|
|
|
log.debug('Deleting AMI')
|
|
|
|
self.ami.deregister()
|
|
|
|
del self.ami
|