summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTony Garnock-Jones <tonyg@lshift.net>2009-12-17 18:55:22 +0000
committerTony Garnock-Jones <tonyg@lshift.net>2009-12-17 18:55:22 +0000
commite7349b9bdac9789dad02a17c167f49e5398453c6 (patch)
tree1b2361270777a8c5db886a7a6b973145f852e68f
parent21430df7fc48e1328f787bd26d62b095c6480fa1 (diff)
downloadrabbitmq-server-e7349b9bdac9789dad02a17c167f49e5398453c6.tar.gz
Refactor boot_recovery, boot_tcp_listeners and boot_ssl_listeners
-rw-r--r--src/rabbit.erl56
-rw-r--r--src/rabbit_networking.erl23
2 files changed, 39 insertions, 40 deletions
diff --git a/src/rabbit.erl b/src/rabbit.erl
index a8b65f46..078ee31b 100644
--- a/src/rabbit.erl
+++ b/src/rabbit.erl
@@ -42,9 +42,7 @@
%%---------------------------------------------------------------------------
%% Boot steps.
-export([boot_core_processes/0,
- boot_recovery/0,
- boot_tcp_listeners/0,
- boot_ssl_listeners/0]).
+ maybe_insert_default_data/0]).
-rabbit_boot_step({database,
[{mfa, {rabbit_mnesia, init, []}}]}).
@@ -58,13 +56,24 @@
-rabbit_boot_step({core_initialized,
[{description, "core initialized"}]}).
--rabbit_boot_step({recovery,
- [{mfa, {?MODULE, boot_recovery, []}},
+-rabbit_boot_step({empty_db_check,
+ [{description, "empty DB check"},
+ {mfa, {?MODULE, maybe_insert_default_data, []}},
{post, core_initialized}]}).
+-rabbit_boot_step({exchange_recovery,
+ [{description, "exchange recovery"},
+ {mfa, {rabbit_exchange, recover, []}},
+ {post, empty_db_check}]}).
+
+-rabbit_boot_step({queue_recovery,
+ [{description, "queue recovery"},
+ {mfa, {rabbit_amqqueue, recover, []}},
+ {post, exchange_recovery}]}).
+
-rabbit_boot_step({persister,
[{mfa, {rabbit_sup, start_child, [rabbit_persister]}},
- {post, recovery}]}).
+ {post, queue_recovery}]}).
-rabbit_boot_step({guid_generator,
[{description, "guid generator"},
@@ -80,18 +89,11 @@
{mfa, {rabbit_error_logger, boot, []}},
{post, routing_ready}]}).
--rabbit_boot_step({tcp_listeners,
- [{description, "TCP listeners"},
- {mfa, {?MODULE, boot_tcp_listeners, []}},
+-rabbit_boot_step({networking,
+ [{mfa, {rabbit_networking, boot, []}},
{post, log_relay},
{pre, networking_listening}]}).
--rabbit_boot_step({ssl_listeners,
- [{description, "SSL listeners"},
- {mfa, {?MODULE, boot_ssl_listeners, []}},
- {post, tcp_listeners},
- {pre, networking_listening}]}).
-
-rabbit_boot_step({networking_listening,
[{description, "network listeners available"}]}).
@@ -313,30 +315,6 @@ boot_core_processes() ->
ok = rabbit_sup:start_child(rabbit_router),
ok = rabbit_sup:start_child(rabbit_node_monitor).
-boot_recovery() ->
- ok = maybe_insert_default_data(),
- ok = rabbit_exchange:recover(),
- ok = rabbit_amqqueue:recover().
-
-boot_tcp_listeners() ->
- ok = rabbit_networking:start(),
- {ok, TcpListeners} = application:get_env(tcp_listeners),
- [ok = rabbit_networking:start_tcp_listener(Host, Port)
- || {Host, Port} <- TcpListeners],
- ok.
-
-boot_ssl_listeners() ->
- case application:get_env(ssl_listeners) of
- {ok, []} ->
- ok;
- {ok, SslListeners} ->
- ok = rabbit_misc:start_applications([crypto, ssl]),
- {ok, SslOpts} = application:get_env(ssl_options),
- [rabbit_networking:start_ssl_listener(Host, Port, SslOpts)
- || {Host, Port} <- SslListeners],
- ok
- end.
-
%---------------------------------------------------------------------------
log_location(Type) ->
diff --git a/src/rabbit_networking.erl b/src/rabbit_networking.erl
index 3a0f9240..84658a85 100644
--- a/src/rabbit_networking.erl
+++ b/src/rabbit_networking.erl
@@ -31,7 +31,7 @@
-module(rabbit_networking).
--export([start/0, start_tcp_listener/2, start_ssl_listener/3,
+-export([boot/0, start/0, start_tcp_listener/2, start_ssl_listener/3,
stop_tcp_listener/2, on_node_down/1, active_listeners/0,
node_listeners/1, connections/0, connection_info/1,
connection_info/2, connection_info_all/0,
@@ -82,6 +82,27 @@
%%----------------------------------------------------------------------------
+boot() ->
+ ok = start(),
+ ok = boot_tcp(),
+ ok = boot_ssl().
+
+boot_tcp() ->
+ {ok, TcpListeners} = application:get_env(tcp_listeners),
+ [ok = start_tcp_listener(Host, Port) || {Host, Port} <- TcpListeners],
+ ok.
+
+boot_ssl() ->
+ case application:get_env(ssl_listeners) of
+ {ok, []} ->
+ ok;
+ {ok, SslListeners} ->
+ ok = rabbit_misc:start_applications([crypto, ssl]),
+ {ok, SslOpts} = application:get_env(ssl_options),
+ [start_ssl_listener(Host, Port, SslOpts) || {Host, Port} <- SslListeners],
+ ok
+ end.
+
start() ->
{ok,_} = supervisor:start_child(
rabbit_sup,