On 02/26/2014 02:19 PM, Rob Crittenden wrote:
Rich Megginson wrote:
On 02/26/2014 08:53 AM, Petr Viktorin wrote:
On 02/26/2014 04:45 PM, Rich Megginson wrote:
I'm working on adding support for freeipa DNS to openstack designate
(DNSaaS).  I am assuming I need to use RPC (XML?  JSON? REST?) to
communicate with freeipa. Is there documentation about how to construct
and send RPC messages?

The JSON-RPC and XML-RPC API is still not "officially supported"
(read: documented), though it's extremely unlikely to change.
If you need an example, run any ipa command with -vv, this will print
out the request & response.
API.txt in the source tree lists all the commands and params.
This blog post still applies (but be sure to read the update about
--cacert):
http://adam.younglogic.com/2010/07/talking-to-freeipa-json-web-api-via-curl/



Ok.  Next question is - how does one do the equivalent of the curl
command in python code?

Here is a pretty stripped-down way to add a user. Other commands are similar, you just may care more about the output:

from ipalib import api
from ipalib import errors

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

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


How would one do this from outside of ipa?  If ipalib is not available?

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

Reply via email to