diff options
author | Tony Garnock-Jones <tonyg@lshift.net> | 2009-12-17 18:55:22 +0000 |
---|---|---|
committer | Tony Garnock-Jones <tonyg@lshift.net> | 2009-12-17 18:55:22 +0000 |
commit | e7349b9bdac9789dad02a17c167f49e5398453c6 (patch) | |
tree | 1b2361270777a8c5db886a7a6b973145f852e68f | |
parent | 21430df7fc48e1328f787bd26d62b095c6480fa1 (diff) | |
download | rabbitmq-server-e7349b9bdac9789dad02a17c167f49e5398453c6.tar.gz |
Refactor boot_recovery, boot_tcp_listeners and boot_ssl_listeners
-rw-r--r-- | src/rabbit.erl | 56 | ||||
-rw-r--r-- | src/rabbit_networking.erl | 23 |
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, |