bootstrap-vz/plugins/prebootstrapped/tasks.py

37 lines
1.2 KiB
Python
Raw Normal View History

from base import Task
from common import phases
2013-06-30 23:56:09 +02:00
from providers.ec2.tasks import connection
from providers.ec2.tasks import ebs
from providers.ec2.tasks import bootstrap
import time
import logging
log = logging.getLogger(__name__)
class CreateVolumeFromSnapshot(Task):
description = 'Creating EBS volume from a snapshot'
phase = phases.volume_creation
2013-06-30 23:56:09 +02:00
after = [connection.Connect]
before = [ebs.AttachVolume]
def run(self, info):
volume_size = int(info.manifest.volume['size']/1024)
2013-06-30 23:56:09 +02:00
snapshot = info.manifest.plugins['prebootstrapped']['snapshot']
info.volume = info.connection.create_volume(volume_size,
info.host['availabilityZone'],
2013-06-30 23:56:09 +02:00
snapshot=snapshot)
while info.volume.volume_state() != 'available':
time.sleep(5)
info.volume.update()
class CreateSnapshot(ebs.CreateSnapshot):
description = 'Creating a snapshot of the bootstrapped volume'
phase = phases.os_installation
after = [bootstrap.Bootstrap]
def run(self, info):
super(CreateSnapshot, self).run(info)
msg = 'A snapshot of the bootstrapped volume was created. ID: {id}'.format(id=info.snapshot.id)
log.info(msg)