From bf34727c720ba722153225ff8b7bcdefc463b487 Mon Sep 17 00:00:00 2001 From: Evax Software Date: Tue, 15 Oct 2013 17:04:40 +0200 Subject: Ensure scripts are updated on upgrade for cold starts --- src/rlx_prv_assembler.erl | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/rlx_prv_assembler.erl b/src/rlx_prv_assembler.erl index 5389fde..09b3281 100644 --- a/src/rlx_prv_assembler.erl +++ b/src/rlx_prv_assembler.erl @@ -972,7 +972,7 @@ main([RelName, NodeName, Cookie, VersionArg]) -> [ReleasePackage], ?TIMEOUT) of {ok, Vsn} -> ?INFO(\"Unpacked successfully: ~p~n\", [Vsn]), - install_and_permafy(TargetNode, Vsn); + install_and_permafy(TargetNode, RelName, Vsn); {error, UnpackReason} -> print_existing_versions(TargetNode), ?INFO(\"Unpack failed: ~p~n\",[UnpackReason]), @@ -981,13 +981,13 @@ main([RelName, NodeName, Cookie, VersionArg]) -> old -> %% no need to unpack, has been installed previously ?INFO(\"Release ~s is marked old, switching to it.~n\",[Version]), - install_and_permafy(TargetNode, Version); + install_and_permafy(TargetNode, RelName, Version); unpacked -> ?INFO(\"Release ~s is already unpacked, now installing.~n\",[Version]), - install_and_permafy(TargetNode, Version); + install_and_permafy(TargetNode, RelName, Version); current -> %% installed and in-use, just needs to be permanent ?INFO(\"Release ~s is already installed and current. Making permanent.~n\",[Version]), - permafy(TargetNode, Version); + permafy(TargetNode, RelName, Version); permanent -> ?INFO(\"Release ~s is already installed, and set permanent.~n\",[Version]) end; @@ -997,7 +997,7 @@ main(_) -> parse_version(V) when is_list(V) -> hd(string:tokens(V,\"/\")). -install_and_permafy(TargetNode, Vsn) -> +install_and_permafy(TargetNode, RelName, Vsn) -> case rpc:call(TargetNode, release_handler, check_install_release, [Vsn], ?TIMEOUT) of {ok, _OtherVsn, _Desc} -> ok; @@ -1008,7 +1008,7 @@ install_and_permafy(TargetNode, Vsn) -> case rpc:call(TargetNode, release_handler, install_release, [Vsn], ?TIMEOUT) of {ok, _, _} -> ?INFO(\"Installed Release: ~s~n\", [Vsn]), - permafy(TargetNode, Vsn), + permafy(TargetNode, RelName, Vsn), ok; {error, {no_such_release, Vsn}} -> VerList = @@ -1019,8 +1019,10 @@ install_and_permafy(TargetNode, Vsn) -> erlang:halt(2) end. -permafy(TargetNode, Vsn) -> +permafy(TargetNode, RelName, Vsn) -> ok = rpc:call(TargetNode, release_handler, make_permanent, [Vsn], ?TIMEOUT), + file:copy(filename:join([\"bin\", RelName++\"-\"++Vsn]), + filename:join([\"bin\", RelName])), ?INFO(\"Made release permanent: ~p~n\", [Vsn]), ok. -- cgit v1.2.3