diff --git a/crmsh/scripts.py b/crmsh/scripts.py index 1a7e2cede..834370b4f 100644 --- a/crmsh/scripts.py +++ b/crmsh/scripts.py @@ -1257,10 +1257,17 @@ def _filter_nodes(nodes, user, port): nodes = nodes.replace(',', ' ').split() else: nodes = utils.list_cluster_nodes() - if not nodes: - raise ValueError("No hosts") - nodes = [(node, port or None, user or None) for node in nodes] - return nodes + + reachable_nodes = [] + for node in nodes: + try: + utils.node_reachable_check(node) + reachable_nodes.append((node, port or None, user or None)) + except ValueError: + logger.warning("Node %s is unreachable", node) + if not reachable_nodes: + raise ValueError("No reachable hosts") + return reachable_nodes def _scoped_param(context, name): diff --git a/crmsh/utils.py b/crmsh/utils.py index 1c8ffb4b0..6f67b4a82 100644 --- a/crmsh/utils.py +++ b/crmsh/utils.py @@ -2471,6 +2471,8 @@ def node_reachable_check(node, ping_count=1, port=22, timeout=3): """ Check if node is reachable by using ping and socket to ssh port """ + if options.regression_tests: + return True rc, _, _ = ShellUtils().get_stdout_stderr(f"ping -n -c {ping_count} -W {timeout} {node}") if rc == 0: return True