[openstack-dev] [nova] When can/should we change additionalProperties=False in GET /servers(/detail)?
Matt Riedemann
mriedemos at gmail.com
Mon Sep 17 19:28:12 UTC 2018
This is a question from a change [1] which adds a new changes-before
filter to the servers, os-instance-actions and os-migrations APIs.
For context, the os-instance-actions API stopped accepting undefined
query parameters in 2.58 when we added paging support.
The os-migrations API stopped allowing undefined query parameters in
2.59 when we added paging support.
The open question on the review is if we should change GET /servers and
GET /servers/detail to stop allowing undefined query parameters starting
with microversion 2.66 [2]. Apparently when we added support for 2.5 and
2.26 for listing servers we didn't think about this. It means that a
user can specify a query parameter, documented in the API reference, but
with an older microversion and it will be silently ignored. That is
backward compatible but confusing from an end user perspective since it
would appear to them that the filter is not being applied, when it fact
it would be if they used the correct microversion.
So do we want to start enforcing query parameters when listing servers
to our defined list with microversion 2.66 or just continue to silently
ignore them if used incorrectly?
Note that starting in Rocky, the Neutron API will start rejecting
unknown query parameteres [3] if the filter-validation extension is
enabled (since Neutron doesn't use microversions). So there is some
precedent in OpenStack for starting to enforce query parameters.
[1] https://review.openstack.org/#/c/599276/
[2]
https://review.openstack.org/#/c/599276/23/nova/api/openstack/compute/schemas/servers.py
[3] https://docs.openstack.org/releasenotes/neutron/rocky.html#upgrade-notes
--
Thanks,
Matt
More information about the OpenStack-dev
mailing list