fix: user module returns changed=False when group membership already matches#237
Draft
mimihalescu wants to merge 1 commit into
Draft
fix: user module returns changed=False when group membership already matches#237mimihalescu wants to merge 1 commit into
mimihalescu wants to merge 1 commit into
Conversation
|
|
rmocanu-ionos
approved these changes
Jun 12, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



What
The
usermodule's update check now compares the user's actual group membership against thegroupsparameter instead of treating the mere presence of the parameter as a change.Why
Previously, any task that set
groupsreportedchanged=Trueon every run, even when membership was identical. No redundant API calls were made (the sync logic already diffed old vs new IDs), but the reported state broke idempotency. The existing integration test "Testing user update no change" intests/user-management/user-test.ymlassertschanged == falsefor this exact scenario.How
_groups_differhelper resolves the requested group names/IDs and compares them as a set againstum_users_groups_getresults, reusingget_resource_id_should_update_objectchecks the cheap property comparisons first and only performs the two group API calls when no other property changedNotes
The
groupmodule has the same pattern for itsusersparameter and could get the same treatment in a follow-up.Checklist
tests/user-management/user-test.yml(needs credentials)