Don't log PolicyNotRegistered when check resource type

Silence PolicyNotRegistered exception when checking resource type.
We do not consider PolicyNotRegistered as an error when checking
resource type, so we shouldn't log the exception as well.

Depends-On: I13f1906f53a89586bb51c0b70fa768a9500dfa26
Change-Id: I111ea7ffa43a46d2a6fe360fb0c20d672df5771c
This commit is contained in:
ricolin 2017-12-07 18:44:40 +08:00 committed by Rico Lin
parent e8ab2d5143
commit abc850331c
1 changed files with 7 additions and 2 deletions

View File

@ -47,6 +47,7 @@ class Enforcer(object):
self.default_rule = default_rule
self.enforcer = policy.Enforcer(
CONF, default_rule=default_rule, policy_file=policy_file)
self.log_not_registered = True
# register rules
self.enforcer.register_defaults(policies.list_rules())
@ -78,8 +79,11 @@ class Enforcer(object):
do_raise=do_raise,
exc=exc, action=rule)
except policy.PolicyNotRegistered:
with excutils.save_and_reraise_exception():
LOG.exception(_('Policy not registered.'))
if self.log_not_registered:
with excutils.save_and_reraise_exception():
LOG.exception(_('Policy not registered.'))
else:
raise
else:
return self.enforcer.enforce(rule, target, credentials,
do_raise, exc=exc, *args, **kwargs)
@ -124,6 +128,7 @@ class ResourceEnforcer(Enforcer):
**kwargs):
super(ResourceEnforcer, self).__init__(
default_rule=default_rule, **kwargs)
self.log_not_registered = False
def _enforce(self, context, res_type, scope=None, target=None,
is_registered_policy=False):