291f407a49
GET hypervisor API accept query param for paging since microversion 2.33. This commit adds json schema to validating the valid query parameters. There is no change in API behaviour and additionalProperty is kept True for backward compatibility. Partially implements blueprint json-schema-validation-for-query-param Change-Id: I0e8cf3ebd34ef93d6fa5da5cbcd5bde94c85138d
53 lines
1.9 KiB
Python
53 lines
1.9 KiB
Python
# Copyright 2017 Huawei Technologies Co.,LTD.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
# not use this file except in compliance with the License. You may obtain
|
|
# a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
# License for the specific language governing permissions and limitations
|
|
# under the License.
|
|
|
|
from nova.api.validation import parameter_types
|
|
|
|
list_query_schema_v233 = {
|
|
'type': 'object',
|
|
'properties': parameter_types.pagination_parameters,
|
|
# NOTE(gmann): This is kept True to keep backward compatibility.
|
|
# As of now Schema validation stripped out the additional parameters and
|
|
# does not raise 400. In microversion 2.53, the additional parameters
|
|
# are not allowed.
|
|
'additionalProperties': True
|
|
}
|
|
|
|
list_query_schema_v253 = {
|
|
'type': 'object',
|
|
'properties': {
|
|
# The 2.33 microversion added support for paging by limit and marker.
|
|
'limit': parameter_types.single_param(
|
|
parameter_types.non_negative_integer),
|
|
'marker': parameter_types.single_param({'type': 'string'}),
|
|
# The 2.53 microversion adds support for filtering by hostname pattern
|
|
# and requesting hosted servers in the GET /os-hypervisors and
|
|
# GET /os-hypervisors/detail response.
|
|
'hypervisor_hostname_pattern': parameter_types.single_param(
|
|
parameter_types.hostname),
|
|
'with_servers': parameter_types.single_param(
|
|
parameter_types.boolean)
|
|
},
|
|
'additionalProperties': False
|
|
}
|
|
|
|
show_query_schema_v253 = {
|
|
'type': 'object',
|
|
'properties': {
|
|
'with_servers': parameter_types.single_param(
|
|
parameter_types.boolean)
|
|
},
|
|
'additionalProperties': False
|
|
}
|