Commit 6d50a261 by James Cammarata

Allow full exception tracebacks to be displayed with increased verbosity

parent 614c626e
...@@ -34,6 +34,7 @@ except Exception: ...@@ -34,6 +34,7 @@ except Exception:
import os import os
import sys import sys
import traceback
from ansible.errors import AnsibleError, AnsibleOptionsError, AnsibleParserError from ansible.errors import AnsibleError, AnsibleOptionsError, AnsibleParserError
from ansible.utils.display import Display from ansible.utils.display import Display
...@@ -41,9 +42,11 @@ from ansible.utils.display import Display ...@@ -41,9 +42,11 @@ from ansible.utils.display import Display
######################################## ########################################
### OUTPUT OF LAST RESORT ### ### OUTPUT OF LAST RESORT ###
class LastResort(object): class LastResort(object):
def error(self, msg): def display(self, msg):
print(msg, file=sys.stderr) print(msg, file=sys.stderr)
error = display
######################################## ########################################
if __name__ == '__main__': if __name__ == '__main__':
...@@ -96,5 +99,10 @@ if __name__ == '__main__': ...@@ -96,5 +99,10 @@ if __name__ == '__main__':
display.error("User interrupted execution") display.error("User interrupted execution")
sys.exit(99) sys.exit(99)
except Exception as e: except Exception as e:
have_cli_options = cli is not None and cli.options is not None
display.error("Unexpected Exception: %s" % str(e)) display.error("Unexpected Exception: %s" % str(e))
if not have_cli_options or have_cli_options and cli.options.verbosity > 2:
display.display("the full traceback was:\n\n%s" % traceback.format_exc())
else:
display.display("to see the full traceback, use -vvv")
sys.exit(250) sys.exit(250)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment