diff options
Diffstat (limited to 'oslo_policy/policy.py')
-rw-r--r-- | oslo_policy/policy.py | 8 |
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): |