| #!/bin/sh |
| |
| # |
| # Licensed to the Apache Software Foundation (ASF) under one |
| # or more contributor license agreements. See the NOTICE file |
| # distributed with this work for additional information |
| # regarding copyright ownership. The ASF licenses this file |
| # to you under the Apache License, Version 2.0 (the |
| # "License"); you may not use this file except in compliance |
| # with the License. You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, |
| # software distributed under the License is distributed on an |
| # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| # KIND, either express or implied. See the License for the |
| # specific language governing permissions and limitations |
| # under the License. |
| # |
| |
| # 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 |