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": [
    [],
    {
      "uid":"testuser",
      "givenname":"Test",
      "sn":"User",
      "userpassword":"mySecretPasswordBlahBlah"
      ...
    }
  ]
}

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:
http://adam.younglogic.com/2010/07/talking-to-freeipa-json-web-api-via-curl/


On Mon, Jan 14, 2013 at 9:35 PM, Rob Crittenden <rcrit...@redhat.com> 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
> Freeipa-users@redhat.com
> https://www.redhat.com/**mailman/listinfo/freeipa-users<https://www.redhat.com/mailman/listinfo/freeipa-users>
>



-- 
Brian Smith
Assistant Director
Research Computing, University of South Florida
4202 E. Fowler Ave. SVC4010
Office Phone: +1 813 974-1467
Organization URL: http://rc.usf.edu
_______________________________________________
Freeipa-users mailing list
Freeipa-users@redhat.com
https://www.redhat.com/mailman/listinfo/freeipa-users

Reply via email to