diff --git a/oslo_config/generator.py b/oslo_config/generator.py index a081d1b3..4964ca95 100644 --- a/oslo_config/generator.py +++ b/oslo_config/generator.py @@ -748,7 +748,13 @@ def main(args=None): logging.basicConfig(level=logging.WARN) conf = cfg.ConfigOpts() register_cli_opts(conf) - conf(args, version=version) + try: + conf(args, version=version) + except cfg.RequiredOptError: + conf.print_help() + if not sys.argv[1:]: + raise SystemExit + raise generate(conf) diff --git a/oslo_config/tests/test_generator.py b/oslo_config/tests/test_generator.py index 015521e1..4c92eb50 100644 --- a/oslo_config/tests/test_generator.py +++ b/oslo_config/tests/test_generator.py @@ -1581,10 +1581,10 @@ class GeneratorRaiseErrorTestCase(base.BaseTestCase): with mock.patch('pkg_resources.iter_entry_points', fake_eps): self.assertRaises(FakeException, generator.generate, self.conf) - def test_generator_call_with_no_arguments_raises_error(self): + def test_generator_call_with_no_arguments_raises_system_exit(self): testargs = ['oslo-config-generator'] with mock.patch('sys.argv', testargs): - self.assertRaises(cfg.RequiredOptError, generator.main, []) + self.assertRaises(SystemExit, generator.main, []) class ChangeDefaultsTestCase(base.BaseTestCase):