From ccaf537aa6323c5161d3420b653025771db75010 Mon Sep 17 00:00:00 2001 From: Rob Crittenden Date: Fri, 25 Jun 2010 13:37:27 -0400 Subject: Handle errors raised by plugins more gracefully in mod_wsgi. This started as an effort to display a more useful error message in the Apache error log if retrieving the schema failed. I broadened the scope a little to include limiting the output in the Apache error log so errors are easier to find. This adds a new configuration option, startup_traceback. Outside of lite-server.py it is False by default so does not display the traceback that lead to the StandardError being raised. This makes the mod_wsgi error much easier to follow. --- ipalib/plugable.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'ipalib/plugable.py') diff --git a/ipalib/plugable.py b/ipalib/plugable.py index 397004eb..fd5f31a7 100644 --- a/ipalib/plugable.py +++ b/ipalib/plugable.py @@ -536,8 +536,9 @@ class API(DictProxy): 'skipping plugin module %s: %s', fullname, e.reason ) except StandardError, e: - import traceback - self.log.error('could not load plugin module %r\n%s', pyfile, traceback.format_exc()) + if self.env.startup_traceback: + import traceback + self.log.error('could not load plugin module %r\n%s', pyfile, traceback.format_exc()) raise e def finalize(self): -- cgit