Current section

48 Versions

Jump to

Compare versions

3 files changed
+14 additions
-11 deletions
  @@ -34,4 +34,4 @@
34 34 {<<"optional">>,false},
35 35 {<<"repository">>,<<"hexpm">>},
36 36 {<<"requirement">>,<<"~> 0.9">>}]]}.
37 - {<<"version">>,<<"0.9.1">>}.
37 + {<<"version">>,<<"0.9.2">>}.
  @@ -39,15 +39,18 @@ defmodule RaftFleet.ProcessAndDiskLogIndexInspector do
39 39 end
40 40
41 41 defun find_node_having_latest_log_index(name :: atom) :: {:ok, nil | node} | {:error, :process_exists} do
42 - nodes = RaftFleet.active_nodes() |> Enum.flat_map(fn {_, ns} -> ns end)
43 - {node_result_pairs, _bad_nodes} = GenServer.multi_call(nodes, __MODULE__, {:get_log_index, name}, 2000)
44 - if Enum.any?(node_result_pairs, &match?({_node, {:error, :process_exists}}, &1)) do
45 - {:error, :process_exists}
46 - else
47 - Enum.map(node_result_pairs, fn {n, {:ok, i}} -> {n, i} end)
48 - |> Enum.reject(&match?({_node, nil}, &1))
49 - |> find_most_preferable_node()
50 - |> R.pure()
42 + case RaftFleet.active_nodes() |> Enum.flat_map(fn {_, ns} -> ns end) do
43 + [n] when n -> {:ok, n}
44 + nodes ->
45 + {node_result_pairs, _bad_nodes} = GenServer.multi_call(nodes, __MODULE__, {:get_log_index, name}, 2000)
46 + if Enum.any?(node_result_pairs, &match?({_node, {:error, :process_exists}}, &1)) do
47 + {:error, :process_exists}
48 + else
49 + Enum.map(node_result_pairs, fn {n, {:ok, i}} -> {n, i} end)
50 + |> Enum.reject(&match?({_node, nil}, &1))
51 + |> find_most_preferable_node()
52 + |> R.pure()
53 + end
51 54 end
52 55 end
  @@ -6,7 +6,7 @@ defmodule RaftFleet.Mixfile do
6 6 def project() do
7 7 [
8 8 app: :raft_fleet,
9 - version: "0.9.1",
9 + version: "0.9.2",
10 10 elixir: "~> 1.6",
11 11 build_embedded: Mix.env() == :prod,
12 12 start_permanent: Mix.env() == :prod,