diff --git a/data/model/repository.py b/data/model/repository.py index ea01c63a4..36335f3eb 100644 --- a/data/model/repository.py +++ b/data/model/repository.py @@ -13,7 +13,7 @@ from data.database import ( RepositoryPermission, RepositoryActionCount, Role, RepositoryAuthorizedEmail, DerivedStorageForImage, Label, db_for_update, get_epoch_timestamp, db_random_func, db_concat_func, RepositorySearchScore, RepositoryKind, ApprTag, - ManifestLegacyImage, Manifest) + ManifestLegacyImage, Manifest, ManifestChild) from data.text import prefix_search from util.itertoolrecipes import take @@ -207,6 +207,15 @@ def garbage_collect_repo(repo, is_purge=False): """ logger.debug('Garbage collecting repository %s', repo.id) + # TODO(jschorr): Update GC for the new data model. + if not is_purge: + try: + # Skip any repos with manifest lists in them, for now. + ManifestChild.get(repository=repo) + return True + except ManifestChild.DoesNotExist: + pass + if is_purge: tag.purge_all_tags(repo) images_for_tags_removed = {i.id for i in Image.select().where(Image.repository == repo)}