data.oci_model: sloppily rewrite digest format
We expect digests to be in the form 'sha256:digest'
This commit is contained in:
parent
2c8930c912
commit
9c0cbbf57c
5 changed files with 41 additions and 10 deletions
|
@ -4,9 +4,15 @@ from data.model import db_transaction
|
|||
from data.database import Blob, BlobPlacementLocation, BlobPlacement
|
||||
|
||||
|
||||
def _ensure_sha256_header(digest):
|
||||
if digest.startswith('sha256:'):
|
||||
return digest
|
||||
return 'sha256:' + digest
|
||||
|
||||
|
||||
def get_blob(digest):
|
||||
""" Find a blob by its digest. """
|
||||
return Blob.select().where(Blob.digest == digest).get()
|
||||
return Blob.select().where(Blob.digest == _ensure_sha256_header(digest)).get()
|
||||
|
||||
|
||||
def get_or_create_blob(digest, size, media_type_name, locations):
|
||||
|
@ -15,7 +21,7 @@ def get_or_create_blob(digest, size, media_type_name, locations):
|
|||
try:
|
||||
blob = get_blob(digest)
|
||||
except Blob.DoesNotExist:
|
||||
blob = Blob.create(digest=digest,
|
||||
blob = Blob.create(digest=_ensure_sha256_header(digest),
|
||||
media_type_id=Blob.media_type.get_id(media_type_name),
|
||||
size=size)
|
||||
for location_name in locations:
|
||||
|
@ -35,7 +41,7 @@ def get_blob_locations(digest):
|
|||
.select()
|
||||
.join(BlobPlacement)
|
||||
.join(Blob)
|
||||
.where(Blob.digest == digest)]
|
||||
.where(Blob.digest == _ensure_sha256_header(digest))]
|
||||
|
||||
|
||||
def ensure_blob_locations(*names):
|
||||
|
|
Reference in a new issue