From 9994f0ae61f01ab3f38e9659cbd0f896e82470c1 Mon Sep 17 00:00:00 2001 From: Joseph Schorr Date: Tue, 13 Nov 2018 17:23:45 +0200 Subject: [PATCH] Disable GC for repositories with manifest lists This is a temporary measure so we can roll V2_2 out for internal customer testing without having to worry about GC interacting oddly with it --- data/model/repository.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) 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)}