From 39132aa17c465b1c037b3220b4aeb5815e3a0888 Mon Sep 17 00:00:00 2001 From: Lenka Segura Date: Mar 30 2023 09:18:00 +0000 Subject: Refactor fetching fas group member --- diff --git a/Makefile b/Makefile index 72d185c..29f03ad 100644 --- a/Makefile +++ b/Makefile @@ -3,7 +3,7 @@ # To re-generate a bundle for another specific version without changing the standard setup, you can: # - use the VERSION as arg of the bundle target (e.g make bundle VERSION=0.0.2) # - use environment variables to overwrite this value (e.g export VERSION=0.0.2) -VERSION ?= 0.0.43 +VERSION ?= 0.0.44 # CHANNELS define the bundle channels used in the bundle. # Add a new line here if you would like to change its default config. (E.g CHANNELS = "candidate,fast,stable") diff --git a/config/manager/kustomization.yaml b/config/manager/kustomization.yaml index 460b5f9..53d8b4f 100644 --- a/config/manager/kustomization.yaml +++ b/config/manager/kustomization.yaml @@ -13,4 +13,4 @@ kind: Kustomization images: - name: controller newName: quay.io/fedora/fas2discourse-operator - newTag: v0.0.42 + newTag: v0.0.44 diff --git a/roles/fas2discourseconfig/library/fas2discourse_retrieve_ipa_groups.py b/roles/fas2discourseconfig/library/fas2discourse_retrieve_ipa_groups.py index 2d1dd17..8f432d2 100644 --- a/roles/fas2discourseconfig/library/fas2discourse_retrieve_ipa_groups.py +++ b/roles/fas2discourseconfig/library/fas2discourse_retrieve_ipa_groups.py @@ -102,15 +102,6 @@ def get_http_client(keytab_path, principal): session.auth = kerberos_auth return session - -# Helper function to retrieve fasjson groups -def get_groups(http_client): - response = http_client.get("https://fasjson.fedoraproject.org/v1/groups/") - display.debug(f"Response from get_groups: {response}, {response.json()}, {response.status_code}") - if response.ok: - return response.json() - - # Helper function to retrieve fasjson group members def get_group_members(http_client, groupname): response = http_client.get( @@ -125,7 +116,7 @@ def run_module(): module_args = dict( keytab_path=dict(type="str", required=True), principal=dict(type="str", required=True), - discourse_groups=dict(type="str", required=True), + discourse_groups=dict(type="list", required=True), ) # seed the result dict in the object @@ -155,22 +146,15 @@ def run_module(): try: http_client = get_http_client(keytab_path, principal) - groups_response = get_groups(http_client) fas2discourse_groups = [] - for v in groups_response["result"]: - if v["groupname"] in discourse_groups: - group = {"groupname": v["groupname"], "groupmembers": []} - - group_member_res = get_group_members(http_client, v["groupname"]) - # print(json.dumps(group_member_res)) - - for v in group_member_res["result"]: - group["groupmembers"].append(v["username"]) - fas2discourse_groups.append(group) - # print(v["groupname"]) + for v in discourse_groups: + group = {"groupname": v["groupname"], "groupmembers": []} + group_member_res = get_group_members(http_client, v["groupname"]) - # print(json.dumps(fas2discourse_groups)) + for member in group_member_res["result"]: + group["groupmembers"].append(member["username"]) + fas2discourse_groups.append(group) result["ipa_groups"] = fas2discourse_groups result["changed"] = True