On 01/18/2017 06:55 PM, dhbarboza82(a)gmail.com wrote:
From: Daniel Henrique Barboza <danielhb(a)linux.vnet.ibm.com>
- added a new action handler called 'reload' in control/config.py
- added a method 'reload' in model/config.py that calls
'cherrypy.engine.restart()'.
Signed-off-by: Daniel Henrique Barboza <danielhb(a)linux.vnet.ibm.com>
---
src/wok/control/config.py | 4 +++-
src/wok/model/config.py | 7 ++++++-
2 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/src/wok/control/config.py b/src/wok/control/config.py
index 338306c..62218f9 100644
--- a/src/wok/control/config.py
+++ b/src/wok/control/config.py
@@ -1,7 +1,7 @@
#
# Project Wok
#
-# Copyright IBM Corp, 2016
+# Copyright IBM Corp, 2016-2017
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
@@ -25,6 +25,8 @@ from wok.control.utils import UrlSubNode
class Config(Resource):
def __init__(self, model, id=None):
super(Config, self).__init__(model, id)
+ self.uri_fmt = '/config/%s'
AFAIU, the self.uri_fmt is only required when you have an resource name
which is not the case of /config API
Do you have any specific reason to set it?
Also I'd say to you set self.admin_methods = [POST] so when my patch
related to authorization get merged, the POST action will be protected
for only sysadmins.
+ self.reload =
self.generate_action_handler('reload')
@property
def data(self):
diff --git a/src/wok/model/config.py b/src/wok/model/config.py
index 7e8ae4f..57c5ad8 100644
--- a/src/wok/model/config.py
+++ b/src/wok/model/config.py
@@ -1,7 +1,7 @@
#
# Project Wok
#
-# Copyright IBM Corp, 2016
+# Copyright IBM Corp, 2016-2017
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
@@ -17,6 +17,8 @@
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+import cherrypy
+
from wok.config import config, get_version
@@ -30,3 +32,6 @@ class ConfigModel(object):
'auth': config.get('authentication',
'method'),
'server_root': config.get('server',
'server_root'),
'version': get_version()}
+
+ def reload(self, name):
+ cherrypy.engine.restart()