From 57dc1e045a919376ee793340e0166aa7e6e5f378 Mon Sep 17 00:00:00 2001 From: jakedt Date: Tue, 18 Feb 2014 20:41:00 -0500 Subject: [PATCH] Try to fix the bad query that makes mysql a sad panda. --- data/model.py | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/data/model.py b/data/model.py index 6a4918c1c..d00ebbdb0 100644 --- a/data/model.py +++ b/data/model.py @@ -1034,20 +1034,21 @@ def garbage_collect_repository(namespace_name, repository_name): image_to_remove.delete_instance() - storage_to_remove = (ImageStorage - .select() - .join(Image, JOIN_LEFT_OUTER) - .group_by(ImageStorage) - .where(ImageStorage.uuid << list(uuids_to_check_for_gc)) - .having(fn.Count(Image.id) == 0)) + if uuids_to_check_for_gc: + storage_to_remove = (ImageStorage + .select() + .join(Image, JOIN_LEFT_OUTER) + .group_by(ImageStorage) + .where(ImageStorage.uuid << list(uuids_to_check_for_gc)) + .having(fn.Count(Image.id) == 0)) - for storage in storage_to_remove: - logger.debug('Garbage collecting image storage: %s', storage.uuid) - storage.delete_instance() - image_path = store.image_path(namespace_name, repository_name, - image_to_remove.docker_image_id, - storage.uuid) - store.remove(image_path) + for storage in storage_to_remove: + logger.debug('Garbage collecting image storage: %s', storage.uuid) + storage.delete_instance() + image_path = store.image_path(namespace_name, repository_name, + image_to_remove.docker_image_id, + storage.uuid) + store.remove(image_path) return len(to_remove)