mirror of
https://github.com/kevingruesser/bootstrap-vz.git
synced 2025-08-22 09:50:37 +00:00

Up until now I didn't see the point of using spaces for indentation. However, the previous commit (a18bec3) was quite eye opening. Given that python is an indentation aware language, the amount of mistakes that went unnoticed because tabs and spaces were used at the same time (tabs for indentation and spaces for alignment) were unacceptable. E101,W191 have been re-enable in the tox flake8 checker and the documentation has been modified accordingly. The following files have been left as-is: * bootstrapvz/common/assets/extlinux/extlinux.conf * bootstrapvz/common/assets/init.d/expand-root * bootstrapvz/common/assets/init.d/generate-ssh-hostkeys * bootstrapvz/common/assets/init.d/squeeze/generate-ssh-hostkeys * bootstrapvz/plugins/docker_daemon/assets/init.d/docker * bootstrapvz/providers/ec2/assets/bin/growpart * bootstrapvz/providers/ec2/assets/grub.d/40_custom * bootstrapvz/providers/ec2/assets/init.d/ec2-get-credentials * bootstrapvz/providers/ec2/assets/init.d/ec2-run-user-data * docs/_static/taskoverview.coffee * docs/_static/taskoverview.less * tests/unit/subprocess.sh
57 lines
2 KiB
Python
57 lines
2 KiB
Python
from tasks import Snapshot
|
|
from tasks import CopyImage
|
|
from tasks import CreateFromSnapshot
|
|
from tasks import CreateFromImage
|
|
from bootstrapvz.providers.ec2.tasks import ebs
|
|
from bootstrapvz.providers.virtualbox.tasks import guest_additions
|
|
from bootstrapvz.common.tasks import loopback
|
|
from bootstrapvz.common.tasks import volume
|
|
from bootstrapvz.common.tasks import locale
|
|
from bootstrapvz.common.tasks import apt
|
|
from bootstrapvz.common.tasks import bootstrap
|
|
from bootstrapvz.common.tasks import filesystem
|
|
from bootstrapvz.common.tasks import partitioning
|
|
|
|
|
|
def validate_manifest(data, validator, error):
|
|
import os.path
|
|
schema_path = os.path.normpath(os.path.join(os.path.dirname(__file__), 'manifest-schema.yml'))
|
|
validator(data, schema_path)
|
|
|
|
|
|
def resolve_tasks(taskset, manifest):
|
|
settings = manifest.plugins['prebootstrapped']
|
|
skip_tasks = [ebs.Create,
|
|
loopback.Create,
|
|
|
|
filesystem.Format,
|
|
partitioning.PartitionVolume,
|
|
filesystem.TuneVolumeFS,
|
|
filesystem.AddXFSProgs,
|
|
filesystem.CreateBootMountDir,
|
|
|
|
apt.DisableDaemonAutostart,
|
|
locale.GenerateLocale,
|
|
bootstrap.MakeTarball,
|
|
bootstrap.Bootstrap,
|
|
guest_additions.InstallGuestAdditions,
|
|
]
|
|
if manifest.volume['backing'] == 'ebs':
|
|
if settings.get('snapshot', None) is not None:
|
|
taskset.add(CreateFromSnapshot)
|
|
[taskset.discard(task) for task in skip_tasks]
|
|
else:
|
|
taskset.add(Snapshot)
|
|
else:
|
|
if settings.get('image', None) is not None:
|
|
taskset.add(CreateFromImage)
|
|
[taskset.discard(task) for task in skip_tasks]
|
|
else:
|
|
taskset.add(CopyImage)
|
|
|
|
|
|
def resolve_rollback_tasks(taskset, manifest, completed, counter_task):
|
|
if manifest.volume['backing'] == 'ebs':
|
|
counter_task(taskset, CreateFromSnapshot, volume.Delete)
|
|
else:
|
|
counter_task(taskset, CreateFromImage, volume.Delete)
|