Merge pull request #1523 from coreos-inc/verb-tag-cache-fix

Add a uniqueness hash to derived image storage to break caching over …
This commit is contained in:
josephschorr 2016-06-20 16:38:25 -04:00 committed by GitHub
commit 9e6a264f5f
7 changed files with 119 additions and 40 deletions

View file

@ -172,7 +172,8 @@ def _torrent_repo_verb(repo_image, tag, verb, **kwargs):
# Lookup an *existing* derived storage for the verb. If the verb's image storage doesn't exist,
# we cannot create it here, so we 406.
derived = model.image.find_derived_storage_for_image(repo_image, verb)
derived = model.image.find_derived_storage_for_image(repo_image, verb,
varying_metadata={'tag': tag})
if not derived:
abort(406)
@ -222,7 +223,8 @@ def _repo_verb_signature(namespace, repository, tag, verb, checker=None, **kwarg
(repo_image, _, _) = result
# Lookup the derived image storage for the verb.
derived = model.image.find_derived_storage_for_image(repo_image, verb)
derived = model.image.find_derived_storage_for_image(repo_image, verb,
varying_metadata={'tag': tag})
if derived is None or derived.uploading:
return make_response('', 202)
@ -254,7 +256,8 @@ def _repo_verb(namespace, repository, tag, verb, formatter, sign=False, checker=
# Lookup/create the derived image storage for the verb and repo image.
derived = model.image.find_or_create_derived_storage(repo_image, verb,
storage.preferred_locations[0])
storage.preferred_locations[0],
varying_metadata={'tag': tag})
if not derived.uploading:
logger.debug('Derived %s image %s exists in storage', verb, derived.uuid)