Fix bug in deletion of repos with OCI-style linked tags
MySQL does not allow rows in the same table referencing other rows to be deleted in a single statement. We now do a two-pass deletion, and add a test to make sure. Fixes https://jira.prod.coreos.systems/browse/QS-18
This commit is contained in:
parent
6b217b497a
commit
9f804de23d
2 changed files with 14 additions and 2 deletions
|
@ -26,7 +26,7 @@ from endpoints.webhooks import webhooks
|
|||
from app import app, config_provider, all_queues, dockerfile_build_queue, notification_queue
|
||||
from buildtrigger.basehandler import BuildTriggerHandler
|
||||
from initdb import setup_database_for_testing, finished_database_for_testing
|
||||
from data import database, model
|
||||
from data import database, model, oci_model
|
||||
from data.database import RepositoryActionCount, Repository as RepositoryTable
|
||||
from test.helpers import assert_action_logged
|
||||
from util.secscan.fake import fake_security_scanner
|
||||
|
@ -2148,6 +2148,12 @@ class TestDeleteRepository(ApiTestCase):
|
|||
# Add some data for the repository, in addition to is already existing images and tags.
|
||||
repository = model.repository.get_repository(ADMIN_ACCESS_USER, 'complex')
|
||||
|
||||
# Add some new-style tags and linked tags.
|
||||
base_tag = oci_model.tag.create_or_update_tag(repository, 'somebasetag')
|
||||
base_tag2 = oci_model.tag.create_or_update_tag(repository, 'somebasetag2')
|
||||
oci_model.tag.create_or_update_tag(repository, 'somelinkedtag', linked_tag=base_tag)
|
||||
oci_model.tag.create_or_update_tag(repository, 'somelinkedtag2', linked_tag=base_tag2)
|
||||
|
||||
# Create some access tokens.
|
||||
access_token = model.token.create_access_token(repository, 'read')
|
||||
model.token.create_access_token(repository, 'write')
|
||||
|
|
Reference in a new issue