Move manifest backfill for V1 tags into the new registry model interface

This commit is contained in:
Joseph Schorr 2018-08-27 15:01:27 -04:00
parent 95b7850c20
commit f297249100
8 changed files with 157 additions and 45 deletions

View file

@ -23,9 +23,9 @@ from data.database import (db, all_models, Role, TeamRole, Visibility, LoginServ
ApprTagKind, ApprBlobPlacementLocation, Repository)
from data import model
from data.queue import WorkQueue
from data.registry_model import registry_model
from app import app, storage as store, tf
from storage.basestorage import StoragePaths
from endpoints.v2.manifest import _generate_and_store_manifest
from image.docker.schema1 import DOCKER_SCHEMA1_CONTENT_TYPES
@ -133,13 +133,15 @@ def __create_subtree(with_storage, repo, structure, creator_username, parent, ta
if not isinstance(last_node_tags, list):
last_node_tags = [last_node_tags]
repo_ref = registry_model.lookup_repository(repo.namespace_user.username, repo.name)
for tag_name in last_node_tags:
new_tag = model.tag.create_or_update_tag(repo.namespace_user.username, repo.name, tag_name,
new_image.docker_image_id)
derived = model.image.find_or_create_derived_storage(new_tag, 'squash', 'local_us')
model.storage.find_or_create_storage_signature(derived, 'gpg2')
_generate_and_store_manifest(repo.namespace_user.username, repo.name, tag_name)
tag = registry_model.get_repo_tag(repo_ref, tag_name)
registry_model.backfill_manifest_for_tag(tag)
tag_map[tag_name] = new_tag
for tag_name in last_node_tags: