summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPete Zaitcev <zaitcev@kotori.zaitcev.us>2015-02-18 19:38:05 -0700
committerPete Zaitcev <zaitcev@kotori.zaitcev.us>2015-02-18 19:46:41 -0700
commitfec5d068a0056f5d9ec60e5fd3bbfad9b9f13b86 (patch)
treec5e5ccaf10b40fbb5d37fb9cb6703502e0309164
parent8aff0bda9c35ab96146f4f419803e62710ab5618 (diff)
downloadpython-swiftclient-fec5d068a0056f5d9ec60e5fd3bbfad9b9f13b86.tar.gz
Fix crash with -l, -d /, and pseudo folders
Using -l, -d /, or a pseduo folder by itself works fine, but if you combine all of them, this happens: [zaitcev@guren s]$ swift list -d / testcont amazon_lili.jpg pseudodir/ rin_shibuya_pixiv.jpg swift-c134855-5a.diff [zaitcev@guren s]$ swift list -d / -l testcont 151954 2014-06-20 17:13:52 amazon_lili.jpg Traceback (most recent call last): File "/q/zaitcev/hail/python-swiftclient-tip/bin/swift", line 24, in <module> sys.exit(main()) File "/q/zaitcev/hail/python-swiftclient-tip/swiftclient/shell.py", line 1301, in main globals()['st_%s' % args[0]](parser, argv[1:], output) File "/q/zaitcev/hail/python-swiftclient-tip/swiftclient/shell.py", line 414, in st_list total_bytes += item_bytes TypeError: unsupported operand type(s) for +=: 'int' and 'NoneType' The patch is a straightforward fix that assigns expected variables. Change-Id: If24dcc2491e8b8982455107d2aca30c0491a398a Closes-Bug: 1399678
-rwxr-xr-xswiftclient/shell.py9
1 files changed, 6 insertions, 3 deletions
diff --git a/swiftclient/shell.py b/swiftclient/shell.py
index ce779b3..439a92f 100755
--- a/swiftclient/shell.py
+++ b/swiftclient/shell.py
@@ -410,9 +410,8 @@ def st_list(parser, args, output_manager):
output_manager.print_msg(
item.get('name', item.get('subdir')))
else:
- item_bytes = item.get('bytes')
- total_bytes += item_bytes
if not container: # listing containers
+ item_bytes = item.get('bytes')
byte_str = prt_bytes(item_bytes, options.human)
count = item.get('count')
total_count += count
@@ -431,19 +430,23 @@ def st_list(parser, args, output_manager):
else: # list container contents
subdir = item.get('subdir')
if subdir is None:
+ item_bytes = item.get('bytes')
byte_str = prt_bytes(
item_bytes, options.human)
date, xtime = item.get(
'last_modified').split('T')
xtime = xtime.split('.')[0]
else:
- byte_str = prt_bytes(0, options.human)
+ item_bytes = 0
+ byte_str = prt_bytes(
+ item_bytes, options.human)
date = xtime = ''
item_name = subdir
if not options.totals:
output_manager.print_msg(
"%s %10s %8s %s", byte_str, date,
xtime, item_name)
+ total_bytes += item_bytes
# report totals
if options.long or options.human: