diff --git a/lib/aprsme/cluster/leader_election.ex b/lib/aprsme/cluster/leader_election.ex index 8c7a256..93ac74d 100644 --- a/lib/aprsme/cluster/leader_election.ex +++ b/lib/aprsme/cluster/leader_election.ex @@ -210,7 +210,8 @@ defmodule Aprsme.Cluster.LeaderElection do Map.put(status, :cluster_info, %{ total_nodes: length(all_nodes), connected_nodes: length(connected_statuses), - leader_node: get_leader_node_name() + leader_node: get_leader_node_name(), + all_nodes: all_nodes |> Enum.map(&to_string/1) |> Enum.sort() }) [] -> @@ -220,7 +221,8 @@ defmodule Aprsme.Cluster.LeaderElection do Map.put(local_status, :cluster_info, %{ total_nodes: length(all_nodes), connected_nodes: 0, - leader_node: get_leader_node_name() + leader_node: get_leader_node_name(), + all_nodes: all_nodes |> Enum.map(&to_string/1) |> Enum.sort() }) end end diff --git a/lib/aprsme_web/live/status_live/index.ex b/lib/aprsme_web/live/status_live/index.ex index dc83f16..acaff08 100644 --- a/lib/aprsme_web/live/status_live/index.ex +++ b/lib/aprsme_web/live/status_live/index.ex @@ -137,7 +137,7 @@ defmodule AprsmeWeb.StatusLive.Index do
{gettext("Server:")} - {@aprs_status.server}:{@aprs_status.port} + {@aprs_status.server}
@@ -317,6 +317,28 @@ defmodule AprsmeWeb.StatusLive.Index do + <%= if Map.has_key?(@aprs_status.cluster_info, :all_nodes) do %> +
+ {gettext("Cluster Nodes:")} +
+ <%= for node_name <- @aprs_status.cluster_info.all_nodes do %> +
+ <%= if node_name == @aprs_status.cluster_info.leader_node do %> +
+ <% end %> + {node_name} +
+ <% end %> +
+

+ {gettext("Leader node")} {gettext("highlighted")} +

+
+ <% end %> +

{gettext( "Status is aggregated from all nodes in the cluster. Only the leader node maintains the APRS-IS connection."