bootstrap-vz/providers/ec2/tasks/host.py
Anders Ingemann 0092e1c2c2 Don't instantiate tasks
In practice they are just typed functions with attributes, having a reference to an object is just confusing.
So: Task.run() is now a classmethod
2014-01-06 22:58:21 +01:00

28 lines
712 B
Python

from base import Task
from common import phases
from common.tasks import host
class HostDependencies(Task):
description = 'Adding more required host packages'
phase = phases.preparation
successors = [host.CheckHostDependencies]
@classmethod
def run(cls, info):
if info.manifest.volume['backing'] == 's3':
info.host_dependencies.add('euca2ools')
class GetInfo(Task):
description = 'Retrieving instance metadata'
phase = phases.preparation
@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.host = json.load(response)
return info