diff --git a/bootstrapvz/base/main.py b/bootstrapvz/base/main.py index acfacd3..b32bf3c 100644 --- a/bootstrapvz/base/main.py +++ b/bootstrapvz/base/main.py @@ -86,8 +86,7 @@ def setup_loggers(opts): def run(manifest, debug=False, pause_on_error=False, dry_run=False): - log.info('test') - return 'derp' + return manifest """Runs the bootstrapping process :params Manifest manifest: The manifest to run the bootstrapping process for diff --git a/bootstrapvz/base/manifest.py b/bootstrapvz/base/manifest.py index 969dfbf..54eb5d6 100644 --- a/bootstrapvz/base/manifest.py +++ b/bootstrapvz/base/manifest.py @@ -15,6 +15,7 @@ class Manifest(object): Currently, immutability is not enforced and it would require a fair amount of code to enforce it, instead we just rely on tasks behaving properly. """ + def __init__(self, path=None, data=None): """Initializer: Given a path we load, validate and parse the manifest. To create the manifest from dynamic data instead of the contents of a file, @@ -130,3 +131,14 @@ class Manifest(object): :raises ManifestError: With absolute certainty """ raise ManifestError(message, self.path, data_path) + + def __getstate__(self): + return {'path': self.path, + 'data': self.data} + + def __setstate__(self, vals): + self.path = vals.path + self.load(vals.data) + self.initialize() + self.validate() + self.parse() diff --git a/bootstrapvz/base/remote/__init__.py b/bootstrapvz/base/remote/__init__.py index c65b550..7185097 100644 --- a/bootstrapvz/base/remote/__init__.py +++ b/bootstrapvz/base/remote/__init__.py @@ -34,10 +34,11 @@ def main(): server = manager.rpc_server # Everything has been set up, begin the bootstrapping process - server.run(None, - debug=opts['--debug'], - pause_on_error=False, - dry_run=opts['--dry-run']) + ret = server.run(manifest, + debug=opts['--debug'], + pause_on_error=False, + dry_run=opts['--dry-run']) + logging.getLogger(__name__).info(ret) finally: manager.stop()