From 4d656111e6eb035ef06eeb1a9b10ed33a095adc5 Mon Sep 17 00:00:00 2001 From: Karl MacMillan Date: Mon, 30 Jul 2007 17:25:41 -0400 Subject: First part of xml-rpc patch. --- ipa-server/ipa-install/README | 2 ++ ipa-server/ipaserver/__init__.py | 56 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 58 insertions(+) diff --git a/ipa-server/ipa-install/README b/ipa-server/ipa-install/README index 31e7375f..2e1dd0d4 100644 --- a/ipa-server/ipa-install/README +++ b/ipa-server/ipa-install/README @@ -6,6 +6,8 @@ fedora-ds-base openldap-clients krb5-server-ldap cyrus-sasl-gssapi +httpd +mod_auth_kerb Installation example: diff --git a/ipa-server/ipaserver/__init__.py b/ipa-server/ipaserver/__init__.py index 8e20eb1b..6d254d6a 100644 --- a/ipa-server/ipaserver/__init__.py +++ b/ipa-server/ipaserver/__init__.py @@ -1 +1,57 @@ +#! /usr/bin/python -E +# Authors: Karl MacMillan +# see inline +# +# Copyright (C) 2007 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 or later +# +# 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 +# + __all__ = ["dsinstance", "krbinstance"] + +# +# Functions common for the XML RPC client and server +# +# Authors: +# Mike McLean (from koji) + +# functions for encoding/decoding optional arguments + +def encode_args(*args,**opts): + """The function encodes optional arguments as regular arguments. + + This is used to allow optional arguments in xmlrpc calls + Returns a tuple of args + """ + if opts: + opts['__starstar'] = True + args = args + (opts,) + return args + +def decode_args(*args): + """Decodes optional arguments from a flat argument list + + Complementary to encode_args + Returns a tuple (args,opts) where args is a tuple and opts is a dict + """ + opts = {} + if len(args) > 0: + last = args[-1] + if type(last) == dict and last.get('__starstar',False): + del last['__starstar'] + opts = last + args = args[:-1] + return args,opts + -- cgit