← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 2087115] [NEW] New oslo.policy 4.5.0 release breaks config generation for Glance

 

You have been subscribed to a public bug:

## Summary

A new oslo.policy version 4.5.0 was recently released:
https://pypi.org/project/oslo.policy/#history

Generating a configuration template for OpenStack Glance using oslo-
config-generator fails with the new oslo.policy version installed.

## Steps to reproduce


```
$ python3 -m venv .oslo-venv

$ source .oslo-venv/bin/activate

$ pip install glance

$ pip list | grep oslo.policy
oslo.policy               4.5.0

oslo-config-generator --namespace glance
Traceback (most recent call last):
  File "<redacted>/.oslo-venv/bin/oslo-config-generator", line 8, in <module>
    sys.exit(main())
             ^^^^^^
  File "<redacted>/.oslo-venv/lib/python3.12/site-packages/oslo_config/generator.py", line 831, in main
    generate(conf)
  File "<redacted>/.oslo-venv/lib/python3.12/site-packages/oslo_config/generator.py", line 792, in generate
    groups = _get_groups(_list_opts(conf.namespace))
                         ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<redacted>/.oslo-venv/lib/python3.12/site-packages/oslo_config/generator.py", line 519, in _list_opts
    loaders = _get_raw_opts_loaders(namespaces)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<redacted>/.oslo-venv/lib/python3.12/site-packages/oslo_config/generator.py", line 459, in _get_raw_opts_loaders
    mgr = stevedore.named.NamedExtensionManager(
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<redacted>/.oslo-venv/lib/python3.12/site-packages/stevedore/named.py", line 78, in __init__
    extensions = self._load_plugins(invoke_on_load,
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<redacted>/.oslo-venv/lib/python3.12/site-packages/stevedore/extension.py", line 218, in _load_plugins
    self._on_load_failure_callback(self, ep, err)
  File "<redacted>/.oslo-venv/lib/python3.12/site-packages/stevedore/extension.py", line 206, in _load_plugins
    ext = self._load_one_plugin(ep,
          ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<redacted>/.oslo-venv/lib/python3.12/site-packages/stevedore/named.py", line 156, in _load_one_plugin
    return super(NamedExtensionManager, self)._load_one_plugin(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<redacted>/.oslo-venv/lib/python3.12/site-packages/stevedore/extension.py", line 240, in _load_one_plugin
    plugin = ep.load()
             ^^^^^^^^^
  File "/usr/lib/python3.12/importlib/metadata/__init__.py", line 205, in load
    module = import_module(match.group('module'))
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/importlib/__init__.py", line 90, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1387, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 935, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 995, in exec_module
  File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
  File "<redacted>/.oslo-venv/lib/python3.12/site-packages/glance/opts.py", line 28, in <module>
    import glance.api.middleware.context
  File "<redacted>/.oslo-venv/lib/python3.12/site-packages/glance/api/middleware/context.py", line 21, in <module>
    from glance.api import policy
  File "<redacted>/.oslo-venv/lib/python3.12/site-packages/glance/api/policy.py", line 27, in <module>
    from glance.domain import proxy
  File "<redacted>/.oslo-venv/lib/python3.12/site-packages/glance/domain/__init__.py", line 32, in <module>
    CONF.import_opt('task_executor', 'glance.common.config', group='task')
  File "<redacted>/.oslo-venv/lib/python3.12/site-packages/oslo_config/cfg.py", line 2643, in import_opt
    __import__(module_str)
  File "<redacted>/.oslo-venv/lib/python3.12/site-packages/glance/common/config.py", line 643, in <module>
    policy.Enforcer(CONF)
  File "<redacted>/.oslo-venv/lib/python3.12/site-packages/oslo_policy/policy.py", line 542, in __init__
    self.policy_file = policy_file or pick_default_policy_file(
                                      ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<redacted>/.oslo-venv/lib/python3.12/site-packages/oslo_policy/policy.py", line 377, in pick_default_policy_file
    if conf.find_file(conf.oslo_policy.policy_file):
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<redacted>/.oslo-venv/lib/python3.12/site-packages/oslo_config/cfg.py", line 2782, in find_file
    raise NotInitializedError()
oslo_config.cfg.NotInitializedError: call expression on parser has not been invoked
```

It works with the previous oslo.policy release:

```
$ pip install oslo.policy==4.4.0

$ oslo-config-generator --namespace glance --format json | jq
{
  "deprecated_options": {},
  "generator_options": {
    "config_dir": [],
    "config_file": [],
    "config_source": [],
    "format_": "json",
    "minimal": false,
    "namespace": [
      "glance"
    ],
    "output_file": null,
    "shell_completion": null,
    "summarize": false,
    "wrap_width": 70
  },
  "options": {
    "DEFAULT": {
...
```

** Affects: glance
     Importance: Undecided
         Status: New

-- 
New oslo.policy 4.5.0 release breaks config generation for Glance
https://bugs.launchpad.net/bugs/2087115
You received this bug notification because you are a member of Yahoo! Engineering Team, which is subscribed to Glance.