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