[Bug 2130370] Re: [SRU] keystone-wsgi-public and keystone-wsgi-admin missing from the keystone package

Felipe Reyes 2130370 at bugs.launchpad.net
Sun Nov 2 10:42:44 UTC 2025


The package in resolute is failing to build with the following error, it
shouldn't be related to this change, because (re)building
keystone_28.0.0-0ubuntu1.dsc (the one in the archive) fails in the same
way.

+ PYTHON=python3.14 stestr run --parallel --subunit --exclude-regex keystone.tests.unit.tests.test_core.TestTestCase.test_deprecation_warnings_are_raised_as_exceptions_in_tests
+ subunit2pyunit

=========================
Failures during discovery
=========================
--- import errors ---
Failed to import test module: keystone.tests.unit
Traceback (most recent call last):
  File "/usr/lib/python3.14/unittest/loader.py", line 460, in _find_test_path
    package = self._get_module_from_name(name)
  File "/usr/lib/python3.14/unittest/loader.py", line 367, in _get_module_from_name
    __import__(name)
    ~~~~~~~~~~^^^^^^
  File "/build/reproducible-path/keystone-28.0.0/keystone/tests/unit/__init__.py", line 15, in <module>
    from keystone.tests.unit.core import *  # noqa
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/build/reproducible-path/keystone-28.0.0/keystone/tests/unit/core.py", line 53, in <module>
    from keystone.identity.backends.ldap import common as ks_ldap
  File "/build/reproducible-path/keystone-28.0.0/keystone/identity/__init__.py", line 15, in <module>
    from keystone.identity.core import *  # noqa
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/build/reproducible-path/keystone-28.0.0/keystone/identity/core.py", line 31, in <module>
    from keystone import assignment  # TODO(lbragstad): Decouple this dependency
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/build/reproducible-path/keystone-28.0.0/keystone/assignment/__init__.py", line 15, in <module>
    from keystone.assignment.core import *  # noqa
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/build/reproducible-path/keystone-28.0.0/keystone/assignment/core.py", line 26, in <module>
    from keystone.common.resource_options import options as ro_opt
  File "/build/reproducible-path/keystone-28.0.0/keystone/common/resource_options/__init__.py", line 13, in <module>
    from keystone.common.resource_options.core import *  # noqa
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/build/reproducible-path/keystone-28.0.0/keystone/common/resource_options/core.py", line 15, in <module>
    from keystone.common import validation
  File "/build/reproducible-path/keystone-28.0.0/keystone/common/validation/__init__.py", line 14, in <module>
    from keystone.common.validation import validators
  File "/build/reproducible-path/keystone-28.0.0/keystone/common/validation/validators.py", line 16, in <module>
    import jsonschema
  File "/usr/lib/python3/dist-packages/jsonschema/__init__.py", line 13, in <module>
    from jsonschema._format import FormatChecker
  File "/usr/lib/python3/dist-packages/jsonschema/_format.py", line 11, in <module>
    from jsonschema.exceptions import FormatError
  File "/usr/lib/python3/dist-packages/jsonschema/exceptions.py", line 15, in <module>
    from referencing.exceptions import Unresolvable as _Unresolvable
  File "/usr/lib/python3/dist-packages/referencing/__init__.py", line 5, in <module>
    from referencing._core import Anchor, Registry, Resource, Specification
  File "/usr/lib/python3/dist-packages/referencing/_core.py", line 9, in <module>
    from rpds import HashTrieMap, HashTrieSet, List
  File "/usr/lib/python3/dist-packages/rpds/__init__.py", line 1, in <module>
    from .rpds import *
ModuleNotFoundError: No module named 'rpds.rpds'

-- 
You received this bug notification because you are a member of Ubuntu
OpenStack, which is subscribed to keystone in Ubuntu.
https://bugs.launchpad.net/bugs/2130370

Title:
  [SRU] keystone-wsgi-public and keystone-wsgi-admin missing from the
  keystone package

