From 17b11b54e2c212d5b3a8f8a15f49284abd91b50e Mon Sep 17 00:00:00 2001 From: Stephen Soltesz Date: Mon, 4 May 2009 20:34:41 +0000 Subject: [PATCH] first docs test --- web/MonitorWeb/monitorweb/monitor_xmlrpc.py | 44 +++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/web/MonitorWeb/monitorweb/monitor_xmlrpc.py b/web/MonitorWeb/monitorweb/monitor_xmlrpc.py index a0c5052..78692ff 100644 --- a/web/MonitorWeb/monitorweb/monitor_xmlrpc.py +++ b/web/MonitorWeb/monitorweb/monitor_xmlrpc.py @@ -8,6 +8,47 @@ import time from monitor.database.info.model import * from monitor.database.info.interface import * +try: + from PLC.Parameter import Parameter, Mixed +except: + def Parameter(a = None, b = None): pass + def Mixed(a = None, b = None, c = None): pass + +def export_to_docbook(**kwargs): + + keywords = { + "group" : "Monitor", + "status" : "current", + "name": None, + "args": None, + "roles": [], + "accepts": [], + "returns": [], + } + def export(method): + def args(): + # Inspect method. Remove self from the argument list. + max_args = method.func_code.co_varnames[0:method.func_code.co_argcount] + defaults = method.func_defaults + if defaults is None: + defaults = () + min_args = max_args[0:len(max_args) - len(defaults)] + + defaults = tuple([None for arg in min_args]) + defaults + return (min_args, max_args, defaults) + + keywords['name'] = method.__name__ + keywords['args'] = args + for arg in keywords: + method.__setattr__(arg, keywords[arg]) + + for arg in kwargs: + method.__setattr__(arg, kwargs[arg]) + return method + + return export + + class MonitorXmlrpcServerMethods: @cherrypy.expose def listMethods(self): @@ -75,6 +116,9 @@ class MonitorXmlrpcServer(object): # User-defined functions must use cherrypy.expose; turbogears.expose # does additional checking of the response type that we don't want. @cherrypy.expose + @export_to_docbook(roles=['tech', 'user', 'pi', 'admin'], + accepts=[], + returns=Parameter(bool, 'True is successful')) def upAndRunning(self): return True -- 2.43.0