bootstrap-vz/plugins/minimize_size/__init__.py

29 lines
1.1 KiB
Python
Raw Normal View History

import tasks
def validate_manifest(data, validator, error):
import os.path
schema_path = os.path.join(os.path.dirname(__file__), 'manifest-schema.json')
validator(data, schema_path)
if 'zerofree' in data['plugins']['minimize_size']:
zerofree_schema_path = os.path.join(os.path.dirname(__file__), 'manifest-schema-zerofree.json')
validator(data, zerofree_schema_path)
if data['plugins']['minimize_size'].get('shrink', False) and data['volume']['backing'] != 'vmdk':
error('Can only shrink vmdk images', ['plugins', 'minimize_size', 'shrink'])
def resolve_tasks(taskset, manifest):
taskset.update([tasks.AddFolderMounts,
tasks.RemoveFolderMounts,
])
if 'zerofree' in manifest.plugins['minimize_size']:
taskset.add(tasks.CheckZerofreePath)
taskset.add(tasks.Zerofree)
if manifest.plugins['minimize_size'].get('shrink', False):
taskset.add(tasks.CheckVMWareDMCommand)
taskset.add(tasks.ShrinkVolume)
def resolve_rollback_tasks(taskset, manifest, counter_task):
counter_task(tasks.AddFolderMounts, tasks.RemoveFolderMounts)