diff options
author | Krzysztof A. Adamski <krzysztofa@gmail.com> | 2008-08-02 19:41:40 -0400 |
---|---|---|
committer | Krzysztof A. Adamski <krzysztofa@gmail.com> | 2008-08-07 18:29:22 -0400 |
commit | b2ea14876b07a9a2a64adbb0ddd824e15c674ffe (patch) | |
tree | 479d2ed287b92440d478c1e78abba377cf59a25c /func/overlord/client.py | |
parent | 4a17d134e0f5a3880a4ba0d930e2d37485c8b1a2 (diff) | |
download | func-b2ea14876b07a9a2a64adbb0ddd824e15c674ffe.tar.gz func-b2ea14876b07a9a2a64adbb0ddd824e15c674ffe.tar.xz func-b2ea14876b07a9a2a64adbb0ddd824e15c674ffe.zip |
Adding overlord modules support.
Diffstat (limited to 'func/overlord/client.py')
-rwxr-xr-x | func/overlord/client.py | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/func/overlord/client.py b/func/overlord/client.py index b02438d..e68fdcc 100755 --- a/func/overlord/client.py +++ b/func/overlord/client.py @@ -31,6 +31,8 @@ import delegation_tools as dtools import func.forkbomb as forkbomb import func.jobthing as jobthing from func.CommonErrors import * +import func.module_loader as module_loader +from func.overlord import overlord_module # =================================== # defaults @@ -192,6 +194,8 @@ class Overlord(object): if init_ssl: self.setup_ssl() + + self.methods = module_loader.load_methods('func/overlord/modules/', overlord_module.BaseModule) def setup_ssl(self, client_key=None, client_cert=None, ca=None): # defaults go: @@ -285,7 +289,13 @@ class Overlord(object): If Overlord() was constructed with noglobs=True, the return is instead just a single value, not a hash. """ - + + if module == "local": + if method in self.methods.keys(): + return self.methods[method]() + else: + raise AttributeError("no such method") + if not self.delegate: #delegation is turned off, so run normally return self.run_direct(module, method, args, nforks) |