Skip to content

Commit 155e405

Browse files
committed
Fix: utils: add UnreachableNodeError and handle unreachable nodes in check_all_nodes_reachable (bsc#1250645)
1 parent 89a1bd1 commit 155e405

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

crmsh/utils.py

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2470,6 +2470,12 @@ def __init__(self, msg: str, dead_nodes=None):
24702470
self.dead_nodes = dead_nodes or []
24712471

24722472

2473+
class UnreachableNodeError(ValueError):
2474+
def __init__(self, msg: str, unreachable_nodes=None):
2475+
super().__init__(msg)
2476+
self.unreachable_nodes = unreachable_nodes or []
2477+
2478+
24732479
def check_all_nodes_reachable(action_to_do: str, peer_node: str = None):
24742480
"""
24752481
Check if all cluster nodes are reachable
@@ -2491,8 +2497,17 @@ def check_all_nodes_reachable(action_to_do: str, peer_node: str = None):
24912497
"""
24922498
raise DeadNodeError(msg, dead_nodes)
24932499

2500+
unreachable_nodes = []
24942501
for node in online_nodes:
2495-
node_reachable_check(node)
2502+
try:
2503+
node_reachable_check(node)
2504+
except ValueError:
2505+
unreachable_nodes.append(node)
2506+
if unreachable_nodes:
2507+
msg = f"""There are unreachable nodes: {', '.join(unreachable_nodes)}.
2508+
Please check the network connectivity before {action_to_do}.
2509+
"""
2510+
raise UnreachableNodeError(msg, unreachable_nodes)
24962511

24972512

24982513
def re_split_string(reg, string):

0 commit comments

Comments
 (0)