From c7b7201d39305029f103b2fef1a2790fbf588bec Mon Sep 17 00:00:00 2001 From: Lenka Segura Date: Feb 21 2023 11:34:10 +0000 Subject: Exclude automatic groups from the sync --- diff --git a/roles/fas2discourseconfig/defaults/main.yml b/roles/fas2discourseconfig/defaults/main.yml index fb1d3f7..caea640 100644 --- a/roles/fas2discourseconfig/defaults/main.yml +++ b/roles/fas2discourseconfig/defaults/main.yml @@ -7,3 +7,5 @@ f2d_secret: "fas2discourse-operator-k8s-secret" f2d_discourse_secret: "fas2discourse-operator-discourse-apikey-secret" discourse_host: "OVERRIDEME" discourse_api: "OVERRIDEME" +ignored_groups: "['admins', 'staff', 'moderator']" +ignored_pattern: "^trust_level_" diff --git a/roles/fas2discourseconfig/library/fas2discourse_retrieve_discourse_groups.py b/roles/fas2discourseconfig/library/fas2discourse_retrieve_discourse_groups.py index d83b843..30b0d67 100644 --- a/roles/fas2discourseconfig/library/fas2discourse_retrieve_discourse_groups.py +++ b/roles/fas2discourseconfig/library/fas2discourse_retrieve_discourse_groups.py @@ -5,6 +5,7 @@ # https://www.gnu.org/licenses/gpl-3.0.txt) import json +import re import requests from ansible.module_utils.basic import AnsibleModule @@ -98,12 +99,18 @@ def run_module(): # part where your module will do what it needs to do) discourse_api = module.params["discourse_api"] discourse_host = module.params["discourse_host"] + ignored_groups = module.params["ignored_groups"] + ignored_pattern = module.params["ignored_pattern"] try: discourse_groups = [] resp = get_groups(discourse_host, discourse_api) if resp.ok: discourse_groups = json.dumps(resp.json()) + regexp = re.compile(r"%s" % (ignored_pattern)) + for v in groups_response["groups"]: + if v["name"] not in ignored_groups & regexp.search(v["name"]) is None: + discourse_groups.append(v["name"]) result["discourse_groups"] = discourse_groups result["changed"] = True