summaryrefslogtreecommitdiffstats
path: root/func
diff options
context:
space:
mode:
Diffstat (limited to 'func')
-rw-r--r--func/minion/acls.py2
-rw-r--r--func/minion/modules/func_module.py11
-rw-r--r--func/overlord/cmd_modules/call.py9
-rw-r--r--func/overlord/cmd_modules/ping.py1
4 files changed, 20 insertions, 3 deletions
diff --git a/func/minion/acls.py b/func/minion/acls.py
index c592bd6..2203446 100644
--- a/func/minion/acls.py
+++ b/func/minion/acls.py
@@ -65,7 +65,7 @@ class Acls(object):
self.acls[host] = []
self.acls[host].extend(methods)
- self.logger.debug("acls", self.acls)
+ self.logger.debug("acls %s" % self.acls)
return self.acls
diff --git a/func/minion/modules/func_module.py b/func/minion/modules/func_module.py
index 53fd66b..d75cb33 100644
--- a/func/minion/modules/func_module.py
+++ b/func/minion/modules/func_module.py
@@ -13,7 +13,7 @@
import inspect
from func import logger
-from func.config import read_config
+from func.config import read_config, BaseConfig
from func.commonconfig import FuncdConfig
from func.minion.func_arg import * #the arg getter stuff
@@ -24,6 +24,9 @@ class FuncModule(object):
api_version = "0.0.0"
description = "No Description provided"
+ class Config(BaseConfig):
+ pass
+
def __init__(self):
config_file = '/etc/func/minion.conf'
@@ -37,11 +40,17 @@ class FuncModule(object):
"list_methods" : self.__list_methods,
"get_method_args" : self.__get_method_args,
}
+ self.__init_options()
def __init_log(self):
log = logger.Logger()
self.logger = log.logger
+ def __init_options(self):
+ options_file = '/etc/func/modules/'+self.__class__.__name__+'.conf'
+ self.options = read_config(options_file, self.Config)
+ return
+
def register_rpc(self, handlers, module_name):
# add the internal methods, note that this means they
# can get clobbbered by subclass versions
diff --git a/func/overlord/cmd_modules/call.py b/func/overlord/cmd_modules/call.py
index 18af3a6..648bcab 100644
--- a/func/overlord/cmd_modules/call.py
+++ b/func/overlord/cmd_modules/call.py
@@ -17,13 +17,19 @@ import optparse
import pprint
import xmlrpclib
import time
+import sys
from func.overlord import client
from func.overlord import base_command
+from func.config import read_config, BaseConfig, ListOption
import func.jobthing as jobthing
DEFAULT_FORKS = 1
+config_file = '/etc/func/async_methods.conf'
+
+class CallConfig(BaseConfig):
+ force_async = ListOption('')
class Call(base_command.BaseCommand):
name = "call"
@@ -126,6 +132,9 @@ class Call(base_command.BaseCommand):
# or some sort of shared datastruct?
# self.getOverlord()
+ call_config = read_config(config_file, CallConfig)
+ if self.method and (self.module+"."+self.method in call_config.force_async):
+ self.options.async=True
self.interactive = False
self.async = self.options.async
diff --git a/func/overlord/cmd_modules/ping.py b/func/overlord/cmd_modules/ping.py
index 3554e66..8c77ada 100644
--- a/func/overlord/cmd_modules/ping.py
+++ b/func/overlord/cmd_modules/ping.py
@@ -60,7 +60,6 @@ class Ping(base_command.BaseCommand):
noglobs=True)
results = overlord_obj.run("test", "ping", [])
- # print "results", results, type(results)
if results == 1:
print "[ ok ... ] %s" % server
else: