From 6ce6740b772be4ca35d67ad7497acacd7e341855 Mon Sep 17 00:00:00 2001 From: Jarrod Johnson Date: Thu, 10 Oct 2019 08:50:42 -0400 Subject: [PATCH] Provide deletion of collective member --- .../confluent/config/configmanager.py | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/confluent_server/confluent/config/configmanager.py b/confluent_server/confluent/config/configmanager.py index 9e324385..8a43a44c 100644 --- a/confluent_server/confluent/config/configmanager.py +++ b/confluent_server/confluent/config/configmanager.py @@ -780,6 +780,30 @@ def add_collective_member(name, address, fingerprint): exec_on_followers('_true_add_collective_member', name, address, fingerprint) _true_add_collective_member(name, address, fingerprint) +def del_collective_member(name): + if cfgleader: + return exec_on_leader('add_collective_member', name) + if cfgstreams: + exec_on_followers('_true_add_collective_member', name) + _true_del_collective_member(name) + +def _true_del_collective_member(name, sync=True): + name = confluent.util.stringify(name) + if _cfgstore is None: + return + if 'collective' not in _cfgstore: + return + if name not in _cfgstore['collective']: + return + del _cfgstore['collective'][name] + with _dirtylock: + if 'collectivedirty' not in _cfgstore: + _cfgstore['collectivedirty'] = set([]) + _cfgstore['collectivedirty'].add(name) + if sync: + ConfigManager._bg_sync_to_file() + + _pending_collective_updates = {}