Handle vm.args properly while building upgrades

This patch corrects the vm.args behavior while building upgrade tarballs
by copying the file from the release into the upgrade. Additionally it
patches the dummy runner script in the upgrade test project to work
properly.
This commit is contained in:
joewilliams 2011-10-05 20:17:43 -07:00
parent 30d1cdb31b
commit b7bcf5528b
2 changed files with 28 additions and 26 deletions

View file

@ -151,7 +151,10 @@ boot_files(TargetDir, Ver, Name) ->
filename:join([".", ?TMP, "releases", Ver, Name ++ ".boot"])), filename:join([".", ?TMP, "releases", Ver, Name ++ ".boot"])),
{ok, _} = file:copy( {ok, _} = file:copy(
filename:join([TargetDir, "releases", Ver, "start_clean.boot"]), filename:join([TargetDir, "releases", Ver, "start_clean.boot"]),
filename:join([".", ?TMP, "releases", Ver, "start_clean.boot"])). filename:join([".", ?TMP, "releases", Ver, "start_clean.boot"])),
{ok, _} = file:copy(
filename:join([TargetDir, "releases", Ver, "vm.args"]),
filename:join([".", ?TMP, "releases", Ver, "vm.args"])).
make_tar(NameVer) -> make_tar(NameVer) ->
Filename = NameVer ++ ".tar.gz", Filename = NameVer ++ ".tar.gz",

View file

@ -21,21 +21,6 @@ cd $RUNNER_BASE_DIR
# Make sure log directory exists # Make sure log directory exists
mkdir -p $RUNNER_LOG_DIR mkdir -p $RUNNER_LOG_DIR
# Extract the target node name from node.args
NAME_ARG=`egrep '^-s?name' $RUNNER_ETC_DIR/vm.args`
if [ -z "$NAME_ARG" ]; then
echo "vm.args needs to have either -name or -sname parameter."
exit 1
fi
# Extract the target cookie
COOKIE_ARG=`grep '^-setcookie' $RUNNER_ETC_DIR/vm.args`
if [ -z "$COOKIE_ARG" ]; then
echo "vm.args needs to have a -setcookie parameter."
exit 1
fi
# Identify the script name # Identify the script name
SCRIPT=`basename $0` SCRIPT=`basename $0`
@ -44,11 +29,12 @@ START_ERL=`cat $RUNNER_BASE_DIR/releases/start_erl.data`
ERTS_VSN=${START_ERL% *} ERTS_VSN=${START_ERL% *}
APP_VSN=${START_ERL#* } APP_VSN=${START_ERL#* }
# Add ERTS bin dir to our path # Use releases/VSN/vm.args if it exists otherwise use etc/vm.args
ERTS_PATH=$RUNNER_BASE_DIR/erts-$ERTS_VSN/bin if [ -e "$RUNNER_BASE_DIR/releases/$APP_VSN/vm.args" ]; then
VMARGS_PATH="$RUNNER_BASE_DIR/releases/$APP_VSN/vm.args"
# Setup command to control the node else
NODETOOL="$ERTS_PATH/escript $ERTS_PATH/nodetool $NAME_ARG $COOKIE_ARG" VMARGS_PATH="$RUNNER_ETC_DIR/vm.args"
fi
# Use releases/VSN/sys.config if it exists otherwise use etc/app.config # Use releases/VSN/sys.config if it exists otherwise use etc/app.config
if [ -e "$RUNNER_BASE_DIR/releases/$APP_VSN/sys.config" ]; then if [ -e "$RUNNER_BASE_DIR/releases/$APP_VSN/sys.config" ]; then
@ -57,13 +43,26 @@ else
CONFIG_PATH="$RUNNER_ETC_DIR/app.config" CONFIG_PATH="$RUNNER_ETC_DIR/app.config"
fi fi
# Use releases/VSN/vm.args if it exists otherwise use etc/vm.args # Extract the target node name from node.args
if [-e "$RUNNER_BASE_DIR/releases/$APP_VSN/vm.args" ]; then NAME_ARG=`egrep '^-s?name' $VMARGS_PATH`
VMARGS_PATH="$RUNNER_BASE_DIR/releases/$APP_VSN/vm.args" if [ -z "$NAME_ARG" ]; then
else echo "vm.args needs to have either -name or -sname parameter."
VMARGS_PATH="$RUNNER_ETC_DIR/vm.args" exit 1
fi fi
# Extract the target cookie
COOKIE_ARG=`grep '^-setcookie' $VMARGS_PATH`
if [ -z "$COOKIE_ARG" ]; then
echo "vm.args needs to have a -setcookie parameter."
exit 1
fi
# Add ERTS bin dir to our path
ERTS_PATH=$RUNNER_BASE_DIR/erts-$ERTS_VSN/bin
# Setup command to control the node
NODETOOL="$ERTS_PATH/escript $ERTS_PATH/nodetool $NAME_ARG $COOKIE_ARG"
# Check the first argument for instructions # Check the first argument for instructions
case "$1" in case "$1" in
start) start)