Skip to content

Instantly share code, notes, and snippets.

@shaon
Forked from dkavanagh/update_catalog.py
Created November 19, 2012 08:47
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save shaon/4109624 to your computer and use it in GitHub Desktop.
Save shaon/4109624 to your computer and use it in GitHub Desktop.
Tool for updating eustore catalog based on signature calculated from tarballs
#!/usr/bin/env python
import os
import sys
import urllib2
import json
import hashlib
import zlib
from optparse import OptionParser
def main():
parser = OptionParser(usage='catalog')
options, args = parser.parse_args()
catfile = open(args[0], 'r')
parsed_cat = json.loads(catfile.read())
image_list = parsed_cat['images']
for image in image_list:
# print image['name']
filename = image['url']
filename = filename[filename.rfind("/")+1:]
try:
file = open(filename, 'r')
m = hashlib.md5()
m.update(file.read())
hash = m.hexdigest()
crc = str(zlib.crc32(hash)& 0xffffffffL)
# print crc.rjust(10,"0")
image['name'] = crc.rjust(10,"0")
except (IOError):
print "file not found: "+filename
print json.dumps(parsed_cat, indent=2)
if __name__ == "__main__":
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment