From 6a96a2b5b1e004aadc08b3f1afe7e0b8b07b000e Mon Sep 17 00:00:00 2001 From: Tomasz Melcer Date: Sat, 13 Jan 2018 02:34:28 +0100 Subject: [PATCH] minimize_size: Split AddRequiredCommands into command-specific tasks --- bootstrapvz/plugins/minimize_size/__init__.py | 4 ++-- .../plugins/minimize_size/tasks/shrink.py | 21 ++++++++++++------- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/bootstrapvz/plugins/minimize_size/__init__.py b/bootstrapvz/plugins/minimize_size/__init__.py index 48cc4d0..9b6aa4c 100644 --- a/bootstrapvz/plugins/minimize_size/__init__.py +++ b/bootstrapvz/plugins/minimize_size/__init__.py @@ -18,10 +18,10 @@ def resolve_tasks(taskset, manifest): tasks.mounts.RemoveFolderMounts, ]) if manifest.plugins['minimize_size'].get('zerofree', False): - taskset.add(tasks.shrink.AddRequiredCommands) + taskset.add(tasks.shrink.AddRequiredZeroFreeCommand) taskset.add(tasks.shrink.Zerofree) if manifest.plugins['minimize_size'].get('shrink', False): - taskset.add(tasks.shrink.AddRequiredCommands) + taskset.add(tasks.shrink.AddRequiredVDiskManagerCommand) taskset.add(tasks.shrink.ShrinkVolume) if 'apt' in manifest.plugins['minimize_size']: apt = manifest.plugins['minimize_size']['apt'] diff --git a/bootstrapvz/plugins/minimize_size/tasks/shrink.py b/bootstrapvz/plugins/minimize_size/tasks/shrink.py index 66497d2..26ef241 100644 --- a/bootstrapvz/plugins/minimize_size/tasks/shrink.py +++ b/bootstrapvz/plugins/minimize_size/tasks/shrink.py @@ -8,18 +8,25 @@ from bootstrapvz.common.tools import log_check_call import os -class AddRequiredCommands(Task): - description = 'Adding commands required for reducing volume size' +class AddRequiredZeroFreeCommand(Task): + description = 'Adding command required for zero-ing volume' phase = phases.validation successors = [host.CheckExternalCommands] @classmethod def run(cls, info): - if info.manifest.plugins['minimize_size'].get('zerofree', False): - info.host_dependencies['zerofree'] = 'zerofree' - if info.manifest.plugins['minimize_size'].get('shrink', False): - link = 'https://my.vmware.com/web/vmware/info/slug/desktop_end_user_computing/vmware_workstation/10_0' - info.host_dependencies['vmware-vdiskmanager'] = link + info.host_dependencies['zerofree'] = 'zerofree' + + +class AddRequiredVDiskManagerCommand(Task): + description = 'Adding command required for reducing volume size' + phase = phases.validation + successors = [host.CheckExternalCommands] + + @classmethod + def run(cls, info): + link = 'https://my.vmware.com/web/vmware/info/slug/desktop_end_user_computing/vmware_workstation/10_0' + info.host_dependencies['vmware-vdiskmanager'] = link class Zerofree(Task):