Add support for creating schema 2 manifests and manifest lists via the OCI model

This commit is contained in:
Joseph Schorr 2018-11-12 23:27:49 +02:00
parent e344d4a5cf
commit 30f072aeff
16 changed files with 398 additions and 110 deletions

View file

@ -3,6 +3,7 @@ import json
from flask import abort, request, jsonify, make_response, session
from app import storage
from auth.decorators import process_auth
from auth.permissions import (ReadRepositoryPermission, ModifyRepositoryPermission)
from data.registry_model import registry_model
@ -70,7 +71,7 @@ def put_tag(namespace_name, repo_name, tag):
image_id = json.loads(request.data)
# Check for the image ID first in a builder (for an in-progress push).
builder = lookup_manifest_builder(repository_ref, session.get('manifest_builder'))
builder = lookup_manifest_builder(repository_ref, session.get('manifest_builder'), storage)
if builder is not None:
layer = builder.lookup_layer(image_id)
if layer is not None:
@ -86,7 +87,7 @@ def put_tag(namespace_name, repo_name, tag):
if legacy_image is None:
abort(400)
if registry_model.retarget_tag(repository_ref, tag, legacy_image) is None:
if registry_model.retarget_tag(repository_ref, tag, legacy_image, storage) is None:
abort(400)
return make_response('Created', 200)