CORD-272 exposed micro services ports on head node and add simply cord command scripts
Change-Id: I43755761c983707f42b1955819ac6234896e55d9
diff --git a/roles/head-node/files/commands/cord b/roles/head-node/files/commands/cord
new file mode 100755
index 0000000..0d63dc8
--- /dev/null
+++ b/roles/head-node/files/commands/cord
@@ -0,0 +1,119 @@
+#!/bin/bash
+
+PROG=$(basename $0)
+
+usage() {
+ echo "$PROG [-s|--server <head-node-ip>] [-p|--port <head-node-ssh-port>] [-u|--user <head-node-ssh-user>] <command> <options>"
+
+ # Find all files in path that match the pattern "cord-*"
+ ALL_FILES=
+ for DIR in $(echo $PATH | sed -e 's/:/ /g'); do
+ ALL_FILES="$ALL_FILES $(/bin/ls -1 $DIR/cord-* 2> /dev/null)"
+ done
+
+ # Filter that down to only those files that we can "execute"
+ COMMANDS=
+ for CMD in $ALL_FILES; do
+ test -x "$CMD" && COMMANDS="$COMMANDS $CMD"
+ done
+
+ # Process comands for usage information
+ # Output all commands and their help information to file
+ # so it can be sorted. The format will be:
+ #
+ # command usage_message
+
+ # Find longest command name for table spacing
+ MAX=0
+ for CMD in $COMMANDS; do
+ LEN=$(echo $(basename $CMD | sed -e 's/^[^-]*-//g') | wc -c)
+ test $LEN -gt $MAX && MAX=$LEN
+ done
+
+ FILE=$(mktemp)
+ # Process all the commands into the usage file
+ for CMD in $COMMANDS; do
+ NAME=$(basename $CMD | sed -e 's/^[^-]*-//g')
+ DESC=$(grep "^#D " $CMD | head -1 | sed -e 's/^#D\w*//g' )
+ printf " %-${MAX}s %s\n" $NAME "$DESC" >> $FILE
+ done
+ sort -u $FILE
+
+ # clean up
+ rm -f $FILE
+ COMMANDS=$(echo $COMMANDS | sed -e 's/w+/ /g')
+}
+
+if [ $# -eq 0 ]; then
+ usage
+ exit 1
+fi
+
+SHORT=
+while [ "$SHORT x" == " x" -a $# -gt 0 ]; do
+ case $1 in
+ help|-h|--help)
+ usage
+ exit 0
+ ;;
+ -s|--server)
+ shift
+ if [ $# -eq 0 ]; then
+ >&2 echo "Server parameter must be specified with '--server' option"
+ usage
+ exit 1
+ fi
+ export CORD_HEAD_NODE="$1"
+ ;;
+ -u|--user)
+ shift
+ if [ $# -eq 0 ]; then
+ >&2 echo "User parameter must be specified with '--user' option"
+ usage
+ exit 1
+ fi
+ export CORD_HEAD_NODE_USER="$1"
+ ;;
+ -p|--port)
+ shift
+ if [ $# -eq 0 ]; then
+ >&2 echo "Port parameter must be specified with '--port' option"
+ usage
+ exit 1
+ fi
+ export CORD_HEAD_NODE_PORT="$1"
+ ;;
+ -*)
+ >&2 echo "Unknown command line option '$1'."
+ usage
+ exit 1
+ ;;
+ *)
+ SHORT=$1
+ ;;
+ esac
+ shift
+done
+
+if [ "$SHORT x" == " x" ]; then
+ >&2 echo "CORD command must be specified"
+ usage
+ exit 1
+fi
+
+COMMAND="cord-$SHORT"
+FULL_COMMAND=$(which $COMMAND)
+
+if [ ! -x "$FULL_COMMAND" ]; then
+ >&2 echo "Unknown command specified '$SHORT'."
+ usage
+ exit 1
+fi
+
+test -z $CORD_HEAD_NODE && export CORD_HEAD_NODE="localhost"
+test -z $CORD_HEAD_NODE_USER && export CORD_HEAD_NODE_USER="ubuntu"
+test -z $CORD_HEAD_NODE_PORT && export CORD_HEAD_NODE_PORT="22"
+
+exec "$FULL_COMMAND" $*
+
+