[Freeipa-devel] Client JSON-RPC design doc

Jan Cholasta jcholast at redhat.com
Fri Jan 4 12:43:05 UTC 2013


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




More information about the Freeipa-devel mailing list