Skip to content

Commit 45bbf53

Browse files
Zuulopenstack-gerrit
authored andcommitted
Merge "Quota deletion bug fix"
2 parents 4d71b98 + 5fca23f commit 45bbf53

File tree

2 files changed

+15
-3
lines changed

2 files changed

+15
-3
lines changed

magnum/db/sqlalchemy/api.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -635,11 +635,12 @@ def update_quota(self, project_id, values):
635635
def delete_quota(self, project_id, resource):
636636
session = get_session()
637637
with session.begin():
638-
query = model_query(models.Quota, session=session)
638+
query = model_query(models.Quota, session=session) \
639+
.filter_by(project_id=project_id) \
640+
.filter_by(resource=resource)
639641

640642
try:
641-
query.filter_by(project_id=project_id).filter_by(
642-
resource=resource).one()
643+
query.one()
643644
except NoResultFound:
644645
msg = (_('project_id %(project_id)s resource %(resource)s.') %
645646
{'project_id': project_id, 'resource': resource})

magnum/tests/unit/db/test_quota.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,15 +137,26 @@ def test_delete_quota(self):
137137
q = utils.create_test_quotas(project_id='123',
138138
resource='test-res',
139139
hard_limit=5)
140+
utils.create_test_quotas(project_id='123',
141+
resource='another-res',
142+
hard_limit=5)
143+
utils.create_test_quotas(project_id='456',
144+
resource='test-res',
145+
hard_limit=5)
140146
res = self.dbapi.get_quota_by_project_id_resource('123', 'test-res')
141147
self.assertEqual(q.hard_limit, res.hard_limit)
142148
self.assertEqual(q.project_id, res.project_id)
143149
self.assertEqual(q.resource, res.resource)
150+
res = self.dbapi.get_quota_list(self.context)
151+
self.assertEqual(3, len(res))
144152
self.dbapi.delete_quota(q.project_id, q.resource)
145153
self.assertRaises(exception.QuotaNotFound,
146154
self.dbapi.get_quota_by_project_id_resource,
147155
project_id='123',
148156
resource='bad-res')
157+
# Check that we didn't delete any other quotas
158+
res = self.dbapi.get_quota_list(self.context)
159+
self.assertEqual(2, len(res))
149160

150161
def test_delete_quota_that_does_not_exist(self):
151162
# Make sure that quota does not exist

0 commit comments

Comments
 (0)