Skip to content

Generate patch#20

Draft
tz3 wants to merge 70 commits intoopenstack:stable/2026.1from
sapcc:generate-patch
Draft

Generate patch#20
tz3 wants to merge 70 commits intoopenstack:stable/2026.1from
sapcc:generate-patch

Conversation

@tz3
Copy link
Copy Markdown
Contributor

@tz3 tz3 commented Mar 31, 2026

No description provided.

openstackadmin and others added 30 commits March 13, 2025 13:34
Change-Id: I23bf9b0d14b1f7b3ab5982a2f213844e066dcf34
Update the URL to the upper-constraints file to point to the redirect
rule on releases.openstack.org so that anyone working on this branch
will switch to the correct upper-constraints list automatically when
the requirements repository branches.

Until the requirements repository has as stable/2025.1 branch, tests will
continue to use the upper-constraints list on master.

Change-Id: Ib20317d6b7e0f383d14707370f7938ee125207dc
We will address this in a new API version. For now, such a change would
be a breaking one.

No release note is included since these changes haven't been released
yet.

Change-Id: I1e862cb1c5e9c218cea59800ff759a1b094b5906
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
Closes-Bug: #2104185
(cherry picked from commit 05cc3d1)
The presence of a call to 'build_driver_hints' in the method indicates
that filters are permitted for this API, even if they're not currently
documented.

We also rename the variables and fix a docstring to avoid confusion
about what the schemas are intended for.

Change-Id: I17c4e5116ded437a8561b5f721899cdc653c352e
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
(cherry picked from commit 187c1af)
We missed a few in change I1e862cb1c5e9c218cea59800ff759a1b094b5906. We
also missed a few comments in places that we can change later.

Change-Id: I6fc40baf536605d9d347741bcf035958b8490b07
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
(cherry picked from commit 46ba4f4)
With a change to swap sqlalchemy-migrate with alembic [1]
a `db_sync --check` was broken.

This is due to both `upgrades.get_db_version` and
`upgrades.get_current_heads` are actually checking "current" state of
the dabase by calling _get_current_heads[2][3], while obvious intention
was to compare intended state with current state.

With that we're introducing upgrade.get_head_revisions which will fetch
revisions not from the database, but from the environment [4]

As a result `db_sync --check` does compare desired state of the DB with
actual state and exists with corresponsive status again.

[1] https://opendev.org/openstack/keystone/commit/f174b4fa7c4fb010bbacc8c5a5f3625a8fcb41f3
[2] https://opendev.org/openstack/keystone/src/branch/master/keystone/common/sql/upgrades.py#L147
[3] https://opendev.org/openstack/keystone/src/branch/master/keystone/common/sql/upgrades.py#L191
[4] https://alembic.sqlalchemy.org/en/latest/api/runtime.html#alembic.runtime.environment.EnvironmentContext.get_head_revisions

Closes-Bug: #2080542
Change-Id: I854d37e3b4a34a7880f157564466bde61a3f886a
(cherry picked from commit 5125d9f)
Otherwise you get different behavior depending on the user used, if
some have default projects set and others do not.

Change-Id: I7c347af983cb8af9be9d19a010fa0f5bf20ab804
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
(cherry picked from commit b6f955b)
The user id might come from an external provider
in which case we can't make assumptions about its format.
The constraint removed here is breaking the credential APIs for
ldap-based clouds.

Change-Id: I80dfe07ae48fd08de3af9cf5508215e4bbcea13c
(cherry picked from commit 84a30d5)
Signed-off-by: Seunghun Lee <seunghun@stackhpc.com>
We cannot cherry-pick the
https://review.opendev.org/c/openstack/keystone/+/950184 to the stable
branches since it does not work in py39. Since there is also no easy way
how to fix the typing error just add ignore comment to that - it makes
no difference anyway.

Change-Id: I54a74cdc653b05ea681cbccbc1229109df378d6c
Signed-off-by: Artem Goncharov <artem.goncharov@gmail.com>
The implementation of AD nested groups searches works fine when
listing the groups a user belongs to, but fails when listing all
members of a group. This function of listing all members is also
used to check if a user belongs to a group which also fails.
This patch fixes the query for getting all users in a group.

