Reduce database bandwidth by tracking gc candidate images.

This commit is contained in:
Jake Moshenko 2016-08-26 14:48:39 -04:00
parent 0815f6b6c4
commit 584a5a7ddd
5 changed files with 161 additions and 107 deletions

View file

@ -144,18 +144,17 @@ class TestGarbageCollection(unittest.TestCase):
return repo
def gcNow(self, repository):
model.repository.garbage_collect_repository(repository.namespace_user.username, repository.name)
model.repository.garbage_collect_repo(repository)
def deleteTag(self, repository, tag, perform_gc=True):
model.tag.delete_tag(repository.namespace_user.username, repository.name, tag)
if perform_gc:
model.repository.garbage_collect_repository(repository.namespace_user.username,
repository.name)
model.repository.garbage_collect_repo(repository)
def moveTag(self, repository, tag, docker_image_id):
model.tag.create_or_update_tag(repository.namespace_user.username, repository.name, tag,
docker_image_id)
model.repository.garbage_collect_repository(repository.namespace_user.username, repository.name)
model.repository.garbage_collect_repo(repository)
def assertNotDeleted(self, repository, *args):
for docker_image_id in args:
@ -212,7 +211,7 @@ class TestGarbageCollection(unittest.TestCase):
self.assertEquals(REPO, repository.name)
# GC the repository.
model.repository.garbage_collect_repository(repository.namespace_user.username, repository.name)
model.repository.garbage_collect_repo(repository)
# There should now be no repositories with garbage.
self.assertIsNone(model.repository.find_repository_with_garbage(0))