Merge pull request #1678 from coreos-inc/delete-repo-fix
Have repo deletion not lock all the things
This commit is contained in:
commit
df64caf133
2 changed files with 36 additions and 5 deletions
|
@ -1654,14 +1654,17 @@ class log_queries(object):
|
|||
|
||||
|
||||
class check_transitive_deletes(log_queries):
|
||||
def __init__(self):
|
||||
def __init__(self, allowed_query_check=None):
|
||||
super(check_transitive_deletes, self).__init__(query_filter=r'^DELETE.+IN \(SELECT.+$')
|
||||
self.allowed_query_check = allowed_query_check
|
||||
|
||||
def __exit__(self, exc_type, exc_val, exc_tb):
|
||||
super(check_transitive_deletes, self).__exit__(exc_type, exc_val, exc_tb)
|
||||
queries = self.get_queries()
|
||||
if queries:
|
||||
raise Exception('Detected transitive deletion in queries: %s' % queries)
|
||||
if queries and self.allowed_query_check:
|
||||
for query in queries:
|
||||
if query.find(self.allowed_query_check) < 0:
|
||||
raise Exception('Detected transitive deletion in queries: %s' % queries)
|
||||
|
||||
|
||||
class TestDeleteRepository(ApiTestCase):
|
||||
|
@ -1747,7 +1750,7 @@ class TestDeleteRepository(ApiTestCase):
|
|||
date=datetime.datetime.now() - datetime.timedelta(days=5), count=6)
|
||||
|
||||
# Delete the repository.
|
||||
with check_transitive_deletes():
|
||||
with check_transitive_deletes(allowed_query_check='todelete'):
|
||||
self.deleteResponse(Repository, params=dict(repository=self.COMPLEX_REPO))
|
||||
|
||||
# Verify the repo was deleted.
|
||||
|
|
Reference in a new issue