]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
mgr/mgr_util: add to_pretty_timedelta
authorSage Weil <sage@redhat.com>
Mon, 23 Dec 2019 19:18:53 +0000 (13:18 -0600)
committerSage Weil <sage@redhat.com>
Fri, 24 Jan 2020 14:54:20 +0000 (08:54 -0600)
This mirrors the Ceph C++ implementation.

Signed-off-by: Sage Weil <sage@redhat.com>
src/pybind/mgr/mgr_module.py
src/pybind/mgr/mgr_util.py

index 11e965fbda2a30c04c732233707e10c7d0324078..93940ff0c2101eb484957e3d27c241db9efb7fc5 100644 (file)
@@ -5,6 +5,7 @@ try:
 except ImportError:
     # just for type checking
     pass
+import datetime
 import logging
 import errno
 import json
index 9edffc2e9719e8420a817b9a005ccc7f559b0f8d..2557a01b83dde2851cfda760144dbc9cecdf71fe 100644 (file)
@@ -1,4 +1,5 @@
 import contextlib
+import datetime
 import os
 import socket
 import logging
@@ -305,3 +306,18 @@ def _pairwise(iterable):
     for b in it:
         yield (a, b)
         a = b
+
+def to_pretty_timedelta(n):
+    if n < datetime.timedelta(seconds=120):
+        return str(n.seconds) + 's'
+    if n < datetime.timedelta(minutes=120):
+        return str(n.seconds // 60) + 'm'
+    if n < datetime.timedelta(hours=48):
+        return str(n.seconds // 360) + 'h'
+    if n < datetime.timedelta(days=14):
+        return str(n.days) + 'd'
+    if n < datetime.timedelta(days=7*12):
+        return str(n.days // 7) + 'w'
+    if n < datetime.timedelta(days=365*2):
+        return str(n.days // 30) + 'M'
+    return str(n.days // 365) + 'y'