From 9bd9b68dd5f725bb3b75bf70a88a1f1f36c352e6 Mon Sep 17 00:00:00 2001 From: Stephane de Labrusse Date: Thu, 21 Nov 2024 14:10:47 +0100 Subject: [PATCH] feat (event): autodiscovery the user domain with user-domain-changed --- .../user-domain-changed/20configure_ldap | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100755 imageroot/events/user-domain-changed/20configure_ldap diff --git a/imageroot/events/user-domain-changed/20configure_ldap b/imageroot/events/user-domain-changed/20configure_ldap new file mode 100755 index 0000000..f213aad --- /dev/null +++ b/imageroot/events/user-domain-changed/20configure_ldap @@ -0,0 +1,32 @@ +#!/usr/bin/env python3 + +# +# Copyright (C) 2024 Nethesis S.r.l. +# SPDX-License-Identifier: GPL-3.0-or-later +# + +import json +import sys +import os +import agent + +rdb = agent.redis_connect(use_replica=True) +event = json.load(sys.stdin) + +user_domain = '' + +if not os.environ.get('USER_DOMAIN'): + providers = agent.list_service_providers(rdb, 'imap', 'tcp', { + 'module_uuid': os.environ.get('MAIL_SERVER', '') + }) + + if providers: + user_domain = providers[0]['user_domain'] + +if event.get('domain') != os.getenv('USER_DOMAIN', user_domain): + exit(0) + +if 'node_id' in event and str(event['node_id']) != os.getenv('NODE_ID'): + exit(0) # ignore event if the source is not in our node + +agent.run_helper('systemctl', '--user', '-T', 'try-restart', 'roundcubemail.service').check_returncode()