| #!/bin/sh |
| # Start a cluster |
| # |
| # Arguments: NAME HOST [host...] |
| # Start a cluster called NAME with N nodes running on the given HOSTs |
| # repeat the host name to run multiple brokers on one host. Use dynamic |
| # ports. |
| # |
| # Log files, data directories and hosts/ports files are all stored under |
| # $HOME/cluster_test/$NAME |
| # |
| |
| source config.sh |
| |
| CLUSTER_NAME=`date +"${USER}_%F_%T"` |
| HOSTS=($BROKER_HOSTS) |
| for ((i = 0; i < ${#HOSTS[*]}; ++i)) ; do |
| host=${HOSTS[$i]} |
| datadir=$CLUSTER_HOME/broker$i |
| log=$datadir/qpidd.log |
| ssh $host "rm -rf $datadir; mkdir -p $datadir" || { |
| echo "ERROR: can't make data dir $datadir"; exit 1 |
| } |
| port=`ssh $host "echo $QPIDD -dp0 --cluster-name=$CLUSTER_NAME \ |
| --data-dir=$datadir \ |
| --log-to-file=$log --log-prefix=broker$i \ |
| $QPIDD_OPTS | newgrp ais"` || { |
| error "ERROR: can't start broker $i on $host"; exit 1; |
| } |
| PORTS="$PORTS $port" |
| done |
| |
| echo "$BROKER_HOSTS" > $CLUSTER_HOME/hosts |
| echo "$PORTS" > $CLUSTER_HOME/ports |
| |
| `dirname $0`/cluster_check $NAME |