print('Marking %s for deletion' % name)
tags_to_delete.add(name)
if ref:
- tags_to_delete.add(ref)
+ # the ref tag may already have been overwritten by a new
+ # build of the same ref, but a different sha1. Delete it only
+ # if it refers to the same image_id as the full tag.
+ names_of_same_image = \
+ [t['name'] for t in quaytags
+ if t['image_id'] == tag['image_id']]
+ if ref in names_of_same_image:
+ if args.verbose:
+ print('Marking %s for deletion' % name)
+ tags_to_delete.add(name)
+ else:
+ if args.verbose:
+ print('Skipping %s: not in %s' %
+ (name, names_of_same_image))
if short_sha1:
if args.verbose:
print('Marking %s for 2nd-pass deletion' % short_sha1)