summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--openstack/common/cfg.py2
-rw-r--r--tests/unit/test_cfg.py8
2 files changed, 9 insertions, 1 deletions
diff --git a/openstack/common/cfg.py b/openstack/common/cfg.py
index bbef49b..5adbb9a 100644
--- a/openstack/common/cfg.py
+++ b/openstack/common/cfg.py
@@ -1507,7 +1507,7 @@ class ConfigOpts(collections.Mapping):
if ('default' in info or 'override' in info):
continue
- if self._get(opt.name, group) is None:
+ if self._get(opt.dest, group) is None:
raise RequiredOptError(opt.name, group)
def _parse_cli_opts(self, args):
diff --git a/tests/unit/test_cfg.py b/tests/unit/test_cfg.py
index e58f12c..b356fa5 100644
--- a/tests/unit/test_cfg.py
+++ b/tests/unit/test_cfg.py
@@ -1189,6 +1189,14 @@ class RequiredOptsTestCase(BaseTestCase):
self.assertTrue(hasattr(self.conf, 'foo'))
self.assertEquals(self.conf.foo, 'bar')
+ def test_required_cli_opt_with_dash(self):
+ self.conf.register_cli_opt(StrOpt('foo-bar', required=True))
+
+ self.conf(['--foo-bar', 'baz'])
+
+ self.assertTrue(hasattr(self.conf, 'foo_bar'))
+ self.assertEquals(self.conf.foo_bar, 'baz')
+
def test_missing_required_opt(self):
self.conf.register_opt(StrOpt('foo', required=True))
self.assertRaises(RequiredOptError, self.conf, [])