summaryrefslogtreecommitdiffstats
path: root/func/overlord/client.py
diff options
context:
space:
mode:
authorKrzysztof A. Adamski <krzysztofa@gmail.com>2008-08-02 19:41:40 -0400
committerKrzysztof A. Adamski <krzysztofa@gmail.com>2008-08-07 18:29:22 -0400
commitb2ea14876b07a9a2a64adbb0ddd824e15c674ffe (patch)
tree479d2ed287b92440d478c1e78abba377cf59a25c /func/overlord/client.py
parent4a17d134e0f5a3880a4ba0d930e2d37485c8b1a2 (diff)
downloadfunc-b2ea14876b07a9a2a64adbb0ddd824e15c674ffe.tar.gz
func-b2ea14876b07a9a2a64adbb0ddd824e15c674ffe.tar.xz
func-b2ea14876b07a9a2a64adbb0ddd824e15c674ffe.zip
Adding overlord modules support.
Diffstat (limited to 'func/overlord/client.py')
-rwxr-xr-xfunc/overlord/client.py12
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)