bootstrap-vz/providers/virtualbox/__init__.py

78 lines
2.4 KiB
Python
Raw Normal View History

2013-07-10 10:49:45 +02:00
from manifest import Manifest
from tasks import packages
from common.tasks import volume as volume_tasks
from common.tasks import loopback
from common.tasks import partitioning
from common.tasks import filesystem
from common.tasks import bootstrap
2013-12-01 23:50:32 +01:00
from common.tasks import boot
from common.tasks import security
from common.tasks import network
from common.tasks import initd
from common.tasks import cleanup
from common.tasks import workspace
2013-07-10 10:49:45 +02:00
2013-07-10 10:49:45 +02:00
def initialize():
2013-08-10 16:56:14 +02:00
pass
2013-07-10 10:49:45 +02:00
def tasks(tasklist, manifest):
from common.task_sets import base_set
from common.task_sets import volume_set
from common.task_sets import mounting_set
from common.task_sets import apt_set
from common.task_sets import locale_set
tasklist.add(*base_set)
tasklist.add(*volume_set)
tasklist.add(*mounting_set)
tasklist.add(*apt_set)
tasklist.add(*locale_set)
if manifest.volume['partitions']['type'] != 'none':
from common.task_sets import partitioning_set
tasklist.add(*partitioning_set)
2013-10-27 13:01:01 +01:00
tasklist.add(packages.ImagePackages,
2013-08-10 17:52:24 +02:00
loopback.Create,
2013-08-10 17:52:24 +02:00
2013-12-01 23:50:32 +01:00
boot.InstallGrub,
boot.BlackListModules,
boot.DisableGetTTYs,
security.EnableShadowConfig,
network.RemoveDNSInfo,
network.ConfigureNetworkIF,
network.RemoveHostname,
initd.AddSSHKeyGeneration,
initd.InstallInitScripts,
cleanup.ClearMOTD,
cleanup.CleanTMP,
2013-10-04 21:13:41 +02:00
loopback.MoveImage)
2013-08-10 17:52:24 +02:00
if manifest.bootstrapper.get('tarball', False):
tasklist.add(bootstrap.MakeTarball)
2013-08-10 17:52:24 +02:00
2013-10-06 01:42:32 +02:00
from common.task_sets import get_fs_specific_set
tasklist.add(*get_fs_specific_set(manifest.volume['partitions']))
if 'boot' in manifest.volume['partitions']:
from common.task_sets import boot_partition_set
tasklist.add(*boot_partition_set)
2013-07-10 10:49:45 +02:00
def rollback_tasks(tasklist, tasks_completed, manifest):
completed = [type(task) for task in tasks_completed]
def counter_task(task, counter):
if task in completed and counter not in completed:
tasklist.add(counter)
2013-07-10 10:49:45 +02:00
counter_task(loopback.Create, volume_tasks.Delete)
counter_task(filesystem.CreateMountDir, filesystem.DeleteMountDir)
counter_task(partitioning.MapPartitions, partitioning.UnmapPartitions)
counter_task(filesystem.MountRoot, filesystem.UnmountRoot)
counter_task(volume_tasks.Attach, volume_tasks.Detach)
counter_task(workspace.CreateWorkspace, workspace.DeleteWorkspace)