[openstack-dev] [nova] When can/should we change additionalProperties=False in GET /servers(/detail)?

Ghanshyam Mann gmann at ghanshyammann.com
Tue Sep 18 02:41:14 UTC 2018


 ---- On Tue, 18 Sep 2018 09:33:30 +0900 Alex Xu <soulxu at gmail.com> wrote ---- 
 > That only means after 599276 we only have servers API and os-instance-action API stopped accepting the undefined query parameter.
 > What I'm thinking about is checking all the APIs, add json-query-param checking with additionalProperties=True if the API don't have yet. And using another microversion set additionalProperties to False, then the whole Nova API become consistent.

I too vote for doing it for all other API together. Restricting the unknown query or request param are very useful for API consistency. Item#1 in this etherpad https://etherpad.openstack.org/p/nova-api-cleanup

If you would like, i can propose a quick spec for that and positive response to do all together then we skip to do that in 599276 otherwise do it for GET servers in 599276. 

-gmann

 > Jay Pipes <jaypipes at gmail.com> 于2018年9月18日周二 上午4:07写道:
 >  __________________________________________________________________________
 > OpenStack Development Mailing List (not for usage questions)
 > Unsubscribe: OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
 > http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
 > On 09/17/2018 03:28 PM, Matt Riedemann wrote:
 >  > 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
 >  
 >  My vote would be just change additionalProperties to False in the 599276 
 >  patch and be done with it.
 >  
 >  Add a release note about the change, of course.
 >  
 >  -jay
 >  
 >  __________________________________________________________________________
 >  OpenStack Development Mailing List (not for usage questions)
 >  Unsubscribe: OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
 >  http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
 >  





More information about the OpenStack-dev mailing list