diff options
author | Johannes Erdfelt <johannes.erdfelt@rackspace.com> | 2012-02-29 21:52:01 +0000 |
---|---|---|
committer | Johannes Erdfelt <johannes.erdfelt@rackspace.com> | 2012-02-29 22:05:33 +0000 |
commit | ff95c90f51d1d1e70a247cb7e94bb7cb757ac37d (patch) | |
tree | 8e2bedb8f5b7381cae0bfbea7c997ce8054d9cfd | |
parent | 3b241d2b5889f2bc8b9c05f205c4ff848375a508 (diff) | |
download | nova-ff95c90f51d1d1e70a247cb7e94bb7cb757ac37d.tar.gz nova-ff95c90f51d1d1e70a247cb7e94bb7cb757ac37d.tar.xz nova-ff95c90f51d1d1e70a247cb7e94bb7cb757ac37d.zip |
Ensure that context read_deleted is only one of 'no', 'yes' or 'only'
Fixes bug 942690
Change-Id: I1b1867062a8af7b3fb0eb575e6b9570a964cfefa
-rw-r--r-- | nova/compute/manager.py | 2 | ||||
-rw-r--r-- | nova/context.py | 4 | ||||
-rw-r--r-- | nova/tests/test_context.py | 13 |
3 files changed, 18 insertions, 1 deletions
diff --git a/nova/compute/manager.py b/nova/compute/manager.py index a4a18f1f8..5aac65a54 100644 --- a/nova/compute/manager.py +++ b/nova/compute/manager.py @@ -401,7 +401,7 @@ class ComputeManager(manager.SchedulerDependentManager): LOG.info(_("Instance %(instance_uuid)s did not exist in the " "DB, but I will shut it down anyway using a special " "context") % locals()) - ctxt = nova.context.get_admin_context(True) + ctxt = nova.context.get_admin_context('yes') self.terminate_instance(ctxt, instance_uuid) except Exception as ex: LOG.info(_("exception terminating the instance " diff --git a/nova/context.py b/nova/context.py index 58deb1318..8ec4a30ec 100644 --- a/nova/context.py +++ b/nova/context.py @@ -48,6 +48,10 @@ class RequestContext(object): :param overwrite: Set to False to ensure that the greenthread local copy of the index is not overwritten. """ + if read_deleted not in ('no', 'yes', 'only'): + raise ValueError(_("read_deleted can only be one of 'no', " + "'yes' or 'only', not %r") % read_deleted) + self.user_id = user_id self.project_id = project_id self.roles = roles or [] diff --git a/nova/tests/test_context.py b/nova/tests/test_context.py index b2507fa59..7fceb2421 100644 --- a/nova/tests/test_context.py +++ b/nova/tests/test_context.py @@ -31,3 +31,16 @@ class ContextTestCase(test.TestCase): '222', roles=['Admin', 'weasel']) self.assertEquals(ctxt.is_admin, True) + + def test_request_context_read_deleted(self): + ctxt = context.RequestContext('111', + '222', + read_deleted='yes') + self.assertEquals(ctxt.read_deleted, 'yes') + + def test_request_context_read_deleted_invalid(self): + self.assertRaises(ValueError, + context.RequestContext, + '111', + '222', + read_deleted=True) |