ipalib.plugable: Always set the parser in bootstrap()

In cases where logging was already configured by the time
API.bootstrap() was called, saving the argument parser was
mistakenly skipped along with the logging configuration.

Always set the argument parser on the API object.

Reviewed-By: Jan Cholasta <jcholast@redhat.com>
This commit is contained in:
Petr Viktorin
2014-03-05 13:59:10 +01:00
parent 6b94f959a4
commit 5ae737e160

View File

@@ -493,6 +493,12 @@ class API(DictProxy):
object.__setattr__(self, 'log_mgr', log_mgr)
log = log_mgr.root_logger
object.__setattr__(self, 'log', log)
# Add the argument parser
if not parser:
parser = self.build_global_parser()
object.__setattr__(self, 'parser', parser)
# If logging has already been configured somewhere else (like in the
# installer), don't add handlers or change levels:
if log_mgr.configure_state != 'default' or self.env.validate_api:
@@ -518,10 +524,6 @@ class API(DictProxy):
level=level,
format=LOGGING_FORMAT_STDERR)])
if not parser:
parser = self.build_global_parser()
object.__setattr__(self, 'parser', parser)
# Add file handler:
if self.env.mode in ('dummy', 'unit_test'):
return # But not if in unit-test mode