[openstack-dev] [nova] Backwards incompatible API changes

Joe Gordon joe.gordon0 at gmail.com
Thu Mar 20 21:31:43 UTC 2014


On Wed, Mar 19, 2014 at 5:54 PM, Christopher Yeoh <cbkyeoh at gmail.com> wrote:

> Hi,
>
> So it turns out that we have made a backwards incompatible change to
> the V2 API in Icehouse. Previously when creating a private flavor
> access was not automatically given to the tenant, now it is. The
> documentation has always said that it was, but we lied.
>
> https://review.openstack.org/#/c/40811/
>
>

Backwards compatibility was discussed in this patch and the answer that we
used at the time was:

"But without this fix the flavor-access mechanism is broken as far as I can
see, and the extra data returned is still compatible with the API
definition I think (Its just that an optional list part that was always
empty before will now have one entry from the start) - so any code that
uses the API really needs to be able to cope with that part of the result."

In retrospect I don't think that was a strong enough answer.

It ends up being a semantic change rather than something that will
> outright break parsing of response data, but it is still a backwards
> incompatible change.
>
> In future I think we need to be more cautious about approving these
> sorts of changes. And I don't think we should be using the
> documentation as the canonical source of how the API should behave.
> Perhaps once we have better design documentation we can use that, and
> it should also hopefully lead to better checking that adequate unit
> testing is present.
>
>
Agreed.



> Although it does on the surface appear to be a fairly minor backwards
> incompatibility it does turn out that it breaks Horizon because they
> presumably ended up coding against what we actually do rather than what
> we claimed we did.
>
> https://bugs.launchpad.net/horizon/+bug/1286297
>
> If we managed to break Horizon, its likely we've broken (or will break)
> other people's scripts or SDKs.
>
> The patch was merged in October (just after Icehouse opened) and so has
> been used in clouds that do CD for quite a while. After some discussion
> on IRC I think we'll end up having to leave this backwards incompatible
> change in there - given there are most likely users who now rely on
> both sets of behaviour there is no good way to get out of this
> situation. I've added a note to the Icehouse release notes.
>
> Anyway I think this should be a reminder to all of us that we have to
> be very careful with any patch that results in a stable API change.
> Because when we make a mistake, we have a tiny window to fix it
> before people start relying on the new behaviour and it becomes very
> difficult to fix.
>
> Chris
>
> _______________________________________________
> OpenStack-dev mailing list
> OpenStack-dev at lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20140320/224ab32b/attachment.html>


More information about the OpenStack-dev mailing list