Fix the suppress of policy deprecation warnings

oslo.policy log the deprected policy warning while loading the
policy rule. Flag to suppress the warning was set after load_rule()
was called.

Moving the setting of suppress_deprecation_warnings flag before
load_rule method is called.

Closes-Bug: #1858652

Change-Id: I3f30df8f0fdf76d763ee4770af074a2f4f400ee8
This commit is contained in:
Ghanshyam Mann
2019-12-31 02:48:47 +00:00
committed by Matt Riedemann
parent 65aae518f8
commit b0a0a7e00a
2 changed files with 9 additions and 5 deletions

View File

@@ -49,7 +49,8 @@ def reset():
_ENFORCER = None
def init(policy_file=None, rules=None, default_rule=None, use_conf=True):
def init(policy_file=None, rules=None, default_rule=None, use_conf=True,
suppress_deprecation_warnings=False):
"""Init an Enforcer class.
:param policy_file: Custom policy file to use, if none is specified,
@@ -59,6 +60,8 @@ def init(policy_file=None, rules=None, default_rule=None, use_conf=True):
:param default_rule: Default rule to use, CONF.default_rule will
be used if none is specified.
:param use_conf: Whether to load rules from config file.
:param suppress_deprecation_warnings: Whether to suppress the
deprecation warnings.
"""
global _ENFORCER
@@ -70,6 +73,8 @@ def init(policy_file=None, rules=None, default_rule=None, use_conf=True):
rules=rules,
default_rule=default_rule,
use_conf=use_conf)
if suppress_deprecation_warnings:
_ENFORCER.suppress_deprecation_warnings = True
register_rules(_ENFORCER)
_ENFORCER.load_rules()

View File

@@ -50,11 +50,10 @@ class RealPolicyFixture(fixtures.Fixture):
self._prepare_policy()
CONF.set_override('policy_file', self.policy_file, group='oslo_policy')
nova.policy.reset()
nova.policy.init()
# NOTE(gmann): Logging all the deprecation warning for every unit
# test will overflow the log files and leads to error. Suppress
# the deprecation warning for tests only.
nova.policy._ENFORCER.suppress_deprecation_warnings = True
# test will overflow the log files. Suppress the deprecation warnings
# for tests.
nova.policy.init(suppress_deprecation_warnings=True)
self.addCleanup(nova.policy.reset)
def set_rules(self, rules, overwrite=True):