From a397091e460f74e57bff548631f3fb1fe6c2480b Mon Sep 17 00:00:00 2001 From: Anders Ingemann Date: Sun, 27 Oct 2013 13:01:01 +0100 Subject: [PATCH] Generalize req. host package additions --- common/tasks/packages.py | 7 +++++++ providers/ec2/tasks/packages.py | 4 ---- providers/virtualbox/__init__.py | 3 +-- providers/virtualbox/tasks/packages.py | 13 ------------- 4 files changed, 8 insertions(+), 19 deletions(-) diff --git a/common/tasks/packages.py b/common/tasks/packages.py index cdc9497..41a3774 100644 --- a/common/tasks/packages.py +++ b/common/tasks/packages.py @@ -10,6 +10,13 @@ class HostPackages(Task): info.host_packages = set() info.host_packages.add('debootstrap') + from common.fs.loopbackvolume import LoopbackVolume + if isinstance(info.volume, LoopbackVolume): + info.host_packages.add('qemu-utils') + + if 'xfs' in (p.filesystem for p in info.volume.partition_map.partitions): + info.host_packages.add('xfsprogs') + from base.fs.partitionmaps.none import NoPartitions if not isinstance(info.volume.partition_map, NoPartitions): info.host_packages.update(['parted', 'kpartx']) diff --git a/providers/ec2/tasks/packages.py b/providers/ec2/tasks/packages.py index 46f1222..814a6f6 100644 --- a/providers/ec2/tasks/packages.py +++ b/providers/ec2/tasks/packages.py @@ -11,10 +11,6 @@ class HostPackages(Task): after = [packages.HostPackages] def run(self, info): - for partition in info.volume.partition_map.partitions: - if partition.filesystem == 'xfs': - info.host_packages.add('xfsprogs') - break if info.manifest.volume['backing'] == 's3': info.host_packages.add('euca2ools') diff --git a/providers/virtualbox/__init__.py b/providers/virtualbox/__init__.py index 70412be..8e31b1b 100644 --- a/providers/virtualbox/__init__.py +++ b/providers/virtualbox/__init__.py @@ -34,8 +34,7 @@ def tasks(tasklist, manifest): from common.task_sets import partitioning_set tasklist.add(*partitioning_set) - tasklist.add(packages.HostPackages, - packages.ImagePackages, + tasklist.add(packages.ImagePackages, loopback.Create, diff --git a/providers/virtualbox/tasks/packages.py b/providers/virtualbox/tasks/packages.py index 228ad59..58b1d7f 100644 --- a/providers/virtualbox/tasks/packages.py +++ b/providers/virtualbox/tasks/packages.py @@ -1,19 +1,6 @@ from base import Task from common import phases from common.tasks import packages -from common.tasks.host import CheckPackages - - -class HostPackages(Task): - description = 'Determining required host packages' - phase = phases.preparation - before = [CheckPackages] - after = [packages.HostPackages] - - def run(self, info): - info.host_packages.add('qemu-utils') - if 'xfs' in (p.filesystem for p in info.volume.partition_map.partitions): - info.host_packages.add('xfsprogs') class ImagePackages(Task):