cleaning_packager_groups: Remove user from the initial group as well
Signed-off-by: Lenka Segura <lsegura@redhat.com>
This commit is contained in:
parent
e4d31a1891
commit
f5c321a5ed
2 changed files with 15 additions and 7 deletions
|
@ -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=(
|
||||
|
|
|
@ -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 "
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue