test: allow join cluster later
This commit is contained in:
parent
ab7d57e1c5
commit
6e30718818
|
@ -115,13 +115,19 @@ start(NodeSpecs) ->
|
|||
% 2. Start applications needed to enable clustering
|
||||
% Generally, this causes some applications to restart, but we deliberately don't
|
||||
% start them yet.
|
||||
_ = lists:foreach(fun run_node_phase_cluster/1, NodeSpecs),
|
||||
ShouldAppearInRunningNodes = lists:map(fun run_node_phase_cluster/1, NodeSpecs),
|
||||
IsClustered = lists:member(true, ShouldAppearInRunningNodes),
|
||||
% 3. Start applications after cluster is formed
|
||||
% Cluster-joins are complete, so they shouldn't restart in the background anymore.
|
||||
_ = emqx_utils:pmap(fun run_node_phase_apps/1, NodeSpecs, ?TIMEOUT_APPS_START_MS),
|
||||
Nodes = [Node || #{name := Node} <- NodeSpecs],
|
||||
%% 4. Wait for the nodes to cluster
|
||||
ok = wait_clustered(Nodes, ?TIMEOUT_CLUSTER_WAIT_MS),
|
||||
case IsClustered of
|
||||
true ->
|
||||
ok = wait_clustered(Nodes, ?TIMEOUT_CLUSTER_WAIT_MS);
|
||||
false ->
|
||||
ok
|
||||
end,
|
||||
Nodes.
|
||||
|
||||
%% Wait until all nodes see all nodes as mria running nodes
|
||||
|
@ -377,11 +383,11 @@ node_init(Node) ->
|
|||
ok = snabbkaffe:forward_trace(Node),
|
||||
ok.
|
||||
|
||||
%% Returns 'true' if this node should appear in running nodes list.
|
||||
run_node_phase_cluster(Spec = #{name := Node}) ->
|
||||
ok = load_apps(Node, Spec),
|
||||
ok = start_apps_clustering(Node, Spec),
|
||||
ok = maybe_join_cluster(Node, Spec),
|
||||
ok.
|
||||
maybe_join_cluster(Node, Spec).
|
||||
|
||||
run_node_phase_apps(Spec = #{name := Node}) ->
|
||||
ok = start_apps(Node, Spec),
|
||||
|
@ -405,18 +411,20 @@ start_apps(Node, #{apps := Apps} = Spec) ->
|
|||
suite_opts(Spec) ->
|
||||
maps:with([work_dir, boot_type], Spec).
|
||||
|
||||
%% Returns 'true' if this node should appear in the cluster.
|
||||
maybe_join_cluster(_Node, #{boot_type := restart}) ->
|
||||
%% when restart, the node should already be in the cluster
|
||||
%% hence no need to (re)join
|
||||
ok;
|
||||
true;
|
||||
maybe_join_cluster(_Node, #{role := replicant}) ->
|
||||
ok;
|
||||
true;
|
||||
maybe_join_cluster(Node, Spec) ->
|
||||
case get_cluster_seeds(Spec) of
|
||||
[JoinTo | _] ->
|
||||
ok = join_cluster(Node, JoinTo);
|
||||
ok = join_cluster(Node, JoinTo),
|
||||
true;
|
||||
[] ->
|
||||
ok
|
||||
false
|
||||
end.
|
||||
|
||||
join_cluster(Node, JoinTo) ->
|
||||
|
|
Loading…
Reference in New Issue