From dfece697de28ffca87655d650ec06d7fc726e4fc Mon Sep 17 00:00:00 2001 From: Seb Maynard Date: Thu, 5 Feb 2015 15:02:23 +0000 Subject: [PATCH 1/3] Bump lager version to 2.1.0 --- rebar.config | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rebar.config b/rebar.config index d1f85a3..0794a5d 100644 --- a/rebar.config +++ b/rebar.config @@ -22,9 +22,9 @@ {deps_dir, "deps"}. {deps, [ - {lager, "2.0.1", + {lager, "2.1.0", {git, "git://github.com/basho/lager.git", - {tag, "2.0.1"}}} + {tag, "2.1.0"}}} ]}. {eunit_opts, [verbose, {report,{eunit_surefire,[{dir,"."}]}}]}. From 3d700aaf1daa2f727ce8899a60d7d84729a07810 Mon Sep 17 00:00:00 2001 From: Seb Maynard Date: Fri, 27 Jan 2017 12:50:09 +0000 Subject: [PATCH 2/3] lager 3.2.4 --- rebar.config | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rebar.config b/rebar.config index 0794a5d..80915ed 100644 --- a/rebar.config +++ b/rebar.config @@ -22,9 +22,9 @@ {deps_dir, "deps"}. {deps, [ - {lager, "2.1.0", - {git, "git://github.com/basho/lager.git", - {tag, "2.1.0"}}} + {lager, ".*", + {git, "git://github.com/erlang-lager/lager.git", + {tag, "3.2.4"}}} ]}. {eunit_opts, [verbose, {report,{eunit_surefire,[{dir,"."}]}}]}. From 20afd4977c07d4018bfe9d2aed19bc07244a678c Mon Sep 17 00:00:00 2001 From: Seb Maynard Date: Thu, 9 Feb 2017 16:09:26 +0000 Subject: [PATCH 3/3] more resilient get_supervisor_state that doesn't rely on the order of return values from sys:get_status --- src/superman.erl | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/src/superman.erl b/src/superman.erl index c857da6..06b3664 100644 --- a/src/superman.erl +++ b/src/superman.erl @@ -45,7 +45,7 @@ reconfigure_supervisor(SupName, Specs) -> {Deleted, New, Changed, _Unchanged} = extract_children(SupName, Specs), reconfigure_supervisor_ll(SupName, Deleted, New, Changed, 0). - + start_children(Module, Config) -> start_children(Module, Module, Config). @@ -76,11 +76,18 @@ reconfigure_supervisor_tree(SupName, Specs) -> %%%====================================================== get_supervisor_state(SupPid) -> - {status, _Pid, {module, _Mod}, + {status, _Pid, {module, _Mod}, [_PDict, _SysState, _Parent, _Dbg, Misc]} = sys:get_status(SupPid), - case Misc of - [_Name, State1, _Type, _Time] -> State1; - [_Header, _Data, {data, [{"State", State2}]}] -> State2 + + %% loop through all data keys in the misc status + case lists:filtermap(fun(Data) -> + case proplists:get_value("State", Data) of + undefined -> false; + State -> {true, State} + end + end, proplists:get_all_values(data, Misc)) of + [] -> undefined; + [State] -> State end. reconfigure_supervisor_ll(SupName, Deleted, New, Changed, N) -> @@ -287,6 +294,6 @@ change_specs(Specs) -> lists:map(fun change_spec/1, Specs). change_spec({Id, MFA, _RestartType, Timeout, Type, Modules}) -> - {Id, MFA, some_type, Timeout, Type, Modules}. - + {Id, MFA, some_type, Timeout, Type, Modules}. + -endif.