diff options
-rw-r--r-- | ipalib/plugins/b_xmlrpc.py | 39 | ||||
-rwxr-xr-x | simple-server.py | 46 |
2 files changed, 85 insertions, 0 deletions
diff --git a/ipalib/plugins/b_xmlrpc.py b/ipalib/plugins/b_xmlrpc.py new file mode 100644 index 00000000..afe76505 --- /dev/null +++ b/ipalib/plugins/b_xmlrpc.py @@ -0,0 +1,39 @@ +# Authors: +# Jason Gerard DeRose <jderose@redhat.com> +# +# Copyright (C) 2008 Red Hat +# see file 'COPYING' for use and warranty information +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; version 2 only +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +""" +XML-RPC client plugin. + +Lightwieght XML-RPC client using Python standard library xmlrpclib. +""" + +import xmlrpclib +from ipalib.backend import Backend +from ipalib import api + +class xmlrpc(Backend): + """ + Kerberos backend plugin. + """ + + def get_client(self): + # FIXME: The server uri should come from self.api.env.server_uri + return xmlrpclib.ServerProxy('http://localhost:8080', allow_none=True) + +api.register(xmlrpc) diff --git a/simple-server.py b/simple-server.py new file mode 100755 index 00000000..b9de5798 --- /dev/null +++ b/simple-server.py @@ -0,0 +1,46 @@ +#!/usr/bin/python + +# Authors: +# Jason Gerard DeRose <jderose@redhat.com> +# +# Copyright (C) 2008 Red Hat +# see file 'COPYING' for use and warranty information +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; version 2 only +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +from SimpleXMLRPCServer import SimpleXMLRPCServer +from ipalib import api +from ipalib import load_plugins + +api.finalize() + + +def test_func(*args, **kw): + 'A test function' + print args, kw + return '%s, %s' % (repr(args), repr(kw)) + +def stuff(first, last): + 'Do stuff' + print first, last + return first + last + +server = SimpleXMLRPCServer(('localhost', 8080)) +server.register_introspection_functions() +#server.register_function(test_func) +#server.register_function(stuff) +for cmd in api.Command(): + server.register_function(cmd, cmd.name) + +server.serve_forever() |