Merge "Disallow config option name as same as attribute of ConfigOpts"
This commit is contained in:
commit
93e2449ab0
@ -2031,6 +2031,8 @@ class ConfigOpts(collections.Mapping):
|
||||
:oslo.config:option:`config_dir` options.
|
||||
|
||||
"""
|
||||
disallow_names = ('project', 'prog', 'version',
|
||||
'usage', 'default_config_files')
|
||||
|
||||
def __init__(self):
|
||||
"""Construct a ConfigOpts object."""
|
||||
@ -2251,6 +2253,14 @@ class ConfigOpts(collections.Mapping):
|
||||
self._add_cli_opt(opt, group)
|
||||
return group._register_opt(opt, cli)
|
||||
|
||||
# NOTE(gcb) We can't use some names which are same with attributes of
|
||||
# Opts in default group. They includes project, prog, version, usage
|
||||
# and default_config_files.
|
||||
if group is None:
|
||||
if opt.name in self.disallow_names:
|
||||
raise ValueError('Name %s was reserved for oslo.config.'
|
||||
% opt.name)
|
||||
|
||||
if cli:
|
||||
self._add_cli_opt(opt, None)
|
||||
|
||||
|
@ -2170,6 +2170,14 @@ class ReRegisterOptTestCase(BaseTestCase):
|
||||
self.assertFalse(self.conf.register_opt(opt, group='blaa'))
|
||||
|
||||
|
||||
class RegisterOptNameTestCase(BaseTestCase):
|
||||
|
||||
def test_register_opt_with_disallow_name(self):
|
||||
for name in cfg.ConfigOpts.disallow_names:
|
||||
opt = cfg.StrOpt(name)
|
||||
self.assertRaises(ValueError, self.conf.register_opt, opt)
|
||||
|
||||
|
||||
class TemplateSubstitutionTestCase(BaseTestCase):
|
||||
|
||||
def _prep_test_str_sub(self, foo_default=None, bar_default=None):
|
||||
|
Loading…
x
Reference in New Issue
Block a user