nova/nova/api/openstack/compute/schemas/hypervisors.py
ghanshyam 291f407a49 Implement query param schema for GET hypervisor(2.33)
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
2017-09-26 11:48:49 +03:00

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
}