diff --git a/cts/cluster_test b/cts/cluster_test index 27be87bad4..9575f5d9b0 100755 --- a/cts/cluster_test +++ b/cts/cluster_test @@ -1,184 +1,184 @@ #!/bin/bash anyAsked=0 if [ -e ~/.cts ]; then . ~/.cts fi CTS_master=`uname -n` CTS_numtests=$1 if [ "x$CTS_master" = "x" ]; then anyAsked=1 - printf "This script should only be executed on the test master.\n" - printf "The test master will remotely execute the actions required by the tests and should not be part of the cluster itself.\n" + echo "This script should only be executed on the test master." + echo "The test master will remotely execute the actions required by the tests and should not be part of the cluster itself." read -p "Is this host intended to be the test master? (yN)" CTS_master if [ "x$CTS_master" != "xy" ]; then - printf "This script must be executed on the test master\n" + echo "This script must be executed on the test master" exit 1 fi fi if [ "x$CTS_node_list" = "x" ]; then anyAsked=1 read -p "Please list your cluster nodes (eg. node1 node2 node3): " CTS_node_list else - printf "Beginning test of cluster: $CTS_node_list\n" + echo "Beginning test of cluster: $CTS_node_list" fi if [ "x$CTS_stack" = "x" ]; then anyAsked=1 read -p "Which cluster stack are you using? ([corosync], openais, or heartbeat): " CTS_stack if [ -z $CTS_stack ]; then CTS_stack=corosync fi else - printf "Using the $CTS_stack cluster stack\n" + echo "Using the $CTS_stack cluster stack" fi tmp=`echo ${CTS_node_list} | sed s/$HOSTNAME//` if [ "x${CTS_node_list}" != "x${tmp}" ]; then - printf "This script must be executed on the test master and the test master cannot be part of the cluster\n" + echo "This script must be executed on the test master and the test master cannot be part of the cluster" exit 1 fi printf "+ Bootstraping ssh... " if [ -z $SSH_AUTH_SOCK ]; then printf "\n + Initializing SSH " agent_tmp=/tmp/.$$.ssh ssh-agent > $agent_tmp . $agent_tmp rm $agent_tmp - printf " + Adding identities...\n" + echo " + Adding identities..." ssh-add rc=$? if [ $rc != 0 ]; then - printf " -- No identities added\n" + echo " -- No identities added" printf "\nThe ability to open key-based 'ssh' connections (as the user 'root') is required to use CTS.\n" read -p " - Do you want this program to help you create one? (yN)" auto_fix if [ "x$auto_fix" = "xy" ]; then ssh-keygen -t dsa ssh-add else - printf "Please run 'ssh-keygen -t dsa' to create a new key\n" + echo "Please run 'ssh-keygen -t dsa' to create a new key" exit 1 fi fi else - printf "OK\n" + echo "OK" fi test_ok=1 printf "+ Testing ssh configuration... " for n in $CTS_node_list; do ssh -l root -o PasswordAuthentication=no -o ConnectTimeout=5 $n /bin/true rc=$? if [ $rc != 0 ]; then printf "\n - connection to $n failed" test_ok=0 fi done if [ $test_ok = 0 ]; then printf "\n\nThe ability to open key-based 'ssh' connections (as the user 'root') is required to use CTS.\n" printf " Please install one of your SSH public keys to root's account on all cluster nodes\n" # todo - look for identities and guide the installation of one exit 1 fi -printf "OK\n" +echo "OK" if [ -z $CTS_logfile ]; then anyAsked=1 read -p " + Where does/should syslog store logs from remote hosts? (/var/log/messages) " CTS_logfile if [ "x$CTS_logfile" = "x" ]; then CTS_logfile=/var/log/messages fi fi if [ ! -e $CTS_logfile ]; then - printf "$CTS_logfile doesn't exist\n" + echo "$CTS_logfile doesn't exist" exit 1 fi if [ -z $CTS_logfacility ]; then anyAsked=1 read -p " + Which log facility does the cluster use? (daemon) " CTS_logfacility if [ "x$CTS_logfacility" = "x" ]; then CTS_logfacility=daemon fi fi if [ -z $CTS_boot ]; then read -p "+ Is the cluster software started automatically when a node boots? [yN] " CTS_boot if [ -z $CTS_boot ]; then CTS_boot=0 else case $CTS_boot in 1|y|Y) CTS_boot=1;; *) CTS_boot=0;; esac fi fi if [ -z $CTS_numtests ]; then read -p "+ How many test iterations should be performed? (500) " CTS_numtests if [ -z $CTS_numtests ]; then CTS_numtests=500 fi fi if [ -z $CTS_asked_once ]; then anyAsked=1 read -p "+ What type of STONITH agent do you use? (none) " CTS_stonith if [ "x$CTS_stonith" != "x" ]; then read -p "+ List any STONITH agent parameters (eq. device_host=switch.power.com): " CTS_stonith_args fi if [ -z $CTS_adv ]; then read -p "+ (Advanced) Any extra CTS parameters? (none) " CTS_adv fi fi if [ $anyAsked = 1 ]; then read -p "+ Save values to ~/.cts for next time? (yN) " doSave fi if [ "x$doSave" = "xy" ]; then echo "# CTS Test data" > ~/.cts echo CTS_master=\"$CTS_master\" >> ~/.cts echo CTS_stack=\"$CTS_stack\" >> ~/.cts echo CTS_node_list=\"$CTS_node_list\" >> ~/.cts echo CTS_logfile=\"$CTS_logfile\" >> ~/.cts echo CTS_logport=$CTS_logport >> ~/.cts echo CTS_logfacility=$CTS_logfacility >> ~/.cts echo CTS_asked_once=1 >> ~/.cts echo CTS_adv=\"$CTS_adv\" >> ~/.cts echo CTS_stonith=$CTS_stonith >> ~/.cts echo CTS_stonith_args=\"$CTS_stonith_args\" >> ~/.cts echo CTS_boot=\"$CTS_boot\" >> ~/.cts fi cts_extra="" if [ "x$CTS_stonith" != "x" ]; then cts_extra="$cts_extra --stonith-type $CTS_stonith" if [ "x$CTS_stonith_args" != "x" ]; then cts_extra="$cts_extra --stonitha-params \"$CTS_stonith_args\"" fi else cts_extra="$cts_extra --stonith 0" - printf " - Testing a cluster without STONITH is like a blunt pencil... pointless\n" + echo " - Testing a cluster without STONITH is like a blunt pencil... pointless" fi printf "\nAll set to go for $CTS_numtests iterations!\n" if [ $anyAsked = 0 ]; then - printf "+ To use a different configuration, remove ~/.cts and re-run cts (or edit it manually).\n" + echo "+ To use a different configuration, remove ~/.cts and re-run cts (or edit it manually)." fi echo Now paste the following command into this shell: echo python "`dirname "$0"`"/CTSlab.py -L $CTS_logfile --syslog-facility $CTS_logfacility --no-unsafe-tests --stack $CTS_stack $CTS_adv --at-boot $CTS_boot $cts_extra $CTS_numtests --nodes \"$CTS_node_list\"