diff options
-rw-r--r-- | openstack/common/cfg.py | 6 | ||||
-rw-r--r-- | tests/unit/test_cfg.py | 6 |
2 files changed, 11 insertions, 1 deletions
diff --git a/openstack/common/cfg.py b/openstack/common/cfg.py index 8f25c5c..333a34b 100644 --- a/openstack/common/cfg.py +++ b/openstack/common/cfg.py @@ -1567,7 +1567,11 @@ class ConfigOpts(collections.Mapping): opts = group._opts if not opt_name in opts: - raise NoSuchOptError(opt_name, group) + if group is None and '.' in opt_name: + group, opt_name = opt_name.split('.') + return self._get_opt_info(opt_name, group) + else: + raise NoSuchOptError(opt_name, group) return opts[opt_name] diff --git a/tests/unit/test_cfg.py b/tests/unit/test_cfg.py index ff24c0c..2da085a 100644 --- a/tests/unit/test_cfg.py +++ b/tests/unit/test_cfg.py @@ -1120,6 +1120,12 @@ class OverridesTestCase(BaseTestCase): self.conf.clear_override('foo', group='blaa') self.assertEquals(self.conf.blaa.foo, None) + def test_group_get_group_option(self): + self.conf.register_group(OptGroup('blaa')) + self.conf.register_opt(StrOpt('foo', default='foo2'), group='blaa') + self.conf([]) + self.assertEquals(self.conf['blaa.foo'], 'foo2') + def test_cli_bool_default(self): self.conf.register_cli_opt(BoolOpt('foo')) self.conf.set_default('foo', True) |