Disallow access in the new registry model to hidden tags
This was causing problems with certain build cache pulls
This commit is contained in:
parent
c67da0c814
commit
70e233ab5c
3 changed files with 30 additions and 3 deletions
|
@ -13,7 +13,8 @@ from data.database import (Image, RepositoryTag, ImageStorage, Repository, Manif
|
|||
from data.model.repository import create_repository
|
||||
from data.model.tag import (list_active_repo_tags, create_or_update_tag, delete_tag,
|
||||
get_matching_tags, _tag_alive, get_matching_tags_for_images,
|
||||
change_tag_expiration, get_active_tag, store_tag_manifest_for_testing)
|
||||
change_tag_expiration, get_active_tag, store_tag_manifest_for_testing,
|
||||
get_most_recent_tag, get_active_tag_for_repo)
|
||||
from data.model.image import find_create_or_link_image
|
||||
from image.docker.schema1 import DockerSchema1ManifestBuilder
|
||||
from util.timedeltastring import convert_to_timedelta
|
||||
|
@ -264,3 +265,24 @@ def test_store_tag_manifest(get_storages, initialized_db):
|
|||
assert blob_rows == {s.id for s in storages}
|
||||
|
||||
assert ManifestLegacyImage.get(manifest=mapping_row.manifest).image == tag_manifest.tag.image
|
||||
|
||||
|
||||
def test_get_most_recent_tag(initialized_db):
|
||||
# Create a hidden tag that is the most recent.
|
||||
repo = model.repository.get_repository('devtable', 'simple')
|
||||
image = model.tag.get_tag_image('devtable', 'simple', 'latest')
|
||||
model.tag.create_temporary_hidden_tag(repo, image, 10000000)
|
||||
|
||||
# Ensure we find a non-hidden tag.
|
||||
found = model.tag.get_most_recent_tag(repo)
|
||||
assert not found.hidden
|
||||
|
||||
|
||||
def test_get_active_tag_for_repo(initialized_db):
|
||||
repo = model.repository.get_repository('devtable', 'simple')
|
||||
image = model.tag.get_tag_image('devtable', 'simple', 'latest')
|
||||
hidden_tag = model.tag.create_temporary_hidden_tag(repo, image, 10000000)
|
||||
|
||||
# Ensure get active tag for repo cannot find it.
|
||||
assert model.tag.get_active_tag_for_repo(repo, hidden_tag) is None
|
||||
assert model.tag.get_active_tag_for_repo(repo, 'latest') is not None
|
||||
|
|
Reference in a new issue