Closes-Bug: #2112477

Depends-on: https://review.opendev.org/c/openstack/devstack/+/960683
Depends-on: https://review.opendev.org/c/openstack/devstack/+/960684

Change-Id: I9707e1a9bc4a334902933d6251888144f8c3bc19
Signed-off-by: Jorge Merlino <jorge.merlino@canonical.com>
(cherry picked from commit f8338be)
Add a policy to enforce authentication with a user in the service
group. This maintains AWS compatibility with the added security
layer.

Closes-Bug: 2119646
Change-Id: Ic84b84247e05f29874e2c5636a033aaedd4de83c
Signed-off-by: Grzegorz Grasza <xek@redhat.com>
Signed-off-by: Jeremy Stanley <fungi@yuggoth.org>
Signed-off-by: Artem Goncharov <artem.goncharov@gmail.com>
(cherry picked from commit 68c1817e1cf1ed284d8420a6e1261749648bccd8)
Change-Id: I628a3a6b524cd099345463e3a6bafe16df450581
Change-Id: Ic236212dfda70a28ea6fece177c05308c12936d1
…instead of a hard-coded admin check (which is definitely not enough)

Change-Id: Ia6071a0ba7c698ee2a425096888f06a12c1e236e
We are using ldap and our max_size is bigger.
Also update tests

Change-Id: I13dc7cf77dbad236492f7504033d0cb41a5656cd
…t to cloud_admin for now

Co-authored-by: Maurice Escher <maurice.escher@sap.com>
Change-Id: I765e4d2b5999f282a3b324312fb2485bc38ad914
configuration option to set tags that get added to newly created projects

Change-Id: Icac8d54506082816bdaeacb73853a20b49735c16
- add policy_id to target
- it was possible to create ec2 creds to different projects
without a policy check
Change-Id: I7b81f7d16987f0e633cd999923bdfe19b4e0d3da
bbobrov and others added 29 commits November 26, 2025 10:18
Change-Id: I59ff8c35baa4d176508ab8f4813d564049458835
This follows the standard naming convention.
They are pretty common and do not require attention of a developer

Change-Id: I1479372579ef745bc0bc2c936f6d234cc775e757
Change-Id: I7ed981a74e9f89327659fb46972e87b79951ae85
Change-Id: Iad1ef565c04d2a2d20a929c4ccd0bf4e7d492afc
Due to architectural reasons,
bug https://bugs.launchpad.net/keystone/+bug/1878438 appeared.
There is no good way to fix it, upstream also cannot get to it.
If someone hits the bug, they get error 500 and keystone crashes.

Fix this hard crash and return an Unauthorized response instead. This
will not break any existing usecases, because things are not working
already. This change should be reverted after upstream fixes the bug.

Change-Id: I0d7802ddcdef7646f43fd57a0cf9ae94686d58e9
The ratelimiting middleware seems to bring more maintainance than use,
which is why it should be disabled until we figure out how to properly
set it up.

Change-Id: If01714058982e64bb58bccf7cc853a22fc0c0ac7
Change-Id: I915e3128ff02bde2f00fdefeafde3f6f46b04c5d
Keystone uses many non-standard names for credentials and we need to
explicitly list them.

Change-Id: Icaaa785f0dd5fb25f3831aafe420b6db731574b1
These messages are too spammy and do not bring any value

Change-Id: I13e4dbcc3333cb8e3154e5a463f2614a47dd70da
Add support of configuration allowing inclusion of partial hash of
invalid password in event notifications to facilitate anyalysis of
failed login attemps.

SecurityImpact
Related-Bug: 2060972
Depends-On: https://review.opendev.org/c/openstack/keystone-specs/+/915482
Closes-Bug: 2060972

Change-Id: I0f34d90660a4a915c9c3f9512dc6d794b8415cd5
Install the python-binary-memcached package into the Keystone image

SALS works only over a binary protocol, and it can only work with
`dogpile.cache.bmemcached` backend, which requires pip package
`python-binary-memcached` to be present.
We also set `nosec` for one use of `random.sample()` to make `bandit` -
which runs as part of `tox -e pep8` - happy. Upstream has that same line
in _without_ `nosec` and I don't get why pep8 tests work for them.

