bootstrap-vz/bootstrapvz/providers/ec2/tasks/host.py

39 lines
1.1 KiB
Python
Raw Normal View History

from bootstrapvz.base import Task
from bootstrapvz.common import phases
from bootstrapvz.common.tasks import host
class AddExternalCommands(Task):
description = 'Determining required external commands for EC2 bootstrapping'
phase = phases.preparation
successors = [host.CheckExternalCommands]
@classmethod
def run(cls, info):
if info.manifest.volume['backing'] == 's3':
info.host_dependencies['euca-bundle-image'] = 'euca2ools'
info.host_dependencies['euca-upload-bundle'] = 'euca2ools'
2013-05-02 19:13:35 +02:00
class GetInstanceMetadata(Task):
description = 'Retrieving instance metadata'
2013-06-23 22:12:29 +02:00
phase = phases.preparation
2013-06-09 20:29:54 +02:00
@classmethod
def run(cls, info):
import urllib2
import json
metadata_url = 'http://169.254.169.254/latest/dynamic/instance-identity/document'
response = urllib2.urlopen(url=metadata_url, timeout=5)
info._ec2['host'] = json.load(response)
info._ec2['region'] = info._ec2['host']['region']
class SetRegion(Task):
description = 'Setting the AWS region'
phase = phases.preparation
@classmethod
def run(cls, info):
info._ec2['region'] = info.manifest.provider['region']