Simplifying queries around images and placements
Only verbs needs to load placements for multiple images, so we can vastly simplify and optimize most queries by making it two-step, and having the rest of the image loads not worry about placements
This commit is contained in:
parent
0c7c9a7a0a
commit
8146646761
7 changed files with 78 additions and 141 deletions
|
@ -11,10 +11,12 @@ class PreOCIModel(DockerRegistryV1DataInterface):
|
|||
"""
|
||||
|
||||
def placement_locations_and_path_docker_v1(self, namespace_name, repo_name, image_id):
|
||||
repo_image = model.image.get_repo_image_extended(namespace_name, repo_name, image_id)
|
||||
if not repo_image or repo_image.storage is None:
|
||||
image, placements = model.image.get_image_and_placements(namespace_name, repo_name, image_id)
|
||||
if image is None:
|
||||
return None, None
|
||||
return repo_image.storage.locations, model.storage.get_layer_path(repo_image.storage)
|
||||
|
||||
locations = {placement.location.name for placement in placements}
|
||||
return locations, model.storage.get_layer_path(image.storage)
|
||||
|
||||
def docker_v1_metadata(self, namespace_name, repo_name, image_id):
|
||||
repo_image = model.image.get_repo_image(namespace_name, repo_name, image_id)
|
||||
|
|
Reference in a new issue