2016-09-12 18:47:20 +02:00
|
|
|
from bootstrapvz.common.tools import rel_path
|
2014-07-12 14:42:52 -03:00
|
|
|
import tasks
|
|
|
|
from bootstrapvz.common.tasks import apt
|
2015-04-29 20:55:55 +02:00
|
|
|
from bootstrapvz.common.releases import wheezy
|
2014-05-07 17:03:16 -07:00
|
|
|
|
|
|
|
|
|
|
|
def validate_manifest(data, validator, error):
|
2016-09-12 18:47:20 +02:00
|
|
|
validator(data, rel_path(__file__, 'manifest-schema.yml'))
|
|
|
|
|
2016-06-04 11:35:59 +02:00
|
|
|
from bootstrapvz.common.releases import get_release
|
|
|
|
if get_release(data['system']['release']) == wheezy:
|
|
|
|
# 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'])
|
2014-05-07 17:03:16 -07:00
|
|
|
|
|
|
|
|
|
|
|
def resolve_tasks(taskset, manifest):
|
2016-06-04 11:35:59 +02:00
|
|
|
if manifest.release == wheezy:
|
|
|
|
taskset.add(apt.AddBackports)
|
|
|
|
taskset.add(tasks.AddDockerDeps)
|
|
|
|
taskset.add(tasks.AddDockerBinary)
|
|
|
|
taskset.add(tasks.AddDockerInit)
|
|
|
|
taskset.add(tasks.EnableMemoryCgroup)
|
|
|
|
if len(manifest.plugins['docker_daemon'].get('pull_images', [])) > 0:
|
|
|
|
taskset.add(tasks.PullDockerImages)
|