[openstack-tc] recommendation to deprecate XML in new major API versions

Thierry Carrez thierry at openstack.org
Tue Jan 14 14:03:13 UTC 2014

Added to the TC backlog.

Note: while we know that this is unlikely to be very productive, we
still need to discuss that in public rather than on a moderated ML... so
I propose we reuse the openstack-dev Nova v3 API no-xml thread to
further discuss that. If for any reason the discussion there ends up way
too nova-specific, we should probably have a specific thread about this
universal "recommendation" sometimes next week.

Sean Dague wrote:
> I started becoming really active in OpenStack during the Folsom cycle,
> and one of the big cleanups that Dan Smith and I did was at the very end
> of the cycle. There was 0 testing on the Nova XML API, and if you
> actually tried to use it, you got inconsistent responses, or stack
> traces. There were at least 6 critical bugs in that API because no one
> used it. That got fix by dual stacking the Tempest tests. We did this
> because we thought it would be embarresing for OpenStack to ship with an
> interface that it said supported, and that it didn't in any real way.
> So I feel personally responsible for not letting XML die back in Nova v2
> by making it actually work.
> Since then, many projects have followed Nova's lead and added XML APIs,
> which I think has been completely wrong headed. The only reason we
> didn't rip it out in Nova v2 is that it would be breaking in field
> compatibility without an API version bump. (Something else I feel
> strongly about).
> However, the proliferation has costs (really costs in terms of people time).
>  - It increases the amount of code in the projects, it impacts the kind
> of data the JSON apis can return because they have to be XML friendly.
>  - It doubles the width of the validation interface (and XML validation
> is more code costly from python because it's not a direct serialization
> like python).
>  - It dramatically increases the width of the Documentation interface,
> as we need XML examples as well as JSON.
> And it's not something that's currently universal.
>  - glance doesn't have an XML API
>  - the python clients don't implement XML data payload
> It also inhibits us doing really great things with our API, like making
> it end user fully discoverable with json schema (because then we'd need
> to figure out how we'd address that on the XML side, and that complexity
> tends to kill the innovation).
> With a new Nova API on the horizon, I think it's time to make a TC level
> recommendation that XML payloads be deprecated, and that new major API
> versions don't include them.
> I'd like to bring this up for discussion either next week or the week
> after, because I think that the way every version of this discussion has
> gone in the past is a few people on a mailing list object, and we keep
> the XML API. However I think that's not serving our users well, because
> way too much energy gets diverted from really making our core JSON API
> excellent for users.
> 	-Sean
> _______________________________________________
> OpenStack-TC mailing list
> OpenStack-TC at lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-tc

Thierry Carrez (ttx)

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 901 bytes
Desc: OpenPGP digital signature
URL: <http://lists.openstack.org/pipermail/openstack-tc/attachments/20140114/866d4b79/attachment.pgp>

More information about the OpenStack-TC mailing list