Expect paste.deploy and gnocchi/panko options
The authtoken middleware has been printing warning log messages to the API logs for all services, reporting unexpected conf keys. This was traced back to paste.deploy adding 'here' and '__file__' and both gnocchi and panko adding 'configkey' keys in wsgi apps though these do not actually exist in the conf file. This change allows for those keys without printing a warning that unnecessarily confuses operators. But it's kind of a hack, especially the configkey bit. We shouldn't have to know about gnocchi/panko specifics like this. And it doesn't address the comment in the bug about what is seen for ironic. So I think there will still be more to do here. Change-Id: I678482309c7dd35ce147bebf13ebefc84251fe91 Partial-Bug: 1722444
This commit is contained in:
parent
db21ecd2b5
commit
0c0eae3b1e
@ -49,17 +49,18 @@ def _conf_values_type_convert(group_name, all_options, conf):
|
||||
for k, v in conf.items():
|
||||
dest = k
|
||||
try:
|
||||
if v is not None:
|
||||
# 'here' and '__file__' come from paste.deploy
|
||||
# 'configkey' is added by panko and gnocchi
|
||||
if v is not None and k not in ['here', '__file__', 'configkey']:
|
||||
type_, dest = opt_types[k]
|
||||
v = type_(v)
|
||||
except KeyError: # nosec
|
||||
# This option is not known to auth_token. v is not converted.
|
||||
_LOG.warning(
|
||||
'The option "%s" in conf is not known to auth_token', k)
|
||||
'The option "%s" is not known to keystonemiddleware', k)
|
||||
except ValueError as e:
|
||||
raise exceptions.ConfigurationError(
|
||||
_('Unable to convert the value of %(key)s option into correct '
|
||||
'type: %(ex)s') % {'key': k, 'ex': e})
|
||||
_('Unable to convert the value of option "%(key)s" into '
|
||||
'correct type: %(ex)s') % {'key': k, 'ex': e})
|
||||
opts[dest] = v
|
||||
|
||||
return opts
|
||||
|
@ -513,7 +513,7 @@ class GeneralAuthTokenMiddlewareTest(BaseAuthTokenMiddlewareTest,
|
||||
conf = {
|
||||
'wrong_key': '123'
|
||||
}
|
||||
log = 'The option "wrong_key" in conf is not known to auth_token'
|
||||
log = 'The option "wrong_key" is not known to keystonemiddleware'
|
||||
auth_token.AuthProtocol(self.fake_app, conf)
|
||||
self.assertThat(self.logger.output, matchers.Contains(log))
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user