diff options
author | Luke Bakken <lbakken@pivotal.io> | 2019-06-12 14:37:44 -0700 |
---|---|---|
committer | Luke Bakken <lbakken@pivotal.io> | 2019-06-12 14:37:44 -0700 |
commit | da50940153888b7a83e9f37efcda095e755065c2 (patch) | |
tree | b2a8faf4358897080fe5474ecb278ad08f3befe3 | |
parent | e8d01d3cfa28cd3db1db8eeeb5c8a8b609977bdb (diff) | |
download | rabbitmq-server-git-mnevis-experimental-join_cluster-165092619.tar.gz |
Add necessary code for join_clustermnevis-experimental-join_cluster-165092619
-rw-r--r-- | src/rabbit_mnesia.erl | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/src/rabbit_mnesia.erl b/src/rabbit_mnesia.erl index 2058ebfdbf..fa5f6f20ba 100644 --- a/src/rabbit_mnesia.erl +++ b/src/rabbit_mnesia.erl @@ -244,7 +244,10 @@ wait_for_table(Table) -> -spec join_cluster(node(), node_type()) -> ok | {ok, already_member} | {error, {inconsistent_cluster, string()}}. -join_cluster(DiscoveryNode, NodeType) -> +join_cluster(DiscoveryNode, _NodeType) -> + % Note: DiscoveryNode is the node to which this one + % is joining, i.e. the argument after "join_cluster" in + % rabbitmqctl join_cluster ... ensure_mnesia_not_running(), ensure_mnesia_dir(), % TODO mnevis @@ -266,15 +269,18 @@ join_cluster(DiscoveryNode, NodeType) -> %% of resetting the node from the user. ok = reset_gracefully_mnevis(), - ClusterNodes1 = [node()|ClusterNodes], + Node = node(), + ClusterNodes1 = lists:usort([Node|ClusterNodes]), rabbit_log:debug("MNEVIS: post-discover_cluster ClusterNodes1 ~p", [ClusterNodes1]), - ok = application:set_env(mnevis, initial_nodes, ClusterNodes1), %% Join the cluster %% TODO mnevis %% rabbit_log:info("Clustering with ~p as ~p node~n", [ClusterNodes, NodeType]), - %% ok = init_db_with_mnesia(ClusterNodes, NodeType, true, true, _Retry = true), + {ok, _} = application:ensure_all_started(mnevis), + ok = ra:start_server(mnevis_node, {mnevis_node, Node}, {module, mnevis_machine, #{}}, ClusterNodes1), + {ok, _, _} = rpc:call(DiscoveryNode, mnevis_node, add_node, [Node]), + rabbit_connection_tracking:boot(), rabbit_node_monitor:notify_joined_cluster(), ok; @@ -317,7 +323,11 @@ reset_gracefully_mnevis() -> rabbit_log:debug("MNEVIS: reset_gracefully_mnevis"), leave_cluster(), rabbit_misc:ensure_ok(mnesia:delete_schema([node()]), cannot_delete_schema), - wipe(). + wipe(), + % TODO mnevis + ok = application:start(ra), + ok = ra:force_delete_server(mnevis_node). + reset_gracefully() -> AllNodes = cluster_nodes(all), @@ -662,6 +672,8 @@ init_db_with_mnesia(ClusterNodes, NodeType, -spec ensure_mnesia_dir() -> 'ok'. ensure_mnesia_dir() -> + % TODO mnevis + % Not necessary as mnesia will be RAM nodes for mnevis MnesiaDir = dir() ++ "/", case filelib:ensure_dir(MnesiaDir) of {error, Reason} -> |