I've put a JSON-RPC design doc at http://freeipa.org/page/V3/JSON-RPC. It's also below for easier quoting.

I found that constants.py already has an env variable called "rpc_json_uri", and xmlrpc_uri has this comment:
    # FIXME: let's renamed xmlrpc_uri to rpc_xml_uri
AFAICS rpc_json_uri is unused, undocumented, and the installer always leaves it at the default ("http://localhost:8888/ipa/json";). I don't think it's feasible to rename xmlrpc_uri any more, so I used "jsonrpc_uri" for consistency, and I plan to remove rpc_json_uri in the JSON patch.



[https://fedorahosted.org/freeipa/ticket/3299 #3299] Switch the client to JSON-RPC

= Overview =

IPA currently uses XML-RPC to communicate with the server. The Web UI uses JSON-RPC.

Using JSON-RPC also in the IPA client will allow us to include additional
information in errors, such as instructions or log messages.

Also, switching the protocol will allow us to assume the latest client
version when the client doesn't send a version option (see
[http://www.redhat.com/archives/freeipa-devel/2012-December/msg00164.html discussion on freeipa-devel]).

This RFE is only for the <tt>ipa</tt> client. Other (especially non-Python)
tools such as ipa-join will continue to use XML-RPC.
The features that JSON-RPC will allow aren't essential for these tools. The
features will simply not be available over XML-RPC.

= Use Cases =


= Design=

Two options will be added to default.conf:

* rpc_protocol
* jsonrpc_uri

If jsonrpc_uri is not given, it will be derived from xmlrpc_uri by replacing
"/xml" with "/json".

If rpc_protocol is set to "jsonrpc" (the default), the client will use JSON-RPC
to talk to the server. If it's set to "xmlrpc", the client will use XML-RPC.

= Implementation =

No additional requirements or changes discovered during the implementation phase.

= Feature Managment: CLI =

Developers can use the <tt>-e rpc_protocol=xmlrpc</tt> option to
<tt>ipa</tt> to use the old protocol.

= Major configuration options and enablement =

Two new env variables, see Design.

= Replication =


= Updates and Upgrades =


= Dependencies =


= External Impact =


Freeipa-devel mailing list

Reply via email to