summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--nova/compute/manager.py2
-rw-r--r--nova/context.py4
-rw-r--r--nova/tests/test_context.py13
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)