Improve output formatting for healthy leaders and support

silent mode in rabbitmq-queues leader_health_check command
This commit is contained in:
Ayanda Dube 2024-07-04 17:00:13 +01:00
parent 96b8bced2d
commit 239a69b404
1 changed files with 29 additions and 3 deletions

View File

@ -28,11 +28,37 @@ defmodule RabbitMQ.CLI.Queues.Commands.LeaderHealthCheckCommand do
end
end
def output(:ok, %{formatter: "json"}) do
{:error, :check_passed}
def output(:ok, %{node: node_name, formatter: "json"}) do
{:ok,
%{
"result" => "ok",
"message" =>
"Node #{node_name} reported all quorum queue leaders as healthy"
}}
end
def output({:error, unhealthy_queues}, %{vhost: _vhost, formatter: "json"}) when is_list(unhealthy_queues) do
def output(:ok, %{silent: true}) do
{:ok, :check_passed}
end
def output(:ok, %{node: node_name}) do
{:ok, "Node #{node_name} reported all quorum queue leaders as healthy"}
end
def output({:error, unhealthy_queues}, %{node: node_name, formatter: "json"}) when is_list(unhealthy_queues) do
{:error, :check_failed,
%{
"result" => "error",
"queues" => unhealthy_queues,
"message" => "Node #{node_name} reported unhealthy quorum queue leaders"
}}
end
def output({:error, unhealthy_queues}, %{silent: true}) when is_list(unhealthy_queues) do
{:error, :check_failed}
end
def output({:error, unhealthy_queues}, %{vhost: _vhost}) when is_list(unhealthy_queues) do
lines = queue_lines(unhealthy_queues)
{:error, :check_failed, Enum.join(lines, line_separator())}