Fix that deleted artifacts were shown in list output

Change-Id: Ifd2e1397b895d6fc0a8a0013fc08fc229f59b2e7
Closes-Bug: #1620086
This commit is contained in:
Mike Fedosin 2016-09-04 21:01:48 +03:00
parent 76cdd1a6f7
commit dd9047ce14
3 changed files with 6 additions and 3 deletions

View File

@ -331,6 +331,9 @@ def _do_artifacts_query(context, session):
options(joinedload(models.Artifact.tags)).
options(joinedload(models.Artifact.blobs)))
# Don't show deleted artifacts
query = query.filter(models.Artifact.status != 'deleted')
# If admin, return everything.
if context.is_admin:
return query

View File

@ -460,9 +460,6 @@ class BaseArtifact(base.VersionedObject):
:return: Artifact definition
"""
af = cls.db_api.get(context, artifact_id)
if af['status'] == cls.STATUS.DELETED:
raise exception.ArtifactNotFound(
type_name=cls.get_type_name(), id=artifact_id)
return cls._init_artifact(context, af)
@classmethod

View File

@ -1352,6 +1352,9 @@ class TestArtifact(functional.FunctionalTest):
self.patch(url=url, data=self.make_active)
self.patch(url=url, data=self.make_deactivated)
self.delete(url=url, status=204)
self.get(url=url, status=404)
self.assertEqual(0, len(self.get(
url='/sample_artifact')['sample_artifact']))
def test_artifact_deactivate(self):
# test artifact deactivate for non-active artifact