Dmitri Pal wrote:
On 01/14/2013 08:16 PM, Brian Smith wrote:
Before I pester the dev list, I was wondering if anyone here could
point me to documentation on the JSON-RPC interface to FreeIPA.  I'm
not doing anything fancy, just adding users and updating passwords, so
my requirements are pretty tame.  I've gone through the Python code
and have somewhat pieced it together myself, but would be more
comfortable if there were official docs.

I do not remember us having documentation about XML-RPC but I will check.
We are actually debating deprecating XML-RPC over time in favor of JSON.

There is no official documentation on either XML-RPC or JSON. The format is rather straightforward once you get the hang of things. Each command is effectively an RPC function (e.g ipa user-add -> user_add). The arguments consist of positional arguments followed by named arguments (there is usually only one positional arg).

For XML-RPC it is generally fairly easy to work out what it's doing by adding -vv option to the command-line to see the raw request and response. I personally haven't done a lot of raw JSON work.

The final option is to skip all that and use the ipalib to do the work for you.

For example, to add a user you'd do something like:

from ipalib import api
from ipalib import errors

api.bootstrap(context='cli')
api.finalize()
api.Backend.xmlclient.connect()

try:
    api.Command['user_add'](u'newuser',
                            loginshell=u'/bin/something',
                            givenname=u'New', sn=u'User')
except errors.DuplicateEntry:
    print "user already exists"
else:
    print "user added"

_______________________________________________
Freeipa-users mailing list
Freeipa-users@redhat.com
https://www.redhat.com/mailman/listinfo/freeipa-users

Reply via email to