mirror of
https://github.com/kevingruesser/bootstrap-vz.git
synced 2025-08-22 18:00:35 +00:00

Lines removed: over 500. Readiblity gained: A shitload Now you can actually get an overview of a manifest on a single screen height. I am sure that it will also save a lot of hassle when modifying schema in the future. No more "expected property name" etc. because of an extraneous comma Comments are of course natively support, so there's no need for this minify_json hokey pokey
25 lines
921 B
Python
25 lines
921 B
Python
import tasks
|
|
|
|
|
|
def validate_manifest(data, validator, error):
|
|
import os.path
|
|
schema_path = os.path.join(os.path.dirname(__file__), 'manifest-schema.yml')
|
|
validator(data, 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 manifest.plugins['minimize_size'].get('zerofree', False):
|
|
taskset.add(tasks.AddRequiredCommands)
|
|
taskset.add(tasks.Zerofree)
|
|
if manifest.plugins['minimize_size'].get('shrink', False):
|
|
taskset.add(tasks.AddRequiredCommands)
|
|
taskset.add(tasks.ShrinkVolume)
|
|
|
|
|
|
def resolve_rollback_tasks(taskset, manifest, completed, counter_task):
|
|
counter_task(taskset, tasks.AddFolderMounts, tasks.RemoveFolderMounts)
|