diff options
| author | Jenkins <jenkins@review.openstack.org> | 2013-05-29 21:12:21 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2013-05-29 21:12:21 +0000 |
| commit | 5a1e8e15d7f79bbdbe135315bf5be3b7ce6563af (patch) | |
| tree | 90fa1fd4e6c926069dc0f8d7a6a1dd80fa517832 | |
| parent | 987a1c5a50b4291f5d6ca21ab41b866f108c58f9 (diff) | |
| parent | da2638b0e04f77e10b54ca4622e863319896aa53 (diff) | |
Merge "Raise AgentBuildNotFound on updating/destroying deleted object"
| -rw-r--r-- | nova/db/sqlalchemy/api.py | 25 | ||||
| -rw-r--r-- | nova/tests/test_db_api.py | 2 |
2 files changed, 8 insertions, 19 deletions
diff --git a/nova/db/sqlalchemy/api.py b/nova/db/sqlalchemy/api.py index a27e8df08..95cbb6efa 100644 --- a/nova/db/sqlalchemy/api.py +++ b/nova/db/sqlalchemy/api.py @@ -4274,28 +4274,19 @@ def agent_build_get_all(context, hypervisor=None): @require_admin_context def agent_build_destroy(context, agent_build_id): - session = get_session() - with session.begin(): - count = model_query(context, models.AgentBuild, - session=session, read_deleted="yes").\ - filter_by(id=agent_build_id).\ - soft_delete() - if count == 0: - raise exception.AgentBuildNotFound(id=agent_build_id) + rows_affected = model_query(context, models.AgentBuild).filter_by( + id=agent_build_id).soft_delete() + if rows_affected == 0: + raise exception.AgentBuildNotFound(id=agent_build_id) @require_admin_context def agent_build_update(context, agent_build_id, values): - session = get_session() - with session.begin(): - agent_build_ref = model_query(context, models.AgentBuild, - session=session, read_deleted="yes").\ + rows_affected = model_query(context, models.AgentBuild).\ filter_by(id=agent_build_id).\ - first() - if not agent_build_ref: - raise exception.AgentBuildNotFound(id=agent_build_id) - agent_build_ref.update(values) - agent_build_ref.save(session=session) + update(values) + if rows_affected == 0: + raise exception.AgentBuildNotFound(id=agent_build_id) #################### diff --git a/nova/tests/test_db_api.py b/nova/tests/test_db_api.py index 19607a2db..8dbfa7010 100644 --- a/nova/tests/test_db_api.py +++ b/nova/tests/test_db_api.py @@ -4083,14 +4083,12 @@ class AgentBuildTestCase(test.TestCase, ModelsObjectComparatorMixin): db.agent_build_update(self.ctxt, agent_build.id, {'os': 'ReactOS'}) self.assertEqual('ReactOS', db.agent_build_get_all(self.ctxt)[0].os) - @test.testtools.skip("bug 1181967") def test_agent_build_destroy_destroyed(self): agent_build = db.agent_build_create(self.ctxt, {}) db.agent_build_destroy(self.ctxt, agent_build.id) self.assertRaises(exception.AgentBuildNotFound, db.agent_build_destroy, self.ctxt, agent_build.id) - @test.testtools.skip("bug 1181967") def test_agent_build_update_destroyed(self): agent_build = db.agent_build_create(self.ctxt, {'os': 'HaikuOS'}) db.agent_build_destroy(self.ctxt, agent_build.id) |
