cleaning_packager_groups: Remove user from the initial group as well

Signed-off-by: Lenka Segura <lsegura@redhat.com>
This commit is contained in:
Lenka Segura 2025-04-03 11:28:28 +02:00
parent e4d31a1891
commit f5c321a5ed
2 changed files with 15 additions and 7 deletions

View file

@ -132,15 +132,16 @@ class TestProcess:
"between ipa and distgit",
"Ipa groups: ['group3', 'group4']",
"Fetching groups user lenkaseg is member of in ipa:",
"Distgit groups found: ['group1', 'group2']",
"User lenkaseg removed from distgit group: packager",
),
(
["group1", "group2"],
{"result": {"memberof_group": []}},
"User lenkaseg is not member of any groups in ipa, bailing.",
"Seems that user lenkaseg is not member of any groups "
"shared between ipa and distgit",
"Ipa groups: []",
"Fetching groups user lenkaseg is member of in ipa:",
"Distgit groups found: ['group1', 'group2']",
"User lenkaseg removed from distgit group: packager",
),
),
ids=(

View file

@ -62,6 +62,7 @@ class CleanPackagerGroups(ToddlerBase):
user = msg["msg"]["user"]
group = msg["msg"]["group"]
watched_groups = config.get("watched_groups")
# If user is not removed from packager group, bail
if group not in watched_groups:
_log.info(
@ -89,17 +90,23 @@ class CleanPackagerGroups(ToddlerBase):
_log.info("No distgit groups found, bailing.")
return
# Remove user from the distgit group that triggered the toddler
try:
self.dist_git.remove_member_from_group(user, group)
_log.info(f"User {user} removed from distgit group: {group}")
except PagureError:
_log.exception(
f"Error while removing user {user} from distgit group {group}"
)
ipa_session = self._get_ipa_session(config)
_log.info(f"Fetching groups user {user} is member of in ipa:")
ipa_user = ipa_session.Command.user_show(uid=user)
ipa_groups = ipa_user["result"]["memberof_group"]
_log.info(f"Ipa groups: {ipa_groups}")
if not ipa_groups:
_log.info(f"User {user} is not member of any groups in ipa, bailing.")
return
intersection = list(set(distgit_groups) & set(ipa_groups))
if not intersection:
_log.info(
f"Seems that user {user} is not member of any "