diff options
| author | Matthias Radestock <matthias@lshift.net> | 2009-12-01 12:56:54 +0000 |
|---|---|---|
| committer | Matthias Radestock <matthias@lshift.net> | 2009-12-01 12:56:54 +0000 |
| commit | 12ab14af50838111c4b50c019cd89be65b8e3834 (patch) | |
| tree | 76c9071f9f3257354c851fe319fa43f930ce0261 /src | |
| parent | 614ccfc42c21a29bf04b760d9a838f323e871f65 (diff) | |
| download | rabbitmq-server-git-12ab14af50838111c4b50c019cd89be65b8e3834.tar.gz | |
allow nodes to be started with no listeners
Diffstat (limited to 'src')
| -rw-r--r-- | src/rabbit_multi.erl | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/src/rabbit_multi.erl b/src/rabbit_multi.erl index 94150a5d81..dc642df403 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}); |
