Skip to content

Commit 01ee96c

Browse files
committed
Dev: utils: Refactor validate_and_get_reachable_nodes for clearer logic
1 parent 6146930 commit 01ee96c

File tree

1 file changed

+13
-10
lines changed

1 file changed

+13
-10
lines changed

crmsh/utils.py

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3258,25 +3258,28 @@ def validate_and_get_reachable_nodes(
32583258
cluster_member_list = get_address_list_from_corosync_conf()
32593259
if cluster_member_list:
32603260
no_cib = True
3261-
32623261
if not cluster_member_list:
32633262
fatal("Cannot get the member list of the cluster")
3263+
32643264
pcmk_remote_list = []
32653265
if include_remote:
32663266
pcmk_remote_list = xmlutil.CrmMonXmlParser.get_node_list(online=True, node_type="remote")
3267-
for node in nodes_from_args:
3268-
if node not in cluster_member_list and node not in pcmk_remote_list:
3269-
fatal(f"Node '{node}' is not a member of the cluster")
32703267

32713268
local_node = this_node()
3272-
# Return local node if no nodes specified
3273-
if not nodes_from_args and not all_nodes:
3269+
3270+
member_list = []
3271+
remote_list = []
3272+
if nodes_from_args:
3273+
member_list = [node for node in nodes_from_args if node in cluster_member_list]
3274+
remote_list = [node for node in nodes_from_args if node in pcmk_remote_list]
3275+
invalid_nodes = set(nodes_from_args) - set(member_list) - set(remote_list)
3276+
if invalid_nodes:
3277+
fatal(f"Node \"{', '.join(invalid_nodes)}\" is not in the cluster")
3278+
elif all_nodes:
3279+
member_list, remote_list = cluster_member_list, pcmk_remote_list
3280+
else:
32743281
return [local_node]
32753282

3276-
# Use all nodes if no nodes specified and all_nodes is True
3277-
node_list = nodes_from_args or cluster_member_list + pcmk_remote_list
3278-
member_list = [node for node in node_list if node not in pcmk_remote_list]
3279-
remote_list = [node for node in node_list if node in pcmk_remote_list]
32803283
# Filter out unreachable nodes
32813284
member_list = get_reachable_node_list(member_list)
32823285
if no_cib:

0 commit comments

Comments
 (0)