Generalize req. host package additions

This commit is contained in:
Anders Ingemann 2013-10-27 13:01:01 +01:00
parent 6c800145dc
commit a397091e46
4 changed files with 8 additions and 19 deletions

View file

@ -10,6 +10,13 @@ class HostPackages(Task):
info.host_packages = set() info.host_packages = set()
info.host_packages.add('debootstrap') 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 from base.fs.partitionmaps.none import NoPartitions
if not isinstance(info.volume.partition_map, NoPartitions): if not isinstance(info.volume.partition_map, NoPartitions):
info.host_packages.update(['parted', 'kpartx']) info.host_packages.update(['parted', 'kpartx'])

View file

@ -11,10 +11,6 @@ class HostPackages(Task):
after = [packages.HostPackages] after = [packages.HostPackages]
def run(self, info): 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': if info.manifest.volume['backing'] == 's3':
info.host_packages.add('euca2ools') info.host_packages.add('euca2ools')

View file

@ -34,8 +34,7 @@ def tasks(tasklist, manifest):
from common.task_sets import partitioning_set from common.task_sets import partitioning_set
tasklist.add(*partitioning_set) tasklist.add(*partitioning_set)
tasklist.add(packages.HostPackages, tasklist.add(packages.ImagePackages,
packages.ImagePackages,
loopback.Create, loopback.Create,

View file

@ -1,19 +1,6 @@
from base import Task from base import Task
from common import phases from common import phases
from common.tasks import packages 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): class ImagePackages(Task):