summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZuul <zuul@review.opendev.org>2023-02-13 18:53:56 +0000
committerGerrit Code Review <review@openstack.org>2023-02-13 18:53:56 +0000
commit4655a239877b6a09e51cb2b7b0cba6985b294fe4 (patch)
tree8a4f40357ecc1474834467380b54a73d42ddedc9
parentc8eb9bd0a9e1826a8efd67e71205fb57e7fd155e (diff)
parentda5ecebb3353618542aa84c2078b03f1a9f6ad83 (diff)
downloadpython-cinderclient-4655a239877b6a09e51cb2b7b0cba6985b294fe4.tar.gz
Merge "Add support for collect-timing option"
-rw-r--r--cinderclient/shell.py17
-rw-r--r--releasenotes/notes/collect-timing-ce6d521d40d422fb.yaml6
2 files changed, 23 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,
diff --git a/releasenotes/notes/collect-timing-ce6d521d40d422fb.yaml b/releasenotes/notes/collect-timing-ce6d521d40d422fb.yaml
new file mode 100644
index 0000000..aa22517
--- /dev/null
+++ b/releasenotes/notes/collect-timing-ce6d521d40d422fb.yaml
@@ -0,0 +1,6 @@
+---
+features:
+ - |
+ `Bug #1960337 <https://bugs.launchpad.net/cinder/+bug/1960337>`_: Added
+ support for ``collect-timing`` parameter to see the timings of REST API
+ requests from the client when using Keystone authentication.