diff options
author | Jenkins <jenkins@review.openstack.org> | 2013-02-02 15:35:44 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2013-02-02 15:35:44 +0000 |
commit | d4f50bac65a420f9610bf958480f2b5a0462c871 (patch) | |
tree | f15fdd1869c0a3614edf511e73aff2475052a09a | |
parent | 35ba1f88dfdc5fbef7b6208b2b4d8178e3cfa1ac (diff) | |
parent | 393738860481119a2089d0acbb090611f7ba5bb3 (diff) | |
download | nova-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.py | 9 |
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 |