Print traceback to stderr if --debug is set
This change allows easier debugging of client related issues, with a full traceback printed out when an uncaught error occurs in the client. Previously, it could be hard to find the portion of code raising an exception, with just the message from the exception being displayed. Previous behaviour (with a rather artificial client error being raised): $ glance --debug image-list Contrived exception Behaviour after this patch: $ glance --debug image-list Traceback (most recent call last): File "/opt/stack/python-glanceclient/glanceclient/shell.py", line 590, in main args.func(client, args) File "/opt/stack/python-glanceclient/glanceclient/v1/shell.py", line 77, in do_image_list raise(Exception('Contrived exception')) Exception: Contrived exception Contrived exception Change-Id: Id7b76b707e5fc16a0402dcb104ec40787e0ffbe2
This commit is contained in:
@@ -26,6 +26,7 @@ import logging
|
||||
import os
|
||||
from os.path import expanduser
|
||||
import sys
|
||||
import traceback
|
||||
|
||||
import six.moves.urllib.parse as urlparse
|
||||
|
||||
@@ -589,6 +590,12 @@ class OpenStackImagesShell(object):
|
||||
args.func(client, args)
|
||||
except exc.Unauthorized:
|
||||
raise exc.CommandError("Invalid OpenStack Identity credentials.")
|
||||
except Exception:
|
||||
#NOTE(kragniz) Print any exceptions raised to stderr if the --debug
|
||||
# flag is set
|
||||
if args.debug:
|
||||
traceback.print_exc()
|
||||
raise
|
||||
finally:
|
||||
if profile:
|
||||
trace_id = osprofiler_profiler.get().get_base_id()
|
||||
|
Reference in New Issue
Block a user