diff options
author | Jenkins <jenkins@review.openstack.org> | 2013-01-08 13:30:18 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2013-01-08 13:30:18 +0000 |
commit | 803f2b0ed6f11ac108aadf569dae7a0ffcbc2587 (patch) | |
tree | d46d705caebac8ca433a54e9e98130d7fca79da0 | |
parent | ad93e4e30e79cbb4c435068ce5bfa01e6d6b8953 (diff) | |
parent | 525ac47bb934621057904725376108f56f6c57fe (diff) | |
download | oslo-803f2b0ed6f11ac108aadf569dae7a0ffcbc2587.tar.gz oslo-803f2b0ed6f11ac108aadf569dae7a0ffcbc2587.tar.xz oslo-803f2b0ed6f11ac108aadf569dae7a0ffcbc2587.zip |
Merge "Support lookup of value using "group.key""
-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) |