summaryrefslogtreecommitdiffstats
path: root/ipaserver/rpcserver.py
diff options
context:
space:
mode:
authorJason Gerard DeRose <jderose@redhat.com>2009-01-30 20:53:32 -0700
committerRob Crittenden <rcritten@redhat.com>2009-02-03 15:29:05 -0500
commitc2b0c801400fcb59be8687f9faf061aa85bcffd2 (patch)
tree434634987f8888ad5b0b66db78627f9e37206c84 /ipaserver/rpcserver.py
parent91ca06f079f4de1ca5e6c60cfdf7aae75f60821b (diff)
downloadfreeipa-c2b0c801400fcb59be8687f9faf061aa85bcffd2.tar.gz
freeipa-c2b0c801400fcb59be8687f9faf061aa85bcffd2.tar.xz
freeipa-c2b0c801400fcb59be8687f9faf061aa85bcffd2.zip
Started work on a much simplified mod_python server
Diffstat (limited to 'ipaserver/rpcserver.py')
-rw-r--r--ipaserver/rpcserver.py26
1 files changed, 23 insertions, 3 deletions
diff --git a/ipaserver/rpcserver.py b/ipaserver/rpcserver.py
index cb0a464cc..36742b094 100644
--- a/ipaserver/rpcserver.py
+++ b/ipaserver/rpcserver.py
@@ -46,15 +46,35 @@ class xmlserver(Executioner):
Also see the `ipalib.rpc.xmlclient` plugin.
"""
+ def finalize(self):
+ self.__system = {
+ 'system.listMethods': self.listMethods,
+ 'system.methodSignature': self.methodSignature,
+ 'system.methodHelp': self.methodHelp,
+ }
+ super(xmlserver, self).finalize()
+
+ def listMethods(self, *params):
+ return tuple(name.encode('UTF-8') for name in self.Command)
+
+ def methodSignature(self, *params):
+ return 'methodSignature not supported'
+
+ def methodHelp(self, *params):
+ return 'methodHelp not supported'
+
def marshaled_dispatch(self, data, ccache):
"""
Execute the XML-RPC request in contained in ``data``.
"""
try:
- self.create_context(ccache=ccache)
+ #self.create_context(ccache=ccache)
(params, name) = xml_loads(data)
- (args, options) = params_2_args_options(params)
- response = (self.execute(name, *args, **options),)
+ if name in self.__system:
+ response = (self.__system[name](*params),)
+ else:
+ (args, options) = params_2_args_options(params)
+ response = (self.execute(name, *args, **options),)
except PublicError, e:
self.info('response: %s: %s', e.__class__.__name__, str(e))
response = Fault(e.errno, e.strerror)