From 03db9823f9903ae72da1e9e2b191703cb5859303 Mon Sep 17 00:00:00 2001 From: Anders Ingemann Date: Sun, 19 Jan 2014 15:57:54 +0100 Subject: [PATCH] HVM AMIs now working with extlinux --- providers/ec2/__init__.py | 6 ++++-- providers/ec2/manifest-schema.json | 9 +++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/providers/ec2/__init__.py b/providers/ec2/__init__.py index 6292e84..ccba76f 100644 --- a/providers/ec2/__init__.py +++ b/providers/ec2/__init__.py @@ -32,7 +32,7 @@ def validate_manifest(data, validator, error): from common.bytes import Bytes if data['volume']['backing'] == 'ebs': - volume_size = Bytes('2MiB') if data['volume']['partitions']['type'] == 'msdos' else Bytes(0) + volume_size = Bytes(0) for key, partition in data['volume']['partitions'].iteritems(): if key != 'type': volume_size += Bytes(partition['size']) @@ -44,8 +44,10 @@ def validate_manifest(data, validator, error): if data['virtualization'] == 'pvm' and data['system']['bootloader'] != 'pvgrub': error('Paravirtualized AMIs only support pvgrub as a bootloader', ['system', 'bootloader']) - if data['virtualization'] == 'hvm' and data['system']['bootloader'] != 'extlinux': + if data['virtualization'] == 'hvm' and data['system']['bootloader'] == 'pvgrub': error('HVM AMIs only support extlinux as a bootloader', ['system', 'bootloader']) + if data['volume']['partitions']['type'] == 'none' and data['system']['bootloader'] == 'grub': + error('Grub cannot boot from unpartitioned disks', ['system', 'bootloader']) def resolve_tasks(taskset, manifest): diff --git a/providers/ec2/manifest-schema.json b/providers/ec2/manifest-schema.json index d657991..3bcc40d 100644 --- a/providers/ec2/manifest-schema.json +++ b/providers/ec2/manifest-schema.json @@ -23,6 +23,15 @@ } } }, + "system": { + "type": "object", + "properties": { + "bootloader": { + "type": "string", + "enum": ["pvgrub", "extlinux"] + } + } + }, "volume": { "type": "object", "properties": {