Merge "raise NoSuchMetric when deleting metric already marked deleted"
This commit is contained in:
commit
ae2966684e
@ -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)
|
||||
|
||||
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user