mirror of
https://github.com/kevingruesser/bootstrap-vz.git
synced 2025-08-24 23:36:29 +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
20 lines
869 B
Python
20 lines
869 B
Python
import tasks
|
|
import os.path
|
|
|
|
|
|
def validate_manifest(data, validator, error):
|
|
schema_path = os.path.normpath(os.path.join(os.path.dirname(__file__), 'manifest-schema.yml'))
|
|
validator(data, schema_path)
|
|
if data.get('system', {}).get('release', None) in ['wheezy', 'stable']:
|
|
# prefs is a generator of apt preferences across files in the manifest
|
|
prefs = (item for vals in data.get('packages', {}).get('preferences', {}).values() for item in vals)
|
|
if not any('linux-image' in item['package'] and 'wheezy-backports' in item['pin'] for item in prefs):
|
|
msg = 'The backports kernel is required for the docker daemon to function properly'
|
|
error(msg, ['packages', 'preferences'])
|
|
|
|
|
|
def resolve_tasks(taskset, manifest):
|
|
taskset.add(tasks.AddDockerDeps)
|
|
taskset.add(tasks.AddDockerBinary)
|
|
taskset.add(tasks.AddDockerInit)
|
|
taskset.add(tasks.EnableMemoryCgroup)
|