Move verbs endpoint to use new registry data model
This commit is contained in:
parent
bafab2e734
commit
f252b0b16f
14 changed files with 145 additions and 469 deletions
|
@ -254,6 +254,7 @@ def get_storage_by_uuid(storage_uuid):
|
|||
|
||||
def get_layer_path(storage_record):
|
||||
""" Returns the path in the storage engine to the layer data referenced by the storage row. """
|
||||
assert storage_record.cas_path is not None
|
||||
return get_layer_path_for_storage(storage_record.uuid, storage_record.cas_path,
|
||||
storage_record.content_checksum)
|
||||
|
||||
|
@ -280,7 +281,8 @@ def lookup_repo_storages_by_content_checksum(repo, checksums):
|
|||
query_alias = 'q{0}'.format(counter)
|
||||
candidate_subq = (ImageStorage
|
||||
.select(ImageStorage.id, ImageStorage.content_checksum,
|
||||
ImageStorage.image_size, ImageStorage.uuid)
|
||||
ImageStorage.image_size, ImageStorage.uuid, ImageStorage.cas_path,
|
||||
ImageStorage.uncompressed_size)
|
||||
.join(Image)
|
||||
.where(Image.repository == repo, ImageStorage.content_checksum == checksum)
|
||||
.limit(1)
|
||||
|
|
|
@ -28,6 +28,7 @@ class RepositoryReference(datatype('Repository', [])):
|
|||
def _repository_obj(self):
|
||||
return model.repository.lookup_repository(self._db_id)
|
||||
|
||||
@property
|
||||
def namespace_name(self):
|
||||
""" Returns the namespace name of this repository.
|
||||
"""
|
||||
|
@ -183,7 +184,7 @@ class ManifestLayer(namedtuple('ManifestLayer', ['layer_info', 'blob'])):
|
|||
return self.blob.uncompressed_size
|
||||
|
||||
return (self.layer_info.compressed_size or 0) * estimate_multiplier
|
||||
|
||||
|
||||
|
||||
class Blob(datatype('Blob', ['uuid', 'digest', 'compressed_size', 'uncompressed_size',
|
||||
'uploading'])):
|
||||
|
|
|
@ -398,6 +398,8 @@ class PreOCIModel(RegistryDataInterface):
|
|||
return None
|
||||
|
||||
image_storage = storage_map[digest_str]
|
||||
assert image_storage.cas_path is not None
|
||||
|
||||
placements = None
|
||||
if include_placements:
|
||||
placements = list(model.storage.get_storage_locations(image_storage.uuid))
|
||||
|
@ -551,6 +553,8 @@ class PreOCIModel(RegistryDataInterface):
|
|||
except model.BlobDoesNotExist:
|
||||
return None
|
||||
|
||||
assert image_storage.cas_path is not None
|
||||
|
||||
placements = None
|
||||
if include_placements:
|
||||
placements = list(model.storage.get_storage_locations(image_storage.uuid))
|
||||
|
|
|
@ -35,6 +35,8 @@ def test_find_matching_tag(names, expected, pre_oci_model):
|
|||
assert found is None
|
||||
else:
|
||||
assert found.name in expected
|
||||
assert found.repository.namespace_name == 'devtable'
|
||||
assert found.repository.name == 'simple'
|
||||
|
||||
|
||||
@pytest.mark.parametrize('repo_namespace, repo_name, expected', [
|
||||
|
|
Reference in a new issue