Change-Id: Id26894f2da2877c2455e02a6d3290bccb2b6decd
* tox: do not exclude-regex tests

It doesn't cause failures without the argument.

* Do not clone from remote but use Concourse provided repo

Concourse already has the repo version to be tested cloned under
`source` path.

* Do not run memcached

Executing without memcached doesn't change the number of tests and the
outcome.

* Do not set WATCHER_DISABLED=true

It looks like runtime parameter, not changing tests behavior.

* Make it a normal bash scipt

It doesn't have to be one-line, given the way Concourse runs it.

But working with it as with a regular script is much easier in
development and testing.

* Install tools in `tools` venv

Installing them on Ubunbut 24.04 fails -
https://stackoverflow.com/a/75696359. Whereas an alternative option
could be to use `--break-system-packages` - which is less nicer than
venv IMHO.

* Use latest tox

Upstream tests run with v4+, and our could too.

* Install OS requirements using bindep

The OS requirements packages change over time (some of which are no
longer relevant for e.g. Ubuntu 24.04), and are maintained in
`bindep.txt`. So just install them with `bindep`, similar to how Zuul
does that upstream
- https://opendev.org/zuul/zuul-jobs/src/branch/master/roles/bindep/tasks/packages.yaml.

The disadvantage could be that it could install more than required -
e.g. mysql, postgresql or graphviz, which we don't need for our test
run.

* Add `build-essential` to fix psycopg2, python-ldap

* Install and configure git

Without `safe.directory` it fails to use `git` under `/source`, and
fails to recognize pbr version correspondingly
(https://docs.openstack.org/pbr/latest/user/features.html#version).

* Maintain LDAP tests environment variables

With or without them the number of executed tests and the outcome are
the same. Not sure why so - needs more investigation. But just maintain
them as in the documentation -
https://docs.openstack.org/keystone/latest/contributor/testing-keystone.html#ldap-tests

* Make tox to NOT skip-missing-interpreters

This is to make sure that it won't succeed in case the interpreter could
not be found.
2025.1 sapcc cherry picks and required changes
With Epoxy release the support for the sha512_crypt hash is dropped.
This change adds a check of the password hash when the user authenticates.
If the hash of the users password is deprecated then the password will be
re-hashed using the default hasher and updated in the database.

Change-Id: I4a16401b914c92fd7db9d626cb1642570b36d600
Signed-off-by: Adrian Jarvis <adrian.jarvis@catalystcloud.nz>
Re-hash sha512 hashed passwords with current hashing algorithm
This should not be used in production for the reasons given inline.

Change-Id: Ie40f41f57e316888c2b33f2952edcbac702c1c79
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
Depends-on: https://review.opendev.org/c/openstack/devstack/+/962852
Closes-bug: #2126676
For some reason a bug went unnoticed where in the schema validation we
log the message from the decorators, but logging itself in not imported.

Change-Id: I6ddb69d21d22eafbfcde5c8952a63e39750e6328
Signed-off-by: Artem Goncharov <artem.goncharov@gmail.com>
Disable response body validation by default
When federated users' group membership changes in the IdP and they
reauthenticate, their role assignments should reflect the change
immediately, respecting the IdP's TTL configuration rather than
waiting for the role assignment cache to expire.

This change ensures that federated authentication triggers
appropriate cache invalidation for role assignments when group
membership has changed.

Closes-Bug: #2119031
Change-Id: I79505f3d9e7d9ba46ed6ff40ee0071bdf92b95a0
Signed-off-by: Moutaz Chaara <moutaz.chaara@sap.com>
(cherry picked from commit ad87d82)
Fix role assignment cache for federated users
The _ldap_get_all method had a broken optimization that only
fetched one page of results when hints.limit was set without
filters. This fix removes that optimization and ensures all
LDAP queries use conn.search_s() which properly iterates
through all pages via _paged_search_s.

Also fixes serverctrls None handling in _paged_search_s.

Fixes: #434
@tz3 tz3 marked this pull request as draft March 31, 2026 19:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.