Hi,

On 4.1.2013 10:54, Petr Viktorin wrote:
Hello,
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.





-----

__NOTOC__

[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 =

N/A

= 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.

What is the benefit of supporting both protocols?


= 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 =

N/A

= Updates and Upgrades =

N/A

= Dependencies =

N/A

= External Impact =

N/A


Honza

--
Jan Cholasta

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

Reply via email to