summaryrefslogtreecommitdiff
path: root/priv
diff options
context:
space:
mode:
authorManuel Durán Aguete <manuel@aguete.org>2013-07-08 10:44:42 +0200
committerManuel Durán Aguete <manuel@aguete.org>2013-07-19 17:29:26 +0200
commit5d4272baefbd539e4ba13e6192770933f16d45d9 (patch)
treea183c951fa129a7cfa3c83e678338ec73bd323e0 /priv
parent620c4b01c6e59d47e92ea069f8510b8cb482ebae (diff)
downloadrebar-5d4272baefbd539e4ba13e6192770933f16d45d9.tar.gz
Incorrect REMSH args when sname is used
When a node is configured with -sname in app.config or sys.config the REMSH_NAME_ARG and REMSH_REMSH_ARG arguments are incorrect due the assumption that the node name always contains '@'. To fix the bug, the script tries to find '@' and then compose the arguments acording to node name type. If in long name mode the script can't compose a correct node name exits with warning.
Diffstat (limited to 'priv')
-rwxr-xr-xpriv/templates/simplenode.runner30
1 files changed, 28 insertions, 2 deletions
diff --git a/priv/templates/simplenode.runner b/priv/templates/simplenode.runner
index c2ef258..e8abd20 100755
--- a/priv/templates/simplenode.runner
+++ b/priv/templates/simplenode.runner
@@ -85,10 +85,36 @@ fi
REMSH_TYPE=`echo $NAME_ARG | awk '{print $1}'`
REMSH_NAME=`echo $NAME_ARG | awk '{print $2}'`
+# Test if REMSH_NAME contains a @ and set REMSH_HOSTNAME_PART
+# and REMSH_NAME_PART according REMSH_TYPE
+MAYBE_FQDN_HOSTNAME=`hostname`
+HOSTNAME=`echo $MAYBE_FQDN_HOSTNAME | awk -F. '{print $1}'`
+
+REMSH_HOSTNAME_PART="$MAYBE_FQDN_HOSTNAME"
+case "$REMSH_NAME" in
+ *@*)
+ REMSH_HOSTNAME_PART=`echo $REMSH_NAME | awk -F@ '{print $2}'`
+ REMSH_NAME_PART=`echo $REMSH_NAME | awk -F@ '{print $1}'`
+ ;;
+ *)
+ REMSH_NAME_PART="$REMSH_NAME"
+ if [ "$REMSH_TYPE" = "-sname" ]; then
+ REMSH_HOSTNAME_PART= "$HOSTNAME"
+ else
+ # -name type, check if `hostname` is fqdn
+ if [ "$MAYBE_FQDN_HOSTNAME" = "$HOSTNAME" ]; then
+ echo "Hostname must be a fqdn domain name when node is configured with long names"
+ echo "and the full node name isn't configured in vm.args"
+ exit 1
+ fi
+ fi
+ ;;
+esac
+
# Note the `date +%s`, used to allow multiple remsh to the same node
# transparently
-REMSH_NAME_ARG="$REMSH_TYPE remsh`date +%s`@`echo $REMSH_NAME | awk -F@ '{print $2}'`"
-REMSH_REMSH_ARG="-remsh $REMSH_NAME"
+REMSH_NAME_ARG="$REMSH_TYPE remsh`date +%s`@$REMSH_HOSTNAME_PART"
+REMSH_REMSH_ARG="-remsh $REMSH_NAME_PART@$REMSH_HOSTNAME_PART"
# Extract the target cookie
COOKIE_ARG=`grep '^\-setcookie' $VMARGS_PATH`