Remove inner query for ancestors lookup on get_matching_tags

This commit is contained in:
Joseph Schorr 2017-04-28 20:10:54 -04:00
parent 8b2e4d3bcf
commit e583be3914
2 changed files with 16 additions and 16 deletions

View file

@ -17,23 +17,18 @@ from util.canonicaljson import canonicalize
logger = logging.getLogger(__name__)
def get_repository_image_and_deriving(docker_image_id, storage_uuid):
""" Returns all matching images with the given docker image ID and storage uuid, along with any
images which have the image ID as parents.
def get_image_with_storage(docker_image_id, storage_uuid):
""" Returns the image with the given docker image ID and storage uuid or None if none.
"""
try:
image_found = (Image
.select()
.join(ImageStorage)
.where(Image.docker_image_id == docker_image_id,
ImageStorage.uuid == storage_uuid)
.get())
return (Image
.select()
.join(ImageStorage)
.where(Image.docker_image_id == docker_image_id,
ImageStorage.uuid == storage_uuid)
.get())
except Image.DoesNotExist:
return Image.select().where(Image.id < 0) # Empty query
ancestors_pattern = '%s%s/%%' % (image_found.ancestors, image_found.id)
return Image.select().where((Image.ancestors ** ancestors_pattern) |
(Image.id == image_found.id))
return None
def get_parent_images_with_placements(namespace_name, repository_name, image_obj):