That helps a lot.  Thanks!  I would use ipalib, but I'm developing a Rails
application, so the JSON interface is the quickest (and since XML may be
deprecated) best way forward (unless you know a way to use it in Ruby :).
 I'm guessing in JSON, the structure would look something like this:

  "method": "user_add",
  "params": [

Maybe I'll try to compile some documentation.  I know that this page helped
a lot, to cook up a quick ruby client with Curb:

On Mon, Jan 14, 2013 at 9:35 PM, Rob Crittenden <> wrote:

> 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

Brian Smith
Assistant Director
Research Computing, University of South Florida
4202 E. Fowler Ave. SVC4010
Office Phone: +1 813 974-1467
Organization URL:
Freeipa-users mailing list

Reply via email to