diff --git a/plugins/build_metadata/__init__.py b/plugins/build_metadata/__init__.py index 7970eca..a8db8ba 100644 --- a/plugins/build_metadata/__init__.py +++ b/plugins/build_metadata/__init__.py @@ -1,5 +1,5 @@ def tasks(tasklist, manifest): - from buildmetadata import PrintInfo - tasklist.add(PrintInfo()) + from tasks import WriteMetadata + tasklist.add(WriteMetadata()) diff --git a/plugins/build_metadata/buildmetadata.py b/plugins/build_metadata/buildmetadata.py deleted file mode 100644 index f47a4e2..0000000 --- a/plugins/build_metadata/buildmetadata.py +++ /dev/null @@ -1,12 +0,0 @@ -from base import Task -from common import phases -from providers.ec2.tasks.host import GetInfo - - -class PrintInfo(Task): - description = 'Printing `info\' to the console' - phase = phases.install_os - after = [GetInfo] - - def run(self, info): - print('info') diff --git a/plugins/build_metadata/manifest-schema.json b/plugins/build_metadata/manifest-schema.json new file mode 100644 index 0000000..0a68ec2 --- /dev/null +++ b/plugins/build_metadata/manifest-schema.json @@ -0,0 +1,23 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Build metadata plugin manifest", + "type": "object", + "properties": { + "plugins": { + "type": "object", + "properties": { + "build_metadata": { + "type": "object", + "properties": { + "path": { + "type": "string" + } + }, + "required": ["path"] + } + }, + "required": ["build_metadata"] + } + }, + "required": ["plugins"] +} diff --git a/plugins/build_metadata/tasks.py b/plugins/build_metadata/tasks.py new file mode 100644 index 0000000..ca566d9 --- /dev/null +++ b/plugins/build_metadata/tasks.py @@ -0,0 +1,17 @@ +from base import Task +from common import phases + + +class WriteMetadata(Task): + description = 'Writing bootstrap metadata to file' + phase = phases.cleaning + + def run(self, info): + metadata_path = info.manifest.plugins['build_metadata']['path'] + with open(metadata_path, 'w') as metadata: + metadata.write(('AMI_ID={ami_id}\n' + 'AMI_NAME={ami_name}' + 'SNAPSHOT_ID={snapshot_id}' + .format(ami_id=info.image, + ami_name=info.ami_name, + snapshot_id=info.snapshot.id)))