Change V1 upload code to use the new blob uploader
This commit is contained in:
parent
ba39737c3a
commit
077c3908e4
3 changed files with 48 additions and 64 deletions
|
@ -1,5 +1,6 @@
|
|||
from app import app, storage as store
|
||||
from data import model
|
||||
from data.database import db_transaction
|
||||
from endpoints.v1.models_interface import DockerRegistryV1DataInterface, Repository
|
||||
from util.morecollections import AttrDict
|
||||
|
||||
|
@ -56,8 +57,8 @@ class PreOCIModel(DockerRegistryV1DataInterface):
|
|||
if repo_image is None or repo_image.storage is None:
|
||||
return
|
||||
|
||||
assert repo_image.storage.content_checksum == content_checksum
|
||||
with model.db_transaction():
|
||||
repo_image.storage.content_checksum = content_checksum
|
||||
repo_image.v1_checksum = checksum
|
||||
repo_image.storage.save()
|
||||
repo_image.save()
|
||||
|
@ -77,9 +78,19 @@ class PreOCIModel(DockerRegistryV1DataInterface):
|
|||
repo_image.storage.save()
|
||||
return repo_image.storage
|
||||
|
||||
def update_image_sizes(self, namespace_name, repo_name, image_id, size, uncompressed_size):
|
||||
model.storage.set_image_storage_metadata(image_id, namespace_name, repo_name, size,
|
||||
uncompressed_size)
|
||||
def update_image_blob(self, namespace_name, repo_name, image_id, blob):
|
||||
# Retrieve the existing image storage record and replace it with that given by the blob.
|
||||
repo_image = model.image.get_repo_image_and_storage(namespace_name, repo_name, image_id)
|
||||
if repo_image is None or repo_image.storage is None or not repo_image.storage.uploading:
|
||||
return False
|
||||
|
||||
with db_transaction():
|
||||
existing_storage = repo_image.storage
|
||||
|
||||
repo_image.storage = blob._db_id
|
||||
repo_image.save()
|
||||
|
||||
existing_storage.delete_instance(recursive=True)
|
||||
|
||||
def get_image_size(self, namespace_name, repo_name, image_id):
|
||||
repo_image = model.image.get_repo_image_and_storage(namespace_name, repo_name, image_id)
|
||||
|
|
Reference in a new issue