Merge "raise NoSuchMetric when deleting metric already marked deleted"

This commit is contained in:
Jenkins 2016-05-26 10:05:19 +00:00 committed by Gerrit Code Review
commit ae2966684e
4 changed files with 8 additions and 9 deletions

View File

@ -783,7 +783,8 @@ class SQLAlchemyIndexer(indexer.IndexerDriver):
def delete_metric(self, id):
with self.facade.writer() as session:
if session.query(Metric).filter(
Metric.id == id).update({"status": "delete"}) == 0:
Metric.id == id, Metric.status == 'active').update(
{"status": "delete"}) == 0:
raise indexer.NoSuchMetric(id)

View File

@ -278,6 +278,10 @@ tests:
method: DELETE
status: 204
- name: delete metric again
DELETE: $LAST_URL
status: 404
- name: delete non existent metric
url: /v1/metric/foo
method: DELETE

View File

@ -584,13 +584,7 @@ class TestIndexerDriver(tests_base.TestCase):
rc = self.index.create_resource('generic', r1, user, project,
metrics={'foo': e1, 'bar': e2})
self.index.delete_metric(e1)
# It can be called twice
try:
self.index.delete_metric(e1)
except indexer.NoSuchMetric:
# It's possible that the metric has been expunged by another
# parallel test. No worry.
pass
self.assertRaises(indexer.NoSuchMetric, self.index.delete_metric, e1)
r = self.index.get_resource('generic', r1, with_metrics=True)
self.assertIsNotNone(r.started_at)
self.assertIsNotNone(r.revision_start)

View File

@ -58,7 +58,7 @@ doc =
Jinja2
test =
pifpaf>=0.1.0
gabbi>=0.101.2
gabbi>=1.19.0
coverage>=3.6
fixtures
mock