Status in OpenStack Keystone Charm:
  Invalid
Status in regress-stack:
  Invalid
Status in keystone package in Ubuntu:
  New
Status in keystone source package in Questing:
  New

Bug description:
  [ Impact ]

  Keystone-28.0.0 (2025.2)[0]  dropped the keystone-wsgi-admin and
  keystone-wsgi-public scripts were dropped, the provided Apache2
  configuration[2]

  The debian package provides an Apache2 configuration and it assumes
  the existence of these scripts - https://git.launchpad.net/~ubuntu-
  openstack-dev/ubuntu/+source/keystone/tree/debian/keystone.conf#n4

  The approach to fix this bug is to reintroduce the generation of the
  wsgi scripts by patchin the setup.cfg file.

  The patch also augments the autopkgtest configuring keystone and
  validating the configured service is capable of issuing tokens.

  [0] https://docs.openstack.org/releasenotes/keystone/2025.2.html
  [1] https://opendev.org/openstack/keystone/commit/0d2cc1a3af4dbd2825cef5992056bffe935eaadd
  [2] /etc/apache2/sites-available/keystone.conf

  [ Test Plan ]

  1. Install keystone, mysql and other packages to assist with the testing
  sudo apt-get install keystone mysql-server crudini python3-openstackclient

  2. Create a database for keystone
  sudo mysql -u root << EOF
  CREATE USER 'keystone'@'localhost' IDENTIFIED BY 'changeme';
  CREATE USER 'keystone'@'%' IDENTIFIED BY 'changeme';
  CREATE DATABASE keystone;
  GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost';
  GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%';
  EOF

  3. Configure keystone to use the database
  sudo crudini --set /etc/keystone/keystone.conf database connection "mysql+pymysql://keystone:changeme@localhost/keystone"

  4. Sync up the database
  sudo -u keystone keystone-manage --config-dir /etc/keystone db_sync

  5. Configure Fernet for Keystone
  sudo keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
  sudo keystone-manage credential_setup --keystone-user keystone --keystone-group keystone

  6. Restart apache2
  sudo systemctl restart apache2

  7. Bootstrap keystone
  keystone-manage bootstrap \
      --bootstrap-password changeme \
      --bootstrap-admin-url http://localhost:/v3/ \
      --bootstrap-internal-url http://localhost:/v3/ \
      --bootstrap-public-url http://localhost:/v3/ \
      --bootstrap-region-id RegionOne

  8. Issue a token
  openstack --os-region-name RegionOne \
      --os-auth-url http://localhost:5000/v3 \
      --os-project-domain-name Default \
      --os-user-domain-name Default \
      --os-project-name admin \
      --os-username admin \
      --os-password changeme \
      token issue

  Example of the expected output:
  +------------+------------------------------------------+
  | Field      | Value                                    |
  +------------+------------------------------------------+
  | expires    | 2025-11-02T11:10:36+0000                 |
  | id         | gAAAAABpBy4ckoYzHMVnZFXNjwOXUg0-Us0[...] |
  | project_id | 6497c42b07464c9594ed7dd1610986cd         |
  | user_id    | 0708b8f653a14a158ed503dd1ff0eee8         |
  +------------+------------------------------------------+

  [ Where problems could occur ]

  * The wsgi scripts are generated while the deb package is being built
  and they are installed under /usr/bin , any issues with this patch
  would be at building time when python's setup phase runs.

  * This patch doesn't change existing files, it will create new files
  to be included in the package, hence no behavior change is being
  introduced.

  [ Other Info ]

  * Another possible way to fix this bug would have been to migrate the
  package to uwsgi, although keystone is in main and uwsgi is in
  universe, so a Main Inclusion Request would need to be submitted
  first, in any case this approach wouldn't be suitable for a SRU.

To manage notifications about this bug go to:
https://bugs.launchpad.net/charm-keystone/+bug/2130370/+subscriptions




More information about the Ubuntu-openstack-bugs mailing list