Add interface function for deleting tags pointing to a manifest
This commit is contained in:
parent
bb01e08d44
commit
8cfb3f4fe8
3 changed files with 35 additions and 3 deletions
|
@ -241,6 +241,21 @@ class PreOCIModel(RegistryDataInterface):
|
|||
deleted_tag = model.tag.delete_tag(repo.namespace_user.username, repo.name, tag_name)
|
||||
return Tag.for_repository_tag(deleted_tag)
|
||||
|
||||
def delete_tags_for_manifest(self, manifest):
|
||||
"""
|
||||
Deletes all tags pointing to the given manifest, making the manifest inaccessible for pulling.
|
||||
Returns the tags deleted, if any. Returns None on error.
|
||||
"""
|
||||
try:
|
||||
tagmanifest = database.TagManifest.get(id=manifest._db_id)
|
||||
except database.TagManifest.DoesNotExist:
|
||||
return None
|
||||
|
||||
namespace_name = tagmanifest.tag.repository.namespace_user.username
|
||||
repo_name = tagmanifest.tag.repository.name
|
||||
tags = model.tag.delete_manifest_by_digest(namespace_name, repo_name, manifest.digest)
|
||||
return [Tag.for_repository_tag(tag) for tag in tags]
|
||||
|
||||
def change_repository_tag_expiration(self, tag, expiration_date):
|
||||
""" Sets the expiration date of the tag under the matching repository to that given. If the
|
||||
expiration date is None, then the tag will not expire. Returns a tuple of the previous
|
||||
|
|
Reference in a new issue