summaryrefslogtreecommitdiff
path: root/cinderclient
diff options
context:
space:
mode:
Diffstat (limited to 'cinderclient')
-rw-r--r--cinderclient/shell.py17
1 files changed, 17 insertions, 0 deletions
diff --git a/cinderclient/shell.py b/cinderclient/shell.py
index dc9190a..ad7876c 100644
--- a/cinderclient/shell.py
+++ b/cinderclient/shell.py
@@ -705,6 +705,12 @@ class OpenStackCinderShell(object):
if not auth_session:
auth_session = self._get_keystone_session()
+ # collect_timing is a keystone session option
+ if (not isinstance(auth_session, session.Session)
+ and getattr(args, 'collect_timing', False) is True):
+ raise exc.AuthorizationFailure("Provided auth plugin doesn't "
+ "support collect_timing option")
+
insecure = self.options.insecure
client_args = dict(
@@ -805,6 +811,17 @@ class OpenStackCinderShell(object):
print("To display trace use next command:\n"
"osprofiler trace show --html %s " % trace_id)
+ if getattr(args, 'collect_timing', False) is True:
+ self._print_timings(auth_session)
+
+ def _print_timings(self, session):
+ timings = session.get_timings()
+ utils.print_list(
+ timings,
+ fields=('method', 'url', 'seconds'),
+ sortby_index=None,
+ formatters={'seconds': lambda r: r.elapsed.total_seconds()})
+
def _discover_client(self,
current_client,
os_api_version,