X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=web%2FMonitorWeb%2Fmonitorweb%2Fmonitor_xmlrpc.py;h=ce1f26cf98666457610c650bd47a66713c84ca29;hb=7f16b4c8e96688b16152b62ec1012ab5bf29d95d;hp=a0c5052d75fe904a7ecc55409d61ea4f8442828c;hpb=c9d06f3b274ecbc092a0b3eb1f5ceb6c0f734aad;p=monitor.git diff --git a/web/MonitorWeb/monitorweb/monitor_xmlrpc.py b/web/MonitorWeb/monitorweb/monitor_xmlrpc.py index a0c5052..ce1f26c 100644 --- a/web/MonitorWeb/monitorweb/monitor_xmlrpc.py +++ b/web/MonitorWeb/monitorweb/monitor_xmlrpc.py @@ -5,8 +5,52 @@ import turbogears from datetime import datetime, timedelta import time -from monitor.database.info.model import * -from monitor.database.info.interface import * +try: + from monitor.database.info.model import * + from monitor.database.info.interface import * +except: + pass + +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 @@ -75,7 +119,11 @@ 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): + """ This is a test """ return True # SITES ------------------------------------------------------------