Current section
48 Versions
Jump to
Current section
48 Versions
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, |