Fix credo issues
- Remove trailing whitespace from comments - Fix long line in packet_processor.ex - Rename is_leader? to leader? following Elixir conventions
This commit is contained in:
parent
ff06c13224
commit
81a4b7b815
11 changed files with 21 additions and 20 deletions
|
|
@ -26,7 +26,7 @@ defmodule Aprsme.Cluster.ConnectionManager do
|
||||||
|
|
||||||
@impl true
|
@impl true
|
||||||
def handle_info(:check_initial_state, state) do
|
def handle_info(:check_initial_state, state) do
|
||||||
if Aprsme.Cluster.LeaderElection.is_leader?() do
|
if Aprsme.Cluster.LeaderElection.leader?() do
|
||||||
Logger.info("This node is the leader, starting APRS-IS connection")
|
Logger.info("This node is the leader, starting APRS-IS connection")
|
||||||
start_aprs_connection()
|
start_aprs_connection()
|
||||||
{:noreply, %{state | connection_started: true}}
|
{:noreply, %{state | connection_started: true}}
|
||||||
|
|
|
||||||
|
|
@ -16,8 +16,8 @@ defmodule Aprsme.Cluster.LeaderElection do
|
||||||
GenServer.start_link(__MODULE__, opts, name: __MODULE__)
|
GenServer.start_link(__MODULE__, opts, name: __MODULE__)
|
||||||
end
|
end
|
||||||
|
|
||||||
def is_leader? do
|
def leader? do
|
||||||
GenServer.call(__MODULE__, :is_leader?)
|
GenServer.call(__MODULE__, :leader?)
|
||||||
end
|
end
|
||||||
|
|
||||||
def current_leader do
|
def current_leader do
|
||||||
|
|
@ -148,7 +148,7 @@ defmodule Aprsme.Cluster.LeaderElection do
|
||||||
end
|
end
|
||||||
|
|
||||||
@impl true
|
@impl true
|
||||||
def handle_call(:is_leader?, _from, state) do
|
def handle_call(:leader?, _from, state) do
|
||||||
{:reply, state.is_leader, state}
|
{:reply, state.is_leader, state}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ defmodule Aprsme.Cluster.PacketDistributor do
|
||||||
# Only distribute if clustering is enabled and we're the leader
|
# Only distribute if clustering is enabled and we're the leader
|
||||||
cluster_enabled = Application.get_env(:aprsme, :cluster_enabled, false)
|
cluster_enabled = Application.get_env(:aprsme, :cluster_enabled, false)
|
||||||
|
|
||||||
if cluster_enabled and Aprsme.Cluster.LeaderElection.is_leader?() do
|
if cluster_enabled and Aprsme.Cluster.LeaderElection.leader?() do
|
||||||
# Broadcast to all nodes including self
|
# Broadcast to all nodes including self
|
||||||
Phoenix.PubSub.broadcast(
|
Phoenix.PubSub.broadcast(
|
||||||
Aprsme.PubSub,
|
Aprsme.PubSub,
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,7 @@ defmodule Aprsme.Cluster.PacketReceiver do
|
||||||
@impl true
|
@impl true
|
||||||
def handle_info({:distributed_packet, packet}, state) do
|
def handle_info({:distributed_packet, packet}, state) do
|
||||||
# Only process if we're not the leader (leader already processed locally)
|
# Only process if we're not the leader (leader already processed locally)
|
||||||
if !Aprsme.Cluster.LeaderElection.is_leader?() do
|
if !Aprsme.Cluster.LeaderElection.leader?() do
|
||||||
PacketDistributor.handle_distributed_packet({:distributed_packet, packet})
|
PacketDistributor.handle_distributed_packet({:distributed_packet, packet})
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -69,7 +69,8 @@ defmodule AprsmeWeb.MapLive.PacketProcessor do
|
||||||
# Significant movement detected (more than 50 meters), update the marker
|
# Significant movement detected (more than 50 meters), update the marker
|
||||||
handle_valid_postgres_packet(packet, lat, lon, socket)
|
handle_valid_postgres_packet(packet, lat, lon, socket)
|
||||||
else
|
else
|
||||||
# Just GPS drift (less than 50 meters) or invalid coordinates, update the packet data but don't send visual update
|
# Just GPS drift (less than 50 meters) or invalid coordinates,
|
||||||
|
# update the packet data but don't send visual update
|
||||||
new_visible_packets = Map.put(socket.assigns.visible_packets, callsign_key, packet)
|
new_visible_packets = Map.put(socket.assigns.visible_packets, callsign_key, packet)
|
||||||
assign(socket, :visible_packets, new_visible_packets)
|
assign(socket, :visible_packets, new_visible_packets)
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -58,7 +58,7 @@ defmodule Aprsme.Cluster.LeaderElectionTest do
|
||||||
end
|
end
|
||||||
|
|
||||||
test "elects itself as leader when clustering is disabled", %{pid: _pid} do
|
test "elects itself as leader when clustering is disabled", %{pid: _pid} do
|
||||||
assert LeaderElection.is_leader?() == true
|
assert LeaderElection.leader?() == true
|
||||||
assert LeaderElection.current_leader() == node()
|
assert LeaderElection.current_leader() == node()
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
@ -67,7 +67,7 @@ defmodule Aprsme.Cluster.LeaderElectionTest do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe "is_leader?/0" do
|
describe "leader?/0" do
|
||||||
setup do
|
setup do
|
||||||
Application.put_env(:aprsme, :cluster_enabled, false)
|
Application.put_env(:aprsme, :cluster_enabled, false)
|
||||||
{:ok, _pid} = LeaderElection.start_link([])
|
{:ok, _pid} = LeaderElection.start_link([])
|
||||||
|
|
@ -76,7 +76,7 @@ defmodule Aprsme.Cluster.LeaderElectionTest do
|
||||||
end
|
end
|
||||||
|
|
||||||
test "returns leadership status" do
|
test "returns leadership status" do
|
||||||
assert is_boolean(LeaderElection.is_leader?())
|
assert is_boolean(LeaderElection.leader?())
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
@ -137,7 +137,7 @@ defmodule Aprsme.Cluster.LeaderElectionTest do
|
||||||
Process.sleep(200)
|
Process.sleep(200)
|
||||||
|
|
||||||
# Verify it's the leader
|
# Verify it's the leader
|
||||||
assert LeaderElection.is_leader?() == true
|
assert LeaderElection.leader?() == true
|
||||||
|
|
||||||
# Stop the process
|
# Stop the process
|
||||||
GenServer.stop(pid)
|
GenServer.stop(pid)
|
||||||
|
|
@ -151,13 +151,13 @@ defmodule Aprsme.Cluster.LeaderElectionTest do
|
||||||
{:ok, _pid} = LeaderElection.start_link([])
|
{:ok, _pid} = LeaderElection.start_link([])
|
||||||
|
|
||||||
# Initial state - might not be leader yet
|
# Initial state - might not be leader yet
|
||||||
_initial_leader = LeaderElection.is_leader?()
|
_initial_leader = LeaderElection.leader?()
|
||||||
|
|
||||||
# Wait for periodic check
|
# Wait for periodic check
|
||||||
Process.sleep(6000)
|
Process.sleep(6000)
|
||||||
|
|
||||||
# Should still be able to query leadership
|
# Should still be able to query leadership
|
||||||
current_leader = LeaderElection.is_leader?()
|
current_leader = LeaderElection.leader?()
|
||||||
assert is_boolean(current_leader)
|
assert is_boolean(current_leader)
|
||||||
|
|
||||||
# In non-clustered mode, should become leader
|
# In non-clustered mode, should become leader
|
||||||
|
|
@ -210,7 +210,7 @@ defmodule Aprsme.Cluster.LeaderElectionTest do
|
||||||
Process.sleep(500)
|
Process.sleep(500)
|
||||||
|
|
||||||
# Should have taken over leadership
|
# Should have taken over leadership
|
||||||
assert LeaderElection.is_leader?() == true
|
assert LeaderElection.leader?() == true
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
@ -232,7 +232,7 @@ defmodule Aprsme.Cluster.LeaderElectionTest do
|
||||||
Process.sleep(3000)
|
Process.sleep(3000)
|
||||||
|
|
||||||
# Should eventually attempt election
|
# Should eventually attempt election
|
||||||
assert is_boolean(LeaderElection.is_leader?())
|
assert is_boolean(LeaderElection.leader?())
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue