summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Radestock <matthias@lshift.net>2009-12-01 12:56:54 +0000
committerMatthias Radestock <matthias@lshift.net>2009-12-01 12:56:54 +0000
commit5482a87d0ae83fb39df473931b15c63c62677b60 (patch)
tree76c9071f9f3257354c851fe319fa43f930ce0261
parent2e8a7b5b0032ceb80349d470e4850a176caa7414 (diff)
downloadrabbitmq-server-5482a87d0ae83fb39df473931b15c63c62677b60.tar.gz
allow nodes to be started with no listeners
-rw-r--r--src/rabbit_multi.erl19
1 files changed, 12 insertions, 7 deletions
diff --git a/src/rabbit_multi.erl b/src/rabbit_multi.erl
index 94150a5d..dc642df4 100644
--- a/src/rabbit_multi.erl
+++ b/src/rabbit_multi.erl
@@ -161,8 +161,7 @@ action(rotate_logs, [Suffix], RpcTimeout) ->
%% Running is a boolean exhibiting success at some moment
start_nodes(0, _, PNodePid, Running, _, _, _) -> {PNodePid, Running};
-start_nodes(N, Total, PNodePid, Running,
- NodeNameBase, {NodeIpAddress, NodePortBase}, RpcTimeout) ->
+start_nodes(N, Total, PNodePid, Running, NodeNameBase, Listener, RpcTimeout) ->
{NodePre, NodeSuff} = NodeNameBase,
NodeNumber = Total - N,
NodePre1 = case NodeNumber of
@@ -171,14 +170,18 @@ start_nodes(N, Total, PNodePid, Running,
_ -> NodePre ++ "_" ++ integer_to_list(NodeNumber)
end,
Node = rabbit_misc:makenode({NodePre1, NodeSuff}),
- NodePort = NodePortBase + NodeNumber,
os:putenv("RABBITMQ_NODENAME", atom_to_list(Node)),
- os:putenv("RABBITMQ_NODE_PORT", integer_to_list(NodePort)),
- os:putenv("RABBITMQ_NODE_IP_ADDRESS", NodeIpAddress),
+ case Listener of
+ {NodeIpAddress, NodePortBase} ->
+ NodePort = NodePortBase + NodeNumber,
+ os:putenv("RABBITMQ_NODE_PORT", integer_to_list(NodePort)),
+ os:putenv("RABBITMQ_NODE_IP_ADDRESS", NodeIpAddress);
+ undefined ->
+ ok
+ end,
{NodePid, Started} = start_node(Node, RpcTimeout),
start_nodes(N - 1, Total, [NodePid | PNodePid],
- Started and Running, NodeNameBase,
- {NodeIpAddress, NodePortBase}, RpcTimeout).
+ Started and Running, NodeNameBase, Listener, RpcTimeout).
start_node(Node, RpcTimeout) ->
io:format("Starting node ~s...~n", [Node]),
@@ -333,6 +336,8 @@ get_node_tcp_listener() ->
case application:get_env(rabbit, tcp_listeners) of
{ok, [{_IpAddy, _Port} = Listener]} ->
Listener;
+ {ok, []} ->
+ undefined;
{ok, Other} ->
throw({cannot_start_multiple_nodes, multiple_tcp_listeners,
Other});