diff options
author | Jason Gerard DeRose <jderose@redhat.com> | 2009-01-30 20:53:32 -0700 |
---|---|---|
committer | Rob Crittenden <rcritten@redhat.com> | 2009-02-03 15:29:05 -0500 |
commit | c2b0c801400fcb59be8687f9faf061aa85bcffd2 (patch) | |
tree | 434634987f8888ad5b0b66db78627f9e37206c84 /ipaserver/rpcserver.py | |
parent | 91ca06f079f4de1ca5e6c60cfdf7aae75f60821b (diff) | |
download | freeipa-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.py | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/ipaserver/rpcserver.py b/ipaserver/rpcserver.py index cb0a464c..36742b09 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) |