Add method for retrieving a V1-compatible manifest for any manifest or manifest list
This is used to serve older clients that don't support the V2 schema format
This commit is contained in:
parent
d77d383e46
commit
1b3daac3c3
7 changed files with 119 additions and 7 deletions
|
@ -365,6 +365,14 @@ class DockerSchema1Manifest(ManifestInterface):
|
|||
def generate_legacy_layers(self, images_map, lookup_config_fn):
|
||||
return self.rewrite_invalid_image_ids(images_map)
|
||||
|
||||
def get_v1_compatible_manifest(self, namespace_name, repo_name, tag_name, lookup_fn):
|
||||
""" Returns the manifest that is compatible with V1, by virtue of being `amd64` and `linux`.
|
||||
If none, returns None.
|
||||
"""
|
||||
# Note: schema1 *technically* supports non-amd64 architectures, but in practice these were never
|
||||
# used, so to ensure full backwards compatibility, we just always return the schema.
|
||||
return self
|
||||
|
||||
def rewrite_invalid_image_ids(self, images_map):
|
||||
"""
|
||||
Rewrites Docker v1 image IDs and returns a generator of DockerV1Metadata.
|
||||
|
|
Reference in a new issue