summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2017-07-19 06:13:29 +0000
committerGerrit Code Review <review@openstack.org>2017-07-19 06:13:29 +0000
commit11c39ac065c36259af6ff688abe3383fab7b2f1a (patch)
tree7f4d0813f0b43b795971a7bc350ddfca347aa62e
parent8e9761755d808661e3a98137e62cda9e14ddcd66 (diff)
parent204faeb1d395652389931e5e6ce9ea9c33702cc8 (diff)
downloadoslo-config-11c39ac065c36259af6ff688abe3383fab7b2f1a.tar.gz
Merge "fix an issue with looking up deprecated option names in code"4.10.0
-rw-r--r--oslo_config/cfg.py2
-rw-r--r--oslo_config/tests/test_cfg.py16
2 files changed, 18 insertions, 0 deletions
diff --git a/oslo_config/cfg.py b/oslo_config/cfg.py
index 61e708c..e5f2b91 100644
--- a/oslo_config/cfg.py
+++ b/oslo_config/cfg.py
@@ -3068,6 +3068,8 @@ class ConfigOpts(collections.Mapping):
real_opt_name = None
real_group_name = None
group_name = group or 'DEFAULT'
+ if hasattr(group_name, 'name'):
+ group_name = group_name.name
dep_group = self._deprecated_opts.get(group_name)
if dep_group:
real_opt_dict = dep_group.get(opt_name)
diff --git a/oslo_config/tests/test_cfg.py b/oslo_config/tests/test_cfg.py
index 26093e3..9c3767b 100644
--- a/oslo_config/tests/test_cfg.py
+++ b/oslo_config/tests/test_cfg.py
@@ -2527,6 +2527,22 @@ class OptNameSeparatorTestCase(BaseTestCase):
self.assertNotIn(self.opt_dest, self.conf)
self.assertNotIn(self.broken_opt_dest, self.conf)
+ def test_deprecated_name_alternate_group(self):
+ self.conf.register_opt(
+ cfg.StrOpt('foobar',
+ deprecated_name=self.opt_name,
+ deprecated_group='testing'),
+ group=cfg.OptGroup('testing'),
+ )
+
+ self.assertTrue(hasattr(self.conf.testing, 'foobar'))
+ # TODO(mtreinish): Add a check on the log message
+ self.assertTrue(hasattr(self.conf.testing, self.opt_dest))
+ self.assertFalse(hasattr(self.conf.testing, self.broken_opt_dest))
+ self.assertIn('foobar', self.conf.testing)
+ self.assertNotIn(self.opt_dest, self.conf.testing)
+ self.assertNotIn(self.broken_opt_dest, self.conf.testing)
+
def test_deprecated_name_cli(self):
self.conf.register_cli_opt(cfg.BoolOpt('foobar',
deprecated_name=self.opt_name))