bootstrap-vz/base/main.py

32 lines
947 B
Python
Raw Normal View History

2013-05-16 08:00:28 +02:00
def main():
2013-06-23 22:30:41 +02:00
import log
2013-06-09 20:29:54 +02:00
args = get_args()
2013-06-23 22:30:41 +02:00
logfile = log.get_logfile_path(args.manifest)
log.setup_logger(logfile=logfile, debug=args.debug)
2013-06-09 20:29:54 +02:00
run(args)
def get_args():
2013-05-16 08:00:28 +02:00
from argparse import ArgumentParser
parser = ArgumentParser(description='Bootstrap Debian for the cloud.')
parser.add_argument('--debug', action='store_true',
help='Print debugging information')
parser.add_argument('manifest', help='Manifest file to use for bootstrapping', metavar='MANIFEST')
2013-06-09 20:29:54 +02:00
return parser.parse_args()
2013-05-16 08:00:28 +02:00
def run(args):
from manifest import load_manifest
(provider, manifest) = load_manifest(args.manifest)
2013-05-16 08:00:28 +02:00
2013-06-09 16:23:08 +02:00
from tasklist import TaskList
tasklist = TaskList()
provider.tasks(tasklist, manifest)
for plugin in manifest.loaded_plugins:
plugin.tasks(tasklist, manifest)
2013-05-16 08:00:28 +02:00
2013-06-09 16:15:23 +02:00
from bootstrapinfo import BootstrapInformation
bootstrap_info = BootstrapInformation(manifest=manifest, debug=args.debug)
2013-05-16 08:00:28 +02:00
tasklist.run(bootstrap_info)