summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2013-02-02 15:35:44 +0000
committerGerrit Code Review <review@openstack.org>2013-02-02 15:35:44 +0000
commitd4f50bac65a420f9610bf958480f2b5a0462c871 (patch)
treef15fdd1869c0a3614edf511e73aff2475052a09a
parent35ba1f88dfdc5fbef7b6208b2b4d8178e3cfa1ac (diff)
parent393738860481119a2089d0acbb090611f7ba5bb3 (diff)
downloadnova-d4f50bac65a420f9610bf958480f2b5a0462c871.tar.gz
nova-d4f50bac65a420f9610bf958480f2b5a0462c871.tar.xz
nova-d4f50bac65a420f9610bf958480f2b5a0462c871.zip
Merge "Extend extension_authorizer to enable cleaner code."
-rw-r--r--nova/api/openstack/extensions.py9
1 files changed, 6 insertions, 3 deletions
diff --git a/nova/api/openstack/extensions.py b/nova/api/openstack/extensions.py
index a94065ab0..94ce76ec7 100644
--- a/nova/api/openstack/extensions.py
+++ b/nova/api/openstack/extensions.py
@@ -386,12 +386,15 @@ def load_standard_extensions(ext_mgr, logger, path, package, ext_list=None):
def extension_authorizer(api_name, extension_name):
- def authorize(context, target=None):
+ def authorize(context, target=None, action=None):
if target is None:
target = {'project_id': context.project_id,
'user_id': context.user_id}
- action = '%s_extension:%s' % (api_name, extension_name)
- nova.policy.enforce(context, action, target)
+ if action is None:
+ act = '%s_extension:%s' % (api_name, extension_name)
+ else:
+ act = '%s_extension:%s:%s' % (api_name, extension_name, action)
+ nova.policy.enforce(context, act, target)
return authorize