summaryrefslogtreecommitdiff
path: root/oslo_policy/policy.py
diff options
context:
space:
mode:
Diffstat (limited to 'oslo_policy/policy.py')
-rw-r--r--oslo_policy/policy.py8
1 files changed, 8 insertions, 0 deletions
diff --git a/oslo_policy/policy.py b/oslo_policy/policy.py
index 6ba1bcd..046bec0 100644
--- a/oslo_policy/policy.py
+++ b/oslo_policy/policy.py
@@ -698,6 +698,11 @@ class Enforcer(object):
DeprecatedRule
"""
+ # Short-circuit the rule deprecation logic if we've already processed
+ # it for this particular rule.
+ if default._deprecated_rule_handled:
+ return
+
deprecated_rule = default.deprecated_rule
deprecated_msg = (
@@ -766,6 +771,8 @@ class Enforcer(object):
or self.suppress_default_change_warnings):
warnings.warn(deprecated_msg)
+ default._deprecated_rule_handled = True
+
def _undefined_check(self, check):
'''Check if a RuleCheck references an undefined rule.'''
if isinstance(check, RuleCheck):
@@ -1180,6 +1187,7 @@ class RuleDefault(object):
self.deprecated_for_removal = deprecated_for_removal
self.deprecated_reason = deprecated_reason
self.deprecated_since = deprecated_since
+ self._deprecated_rule_handled = False
if self.deprecated_rule:
if not isinstance(self.deprecated_rule, DeprecatedRule):