Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
List openstack freezer backups with datetime and size
import subprocess
import datetime
import re
import sys
backups = subprocess.check_output(['swift', 'list', sys.argv[1]]).splitlines()
width = None
total = 0
def size_fmt(bytes):
if bytes > 1024 * 1024 * 1024:
return "{} GiB".format(bytes / 1024 / 1024 / 1024)
elif bytes > 1024 * 1024:
return "{} MiB".format(bytes / 1024 / 1024)
elif bytes > 1024:
return "{} KiB".format(bytes / 1024)
else:
return "{} Bytes".format(bytes)
for backup in backups:
if width is None:
width = len(backup) + 5
if backup.startswith('tar'):
continue
else:
info = subprocess.check_output(['swift', 'stat', 'freezer_deployer_backup', backup])
result = re.search('Content Length: (.*)$', info, re.MULTILINE)
size = int(result.group(1))
result = re.search('^.*_(.*)_.*$', backup)
date = datetime.datetime.fromtimestamp(int(result.group(1)))
print date.strftime('%x %X') + " " + backup.ljust(width) + " " + size_fmt(size)
total += size
print "-" * (20 + width + 1 + len(size_fmt(size)))
print "Total:".ljust(width + 20) + " " + size_fmt(total)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment