conf: Add '[api] response_validation' option
We have no schemas yet and thus nothing to use this, but we enable it in our tests for when we start adding these. Change-Id: I160ee724459403a10516a356ee860831545d7d65 Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
This commit is contained in:
parent
0021b840a2
commit
1a93703623
@ -396,12 +396,44 @@ so if your hypervisor does not support password injection, set this to False.
|
|||||||
""")
|
""")
|
||||||
]
|
]
|
||||||
|
|
||||||
|
validation_opts = [
|
||||||
|
cfg.StrOpt(
|
||||||
|
"response_validation",
|
||||||
|
choices=(
|
||||||
|
(
|
||||||
|
"error",
|
||||||
|
"Raise a HTTP 500 (Server Error) for responses that fail "
|
||||||
|
"schema validation",
|
||||||
|
),
|
||||||
|
(
|
||||||
|
"warn",
|
||||||
|
"Log a warning for responses that fail schema validation",
|
||||||
|
),
|
||||||
|
(
|
||||||
|
"ignore",
|
||||||
|
"Ignore schema validation failures",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
default="warn",
|
||||||
|
help="""\
|
||||||
|
Configure validation of API responses.
|
||||||
|
|
||||||
|
``warn`` is the current recommendation for production environments. This is
|
||||||
|
expected to change to ``error`` in a future release.
|
||||||
|
|
||||||
|
If you find it necessary to enable the ``ignore`` option, please report the
|
||||||
|
issues you are seeing to the Nova team so we can improve our schemas.
|
||||||
|
""",
|
||||||
|
),
|
||||||
|
]
|
||||||
|
|
||||||
API_OPTS = (auth_opts +
|
API_OPTS = (auth_opts +
|
||||||
metadata_opts +
|
metadata_opts +
|
||||||
file_opts +
|
file_opts +
|
||||||
osapi_opts +
|
osapi_opts +
|
||||||
os_network_opts +
|
os_network_opts +
|
||||||
enable_inst_pw_opts)
|
enable_inst_pw_opts +
|
||||||
|
validation_opts)
|
||||||
|
|
||||||
|
|
||||||
def register_opts(conf):
|
def register_opts(conf):
|
||||||
|
3
nova/tests/fixtures/conf.py
vendored
3
nova/tests/fixtures/conf.py
vendored
@ -58,6 +58,9 @@ class ConfFixture(config_fixture.Config):
|
|||||||
# tests.
|
# tests.
|
||||||
self.conf.set_default('keep_alive', False, group="wsgi")
|
self.conf.set_default('keep_alive', False, group="wsgi")
|
||||||
|
|
||||||
|
# api group
|
||||||
|
self.conf.set_default('response_validation', 'error', group='api')
|
||||||
|
|
||||||
# many tests synchronizes on the reception of versioned notifications
|
# many tests synchronizes on the reception of versioned notifications
|
||||||
self.conf.set_default(
|
self.conf.set_default(
|
||||||
'notification_format', "both", group="notifications")
|
'notification_format', "both", group="notifications")
|
||||||
|
6
releasenotes/notes/api-validation-8ad561407b52175f.yaml
Normal file
6
releasenotes/notes/api-validation-8ad561407b52175f.yaml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
features:
|
||||||
|
- |
|
||||||
|
A new configuration option, ``[api] response_validation``, has been added.
|
||||||
|
This allows operators to configure the behavior of ``nova-api`` when a
|
||||||
|
response fails schema validation.
|
Loading…
Reference in New Issue
Block a user