summaryrefslogtreecommitdiff
path: root/swiftclient/utils.py
diff options
context:
space:
mode:
authorClay Gerrard <clay.gerrard@gmail.com>2013-10-09 12:03:50 -0700
committerClay Gerrard <clay.gerrard@gmail.com>2013-10-09 14:31:47 -0700
commitd687060a44763cfe944343bc2c8b2d2d543eb26f (patch)
treecda056285723d35ac14dfd2ed1f6b0b5f5bacdc5 /swiftclient/utils.py
parent0cded7cfed9c2840b8a9538b03ccb2b72065aafc (diff)
downloadpython-swiftclient-d687060a44763cfe944343bc2c8b2d2d543eb26f.tar.gz
Add verbose output to all stat commands
When you stat a container or object with the verbose flag the full path of the reousrce will be displayed with the token similarlly to how an account stat displays the auth url and token. * move some logic out of bin/swift.st_stat to test it * new module swiftclient.commnad_helpers for code you want to test * moved prt_bytes into swiftclient.utils to test it * fixed IndexError with prt_bytes on sizes >= 1024Y Change-Id: Iaaa96e0308b08c554205b0055b8a04de581fefa4
Diffstat (limited to 'swiftclient/utils.py')
-rw-r--r--swiftclient/utils.py30
1 files changed, 30 insertions, 0 deletions
diff --git a/swiftclient/utils.py b/swiftclient/utils.py
index 33d89a5..a038dcc 100644
--- a/swiftclient/utils.py
+++ b/swiftclient/utils.py
@@ -25,3 +25,33 @@ def config_true_value(value):
"""
return value is True or \
(isinstance(value, basestring) and value.lower() in TRUE_VALUES)
+
+
+def prt_bytes(bytes, human_flag):
+ """
+ convert a number > 1024 to printable format, either in 4 char -h format as
+ with ls -lh or return as 12 char right justified string
+ """
+
+ if human_flag:
+ suffix = ''
+ mods = list('KMGTPEZY')
+ temp = float(bytes)
+ if temp > 0:
+ while (temp > 1023):
+ try:
+ suffix = mods.pop(0)
+ except IndexError:
+ break
+ temp /= 1024.0
+ if suffix != '':
+ if temp >= 10:
+ bytes = '%3d%s' % (temp, suffix)
+ else:
+ bytes = '%.1f%s' % (temp, suffix)
+ if suffix == '': # must be < 1024
+ bytes = '%4s' % bytes
+ else:
+ bytes = '%12s' % bytes
+
+ return(bytes)