Update the ancestry audit to actually check that the ancestors match the ones they should.

This commit is contained in:
Jake Moshenko 2014-05-06 15:13:43 -04:00
parent 724fec1b74
commit ebca0abc82

View file

@ -97,6 +97,16 @@ def resolve_or_create(repo, docker_image_id, new_ancestry):
raise RuntimeError()
def all_ancestors_exist(ancestors):
if not ancestors:
return True
found_count = len(list(Image
.select()
.where(Image.id << ancestors)))
return found_count == len(ancestors)
cant_fix = []
for img in query:
try:
@ -112,7 +122,7 @@ for img in query:
ancestor_dbids = [int(anc_id)
for anc_id in img.ancestors.split('/')[1:-1]]
if len(full_ancestry) != len(ancestor_dbids):
if len(full_ancestry) != len(ancestor_dbids) or not all_ancestors_exist(ancestor_dbids):
logger.error('Image has incomplete ancestry: %s, %s, %s, %s' %
(img.id, img.docker_image_id, full_ancestry,
ancestor_dbids))