diff --git a/common/task_sets.py b/common/task_sets.py index 2d30ba8..f29f0e1 100644 --- a/common/task_sets.py +++ b/common/task_sets.py @@ -55,8 +55,16 @@ locale_set = [locale.GenerateLocale, locale.SetTimezone, ] -fs_specific_set = {'ext2': [filesystem.TuneVolumeFS], - 'ext3': [filesystem.TuneVolumeFS], - 'ext4': [filesystem.TuneVolumeFS], - 'xfs': [filesystem.AddXFSProgs], - } + +def get_fs_specific_set(partitions): + task_set = {'ext2': [filesystem.TuneVolumeFS], + 'ext3': [filesystem.TuneVolumeFS], + 'ext4': [filesystem.TuneVolumeFS], + 'xfs': [filesystem.AddXFSProgs], + } + tasks = set() + if 'boot' in partitions: + tasks.update(task_set.get(partitions['boot']['filesystem'], [])) + if 'root' in partitions: + tasks.update(task_set.get(partitions['root']['filesystem'], [])) + return tasks diff --git a/providers/virtualbox/__init__.py b/providers/virtualbox/__init__.py index 098adff..175ca84 100644 --- a/providers/virtualbox/__init__.py +++ b/providers/virtualbox/__init__.py @@ -59,11 +59,8 @@ def tasks(tasklist, manifest): if manifest.bootstrapper.get('tarball', False): tasklist.add(bootstrap.MakeTarball) - from common.task_sets import fs_specific_set - for partition in manifest.volume['partitions']: - if 'filesystem' in partition: - fs_tasks = fs_specific_set.get(partition['filesystem'], []) - tasklist.add(fs_tasks) + from common.task_sets import get_fs_specific_set + tasklist.add(*get_fs_specific_set(manifest.volume['partitions'])) if 'boot' in manifest.volume['partitions']: from common.task_sets import boot_partition_set