summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdrian Likins <alikins@redhat.com>2008-10-20 10:52:05 -0400
committerAdrian Likins <alikins@redhat.com>2008-10-20 10:52:05 -0400
commit6e17cdc205518bf6f4a4524622ea1c4eaff2d87d (patch)
tree467fbe92a99e9a2589afaeda3ed133ce2eb47075
parentd3848c9469ce32e4015095bd2b083e4a7b9560fa (diff)
downloadfunc-6e17cdc205518bf6f4a4524622ea1c4eaff2d87d.tar.gz
func-6e17cdc205518bf6f4a4524622ea1c4eaff2d87d.tar.xz
func-6e17cdc205518bf6f4a4524622ea1c4eaff2d87d.zip
Add some support for saving module config files. And corresponding test cases.
-rw-r--r--func/minion/modules/func_module.py10
-rw-r--r--func/minion/modules/test.py11
-rw-r--r--test/unittest/test_client.py14
3 files changed, 33 insertions, 2 deletions
diff --git a/func/minion/modules/func_module.py b/func/minion/modules/func_module.py
index a405198..6985164 100644
--- a/func/minion/modules/func_module.py
+++ b/func/minion/modules/func_module.py
@@ -11,6 +11,7 @@
##
import inspect
+import os
from func import logger
from certmaster.config import read_config, BaseConfig
@@ -48,10 +49,15 @@ class FuncModule(object):
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)
+ self.options_file = '/etc/func/modules/'+self.__class__.__name__+'.conf'
+ self.options = read_config(self.options_file, self.Config)
return
+ def save_config(self):
+ fh = open(self.options_file, 'w')
+ self.options.write(fh)
+ return True
+
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/minion/modules/test.py b/func/minion/modules/test.py
index 2103042..efcfde6 100644
--- a/func/minion/modules/test.py
+++ b/func/minion/modules/test.py
@@ -47,6 +47,17 @@ class Test(func_module.FuncModule):
"""
return self.options
+ def config_save(self):
+ """
+ Saves the options config
+ """
+ self.save_config()
+ return self.options
+
+ def config_set(self, key_name, value):
+ setattr(self.options,key_name, value)
+ self.save_config()
+ return self.options
def register_method_args(self):
diff --git a/test/unittest/test_client.py b/test/unittest/test_client.py
index b535413..518d612 100644
--- a/test/unittest/test_client.py
+++ b/test/unittest/test_client.py
@@ -153,6 +153,20 @@ class TestTest(BaseTest):
def test_config(self):
result = self.overlord.test.configfoo()
+ config = result[self.th]
+ print config
+ self.assert_on_fault(result)
+
+ def test_config_write(self):
+ result = self.overlord.test.config_save()
+ config = result[self.th]
+ print config
+ self.assert_on_fault(result)
+
+ def test_config_set(self):
+ result = self.overlord.test.config_set("example", 5000)
+ config = result[self.th]
+ print config
self.assert_on_fault(result)