From 32bc5afe032bb8bcdf0e183e0cf1bf063ea9f7ba Mon Sep 17 00:00:00 2001 From: Jarrod Johnson Date: Mon, 13 Jan 2025 12:07:39 -0500 Subject: [PATCH] Generate error on node/group misdeletion If requesting to delete a group from a node when that node is not a member of that group, generate an error. Similarly to delete a node from a group. --- confluent_server/confluent/config/configmanager.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/confluent_server/confluent/config/configmanager.py b/confluent_server/confluent/config/configmanager.py index fa4cbccc..506ed85a 100644 --- a/confluent_server/confluent/config/configmanager.py +++ b/confluent_server/confluent/config/configmanager.py @@ -1986,6 +1986,9 @@ class ConfigManager(object): delnodes = noderange.NodeRange( attribmap[group][attr]['remove'], config=self).nodes + for node in delnodes: + if node not in currnodes: + raise ValueError('node "{0}" is not a member of {1}'.format(node, group)) attribmap[group][attr] = [ x for x in currnodes if x not in delnodes] if not isinstance(attribmap[group][attr], list): @@ -2442,6 +2445,9 @@ class ConfigManager(object): elif attribmap[node]['groups'].get('remove', False): delgroups = attribmap[node]['groups'][ 'remove'].split(',') + for group in delgroups: + if group not in currgroups: + raise ValueError("node {0} is not a member of group {1}".format(node, group)) newgroups = [ x for x in currgroups if x not in delgroups] attribmap[node]['groups'] = newgroups