Unify the get_layers calls across all implements of manifest schemas to ensure we have a common type returned
Also renames some methods to make it more clear what kind of information they return
This commit is contained in:
parent
180d8847db
commit
4e1ff90cb2
17 changed files with 210 additions and 124 deletions
|
@ -21,6 +21,7 @@ from data.registry_model.registry_pre_oci_model import PreOCIModel
|
|||
from data.registry_model.registry_oci_model import OCIModel
|
||||
from data.registry_model.datatypes import RepositoryReference
|
||||
from data.registry_model.blobuploader import upload_blob, BlobUploadSettings
|
||||
from image.docker.types import ManifestImageLayer
|
||||
from image.docker.schema1 import DockerSchema1ManifestBuilder
|
||||
from image.docker.schema2.manifest import DockerSchema2ManifestBuilder
|
||||
|
||||
|
@ -474,19 +475,14 @@ def test_layers_and_blobs(repo_namespace, repo_name, registry_model):
|
|||
parsed = manifest.get_parsed_manifest()
|
||||
assert parsed
|
||||
|
||||
layers = registry_model.list_parsed_manifest_layers(repository_ref, parsed)
|
||||
layers = registry_model.list_parsed_manifest_layers(repository_ref, parsed, storage)
|
||||
assert layers
|
||||
|
||||
layers = registry_model.list_parsed_manifest_layers(repository_ref, parsed,
|
||||
layers = registry_model.list_parsed_manifest_layers(repository_ref, parsed, storage,
|
||||
include_placements=True)
|
||||
assert layers
|
||||
|
||||
parsed_layers = list(manifest.get_parsed_manifest().layers)
|
||||
assert len(layers) == len(parsed_layers)
|
||||
|
||||
for index, manifest_layer in enumerate(layers):
|
||||
assert manifest_layer.layer_info == parsed_layers[index]
|
||||
assert manifest_layer.blob.digest == str(parsed_layers[index].digest)
|
||||
assert manifest_layer.blob.storage_path
|
||||
assert manifest_layer.blob.placements
|
||||
|
||||
|
@ -494,6 +490,7 @@ def test_layers_and_blobs(repo_namespace, repo_name, registry_model):
|
|||
assert repo_blob.digest == manifest_layer.blob.digest
|
||||
|
||||
assert manifest_layer.estimated_size(1) is not None
|
||||
assert isinstance(manifest_layer.layer_info, ManifestImageLayer)
|
||||
|
||||
blobs = registry_model.get_manifest_local_blobs(manifest, include_placements=True)
|
||||
assert {b.digest for b in blobs} == set(parsed.local_blob_digests)
|
||||
|
@ -532,7 +529,8 @@ def test_manifest_remote_layers(oci_model):
|
|||
assert created_manifest
|
||||
|
||||
layers = oci_model.list_parsed_manifest_layers(repository_ref,
|
||||
created_manifest.get_parsed_manifest())
|
||||
created_manifest.get_parsed_manifest(),
|
||||
storage)
|
||||
assert len(layers) == 1
|
||||
assert layers[0].layer_info.is_remote
|
||||
assert layers[0].layer_info.urls == ['http://hello/world']
|
||||
|
|
Reference in a new issue