Clean up server-side images.

This commit is contained in:
Ian Gulliver
2016-04-02 12:10:43 -07:00
parent 300e927337
commit ddc2245e24
2 changed files with 24 additions and 0 deletions

View File

@@ -21,6 +21,12 @@ parser.add_argument(
dest='image_dir',
action='store',
required=True)
parser.add_argument(
'--max-images',
dest='max_images',
action='store',
type=int,
default=0)
parser.add_argument(
'--old-manifest',
dest='old_manifest',
@@ -76,10 +82,21 @@ class ManifestBuilder(object):
ret['images'].sort(key=lambda x: x['timestamp'], reverse=True)
return ret
def DeleteOldImages(self, manifest, max_images):
if not max_images:
return
for image in manifest['images'][max_images:]:
filename = '%d.iso' % image['timestamp']
print('Deleting old image:', filename, file=sys.stderr)
path = os.path.join(self._image_dir, filename)
os.unlink(path)
manifest['images'] = manifest['images'][:max_images]
def main():
builder = ManifestBuilder(FLAGS.image_dir, FLAGS.old_manifest)
manifest = builder.BuildManifest()
builder.DeleteOldImages(manifest, FLAGS.max_images)
json.dump(manifest, sys.stdout, sort_keys=True, indent=4)
sys.stdout.write('\n')