summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAyanda Dube <ayanda.dube@erlang-solutions.com>2015-12-22 16:17:41 +0000
committerAyanda Dube <ayanda.dube@erlang-solutions.com>2015-12-22 16:17:41 +0000
commitb2cf1238eea40f6a505a42d1bf10b75efcdff3bc (patch)
tree47dd6649cb24ea49ac5f1ee34a2e9d9ed2a04cb8 /src
parent61a5fd3950a5b34f596c48214c9299c7f4d4d582 (diff)
downloadrabbitmq-server-git-b2cf1238eea40f6a505a42d1bf10b75efcdff3bc.tar.gz
Moves Erlang and OTP functions from rabbit_mnesia
to rabbit_version. References #485
Diffstat (limited to 'src')
-rw-r--r--src/rabbit_mnesia.erl25
-rw-r--r--src/rabbit_version.erl31
2 files changed, 33 insertions, 23 deletions
diff --git a/src/rabbit_mnesia.erl b/src/rabbit_mnesia.erl
index 974a910d49..8a4354e4bc 100644
--- a/src/rabbit_mnesia.erl
+++ b/src/rabbit_mnesia.erl
@@ -610,7 +610,7 @@ check_cluster_consistency(Node, CheckNodesConsistency) ->
end;
{_OTP, Rabbit, _Hash, _Status} ->
%% delegate hash checking implies version mismatch
- version_error("Rabbit", rabbit_misc:version(), Rabbit)
+ rabbit_version:version_error("Rabbit", rabbit_misc:version(), Rabbit)
end.
%%--------------------------------------------------------------------
@@ -765,12 +765,12 @@ change_extra_db_nodes(ClusterNodes0, CheckOtherNodes) ->
check_consistency(OTP, Rabbit) ->
rabbit_misc:sequence_error(
- [check_otp_consistency(OTP),
+ [rabbit_version:check_otp_consistency(OTP),
check_rabbit_consistency(Rabbit)]).
check_consistency(OTP, Rabbit, Node, Status) ->
rabbit_misc:sequence_error(
- [check_otp_consistency(OTP),
+ [rabbit_version:check_otp_consistency(OTP),
check_rabbit_consistency(Rabbit),
check_nodes_consistency(Node, Status)]).
@@ -785,25 +785,8 @@ check_nodes_consistency(Node, RemoteStatus = {RemoteAllNodes, _, _}) ->
[node(), Node, Node])}}
end.
-check_version_consistency(This, Remote, Name) ->
- check_version_consistency(This, Remote, Name, fun (A, B) -> A =:= B end).
-
-check_version_consistency(This, Remote, Name, Comp) ->
- case Comp(This, Remote) of
- true -> ok;
- false -> version_error(Name, This, Remote)
- end.
-
-version_error(Name, This, Remote) ->
- {error, {inconsistent_cluster,
- rabbit_misc:format("~s version mismatch: local node is ~s, "
- "remote node ~s", [Name, This, Remote])}}.
-
-check_otp_consistency(Remote) ->
- check_version_consistency(rabbit_misc:otp_release(), Remote, "OTP").
-
check_rabbit_consistency(Remote) ->
- check_version_consistency(
+ rabbit_version:check_version_consistency(
rabbit_misc:version(), Remote, "Rabbit",
fun rabbit_misc:version_minor_equivalent/2).
diff --git a/src/rabbit_version.erl b/src/rabbit_version.erl
index d3b2be1b50..19fc36342e 100644
--- a/src/rabbit_version.erl
+++ b/src/rabbit_version.erl
@@ -18,7 +18,9 @@
-export([recorded/0, matches/2, desired/0, desired_for_scope/1,
record_desired/0, record_desired_for_scope/1,
- upgrades_required/1]).
+ upgrades_required/1, check_version_consistency/3,
+ check_version_consistency/4, check_otp_consistency/1,
+ version_error/3]).
%% -------------------------------------------------------------------
-ifdef(use_specs).
@@ -40,7 +42,13 @@
(scope()) -> rabbit_types:ok_or_error(any())).
-spec(upgrades_required/1 ::
(scope()) -> rabbit_types:ok_or_error2([step()], any())).
-
+-spec(check_version_consistency/3 ::
+ (string(), string(), string()) -> rabbit_types:ok_or_error(any())).
+-spec(check_version_consistency/4 ::
+ (string(), string(), string(), string()) ->
+ rabbit_types:ok_or_error(any())).
+-spec(check_otp_consistency/1 ::
+ (string()) -> rabbit_types:ok_or_error(any())).
-endif.
%% -------------------------------------------------------------------
@@ -173,3 +181,22 @@ categorise_by_scope(Version) when is_list(Version) ->
dir() -> rabbit_mnesia:dir().
schema_filename() -> filename:join(dir(), ?VERSION_FILENAME).
+
+%% --------------------------------------------------------------------
+
+check_version_consistency(This, Remote, Name) ->
+ check_version_consistency(This, Remote, Name, fun (A, B) -> A =:= B end).
+
+check_version_consistency(This, Remote, Name, Comp) ->
+ case Comp(This, Remote) of
+ true -> ok;
+ false -> version_error(Name, This, Remote)
+ end.
+
+version_error(Name, This, Remote) ->
+ {error, {inconsistent_cluster,
+ rabbit_misc:format("~s version mismatch: local node is ~s, "
+ "remote node ~s", [Name, This, Remote])}}.
+
+check_otp_consistency(Remote) ->
+ check_version_consistency(rabbit_misc:otp_release(), Remote, "OTP").