diff options
author | unknown <joreland@mysql.com> | 2005-05-06 16:15:57 +0200 |
---|---|---|
committer | unknown <joreland@mysql.com> | 2005-05-06 16:15:57 +0200 |
commit | 8ebcfd51fa6e65a8c701b10feba50b77b1f6d97b (patch) | |
tree | 0c9802401355236035195000f4a4abe087d9c59f /ndb/test | |
parent | e651102dfc374e28055f419899c88303ded4d087 (diff) | |
parent | 2e73854c584d0eef93a9a1efc3608018d26b92a3 (diff) | |
download | mariadb-git-8ebcfd51fa6e65a8c701b10feba50b77b1f6d97b.tar.gz |
Merge mysql.com:/home/jonas/src/mysql-4.1
into mysql.com:/home/jonas/src/mysql-5.0
Diffstat (limited to 'ndb/test')
-rwxr-xr-x | ndb/test/run-test/make-config.sh | 520 | ||||
-rwxr-xr-x | ndb/test/run-test/ndb-autotest.sh | 7 |
2 files changed, 80 insertions, 447 deletions
diff --git a/ndb/test/run-test/make-config.sh b/ndb/test/run-test/make-config.sh index 5394b0654d4..6711eda75bf 100755 --- a/ndb/test/run-test/make-config.sh +++ b/ndb/test/run-test/make-config.sh @@ -1,465 +1,95 @@ #!/bin/sh -# NAME -# make-config.sh - Makes a config file for mgm server -# -# SYNOPSIS -# make-config.sh [ -t <template> ] [-s] [ -m <machine conf> [ -d <directory> ] -# -# DESCRIPTION -# -# OPTIONS -# -# EXAMPLES -# -# -# ENVIRONMENT -# NDB_PROJ_HOME Home dir for ndb -# -# FILES -# $NDB_PROJ_HOME/lib/funcs.sh general shell script functions -# -# -# SEE ALSO -# -# DIAGNOSTICTS -# -# VERSION -# 1.0 -# 1.1 021112 epesson: Adapted for new mgmt server in NDB 2.00 -# -# AUTHOR -# Jonas Oreland -# -# CHANGES -# also generate ndbnet config -# -progname=`basename $0` -synopsis="make-config.sh [ -t template ] [ -m <machine conf> ] [ -d <dst directory> ][-s] [<mgm host>]" +baseport="" +basedir="" +proc_no=1 +node_id=1 -#: ${NDB_PROJ_HOME:?} # If undefined, exit with error message +dir_file=/tmp/dirs.$$ +config_file=/tmp/config.$$ +cluster_file=/tmp/cluster.$$ -#: ${NDB_LOCAL_BUILD_OPTIONS:=--} # If undef, set to --. Keeps getopts happy. - # You may have to experiment a bit - # to get quoting right (if you need it). - - -#. $NDB_PROJ_HOME/lib/funcs.sh # Load some good stuff -trace() { - echo $* 1>&2 -} -syndie() { - trace $* - exit 1 -} - -# defaults for options related variables -# - -mgm_nodes=0 -ndb_nodes=0 -api_nodes=0 -uniq_id=$$.$$ -own_host=`hostname` -dst_dir="" -template=/dev/null -machines=/dev/null -verbose=yes - -# used if error when parsing the options environment variable -# -env_opterr="options environment variable: <<$options>>" - -# Option parsing, for the options variable as well as the command line. -# -# We want to be able to set options in an environment variable, -# as well as on the command line. In order not to have to repeat -# the same getopts information twice, we loop two times over the -# getopts while loop. The first time, we process options from -# the options environment variable, the second time we process -# options from the command line. -# -# The things to change are the actual options and what they do. -# -add_node(){ - no=$1; shift +add_procs(){ type=$1; shift - echo $* | awk 'BEGIN{FS=":";}{h=$1; if(h=="localhost") h="'$own_host'"; - printf("%s_%d_host=%s\n", "'$type'", "'$no'", h); - if(NF>1 && $2!="") printf("%s_%d_port=%d\n", - "'$type'", "'$no'", $2); - if(NF>2 && $3!="") printf("%s_%d_dir=%s\n", - "'$type'", "'$no'", $3); - }' -} - - -add_mgm_node(){ - mgm_nodes=`cat /tmp/mgm_nodes.$uniq_id | grep "_host=" | wc -l` - mgm_nodes=`expr $mgm_nodes + 1` - while [ $# -gt 0 ] - do - add_node ${mgm_nodes} mgm_node $1 >> /tmp/mgm_nodes.$uniq_id - shift - mgm_nodes=`expr $mgm_nodes + 1` - done -} - -add_ndb_node(){ - ndb_nodes=`cat /tmp/ndb_nodes.$uniq_id | grep "_host=" | wc -l` - ndb_nodes=`expr $ndb_nodes + 1` - while [ $# -gt 0 ] - do - add_node ${ndb_nodes} ndb_node $1 >> /tmp/ndb_nodes.$uniq_id - shift - ndb_nodes=`expr $ndb_nodes + 1` - done -} - -add_api_node(){ - api_nodes=`cat /tmp/api_nodes.$uniq_id | grep "_host=" |wc -l` - api_nodes=`expr $api_nodes + 1` - while [ $# -gt 0 ] - do - add_node ${api_nodes} api_node $1 >> /tmp/api_nodes.$uniq_id - shift - api_nodes=`expr $api_nodes + 1` - done + while [ $# -ne 0 ] + do + add_proc $type $1 + shift + done } -rm -rf /tmp/mgm_nodes.$uniq_id ; touch /tmp/mgm_nodes.$uniq_id -rm -rf /tmp/ndb_nodes.$uniq_id ; touch /tmp/ndb_nodes.$uniq_id -rm -rf /tmp/api_nodes.$uniq_id ; touch /tmp/api_nodes.$uniq_id - -for optstring in "$options" "" # 1. options variable 2. cmd line -do - - while getopts d:m:t:n:o:a:b:p:s i $optstring # optstring empty => no arg => cmd line - do - case $i in - - q) verbose="";; # echo important things - t) template=$OPTARG;; # Template - d) dst_dir=$OPTARG;; # Destination directory - m) machines=$OPTARG;; # Machine configuration - s) mgm_start=yes;; # Make mgm start script - \?) syndie $env_opterr;; # print synopsis and exit - +add_proc (){ + dir="" + conf="" + case $type in + mgm) + dir="ndb_mgmd" + conf="[ndb_mgmd]\nId: $node_id\nHostName: $2\n" + node_id=`expr $node_id + 1` + ;; + api) + dir="ndb_api" + conf="[api]\nId: $node_id\nHostName: $2\n" + node_id=`expr $node_id + 1` + ;; + ndb) + dir="ndb" + conf="[ndbd]\nId: $node_id\nHostName: $2\n" + node_id=`expr $node_id + 1` + ;; + mysqld) + dir="mysqld" + conf="[mysqld]\nId: $node_id\nHostName: $2\n" + node_id=`expr $node_id + 1` + ;; + mysql) + dir="mysql" + ;; esac - done - - [ -n "$optstring" ] && OPTIND=1 # Reset for round 2, cmdline options - - env_opterr= # Round 2 should not use the value - -done -shift `expr $OPTIND - 1` - -if [ -z "$dst_dir" ] -then - verbose= -fi - -skip(){ - no=$1; shift - shift $no - echo $* + dir="$proc_no.$dir" + proc_no=`expr $proc_no + 1` + echo -e $dir >> $dir_file + if [ "$conf" ] + then + echo -e $conf >> $config_file + fi } -# --- option parsing done --- -grep "^ndb: " $machines | while read node -do - node=`skip 1 $node` - add_ndb_node $node -done -grep "^api: " $machines | while read node +cnf=/dev/null +cat $1 | while read line do - node=`skip 1 $node` - add_api_node $node -done - -grep "^mgm: " $machines | while read node -do - node=`skip 1 $node` - add_mgm_node $node + case $line in + baseport:*) baseport=`echo $line | sed 's/baseport[ ]*:[ ]*//g'`;; + basedir:*) basedir=`echo $line | sed 's/basedir[ ]*:[ ]*//g'`;; + mgm:*) add_procs mgm `echo $line | sed 's/mgm[ ]*:[ ]*//g'`;; + api:*) add_procs api `echo $line | sed 's/api[ ]*:[ ]*//g'`;; + ndb:*) add_procs ndb `echo $line | sed 's/ndb[ ]*:[ ]*//g'`;; + mysqld:*) add_procs mysqld `echo $line | sed 's/mysqld[ ]*:[ ]*//g'`;; + mysql:*) add_procs mysql `echo $line | sed 's/mysql[ ]*:[ ]*//g'`;; + "-- cluster config") + if [ "$cnf" = "/dev/null" ] + then + cnf=$cluster_file + else + cnf=/dev/null + fi + ;; + *) echo $line >> $cnf + esac done -tmp=`grep "^baseport: " $machines | tail -1 | cut -d ":" -f 2` -if [ "$tmp" ] -then - baseport=`echo $tmp` -else - syndie "Unable to find baseport" -fi - -trim(){ - echo $* -} -tmp=`grep "^basedir: " $machines | tail -1 | cut -d ":" -f 2` -if [ "$tmp" ] -then - basedir=`trim $tmp` -fi - -# -- Load enviroment -- -ndb_nodes=`cat /tmp/ndb_nodes.$uniq_id | grep "_host=" | wc -l` -api_nodes=`cat /tmp/api_nodes.$uniq_id | grep "_host=" | wc -l` -mgm_nodes=`cat /tmp/mgm_nodes.$uniq_id | grep "_host=" | wc -l` -. /tmp/ndb_nodes.$uniq_id -. /tmp/api_nodes.$uniq_id -. /tmp/mgm_nodes.$uniq_id -rm -f /tmp/ndb_nodes.$uniq_id /tmp/api_nodes.$uniq_id /tmp/mgm_nodes.$uniq_id - -# -- Verify -trace "Verifying arguments" - -if [ ! -r $template ] -then - syndie "Unable to read template file: $template" -fi - -if [ $ndb_nodes -le 0 ] -then - syndie "No ndb nodes specified" -fi - -if [ $api_nodes -le 0 ] -then - syndie "No api nodes specified" -fi - -if [ $mgm_nodes -gt 1 ] -then - syndie "More than one mgm node specified" -fi - -if [ $mgm_nodes -eq 0 ] -then - trace "No managment server specified using `hostname`" - mgm_nodes=1 - mgm_node_1=`hostname` -fi +cat $dir_file | xargs mkdir -p -if [ -n "$dst_dir" ] -then - mkdir -p $dst_dir - if [ ! -d $dst_dir ] +if [ -f $cluster_file ] then - syndie "Unable to create dst dir: $dst_dir" - fi - DST=/tmp/$uniq_id + cat $cluster_file $config_file >> /tmp/config2.$$ + mv /tmp/config2.$$ $config_file fi -# --- option verifying done --- - -# Find uniq computers -i=1 -while [ $i -le $mgm_nodes ] -do - echo `eval echo "\$"mgm_node_${i}_host` >> /tmp/hosts.$uniq_id - i=`expr $i + 1` -done - -i=1 -while [ $i -le $ndb_nodes ] -do - echo `eval echo "\$"ndb_node_${i}_host` >> /tmp/hosts.$uniq_id - i=`expr $i + 1` -done - -i=1 -while [ $i -le $api_nodes ] -do - echo `eval echo "\$"api_node_${i}_host` >> /tmp/hosts.$uniq_id - i=`expr $i + 1` -done - -sort -u -o /tmp/hosts.$uniq_id /tmp/hosts.$uniq_id - -get_computer_id(){ - grep -w -n $1 /tmp/hosts.$uniq_id | cut -d ":" -f 1 -} - -get_mgm_computer_id(){ - a=`eval echo "\$"mgm_node_${1}_host` - get_computer_id $a -} - -get_ndb_computer_id(){ - a=`eval echo "\$"ndb_node_${1}_host` - get_computer_id $a -} - -get_api_computer_id(){ - a=`eval echo "\$"api_node_${1}_host` - get_computer_id $a -} - -# -- Write config files -- - -mgm_port=$baseport - -( - i=1 - #echo "COMPUTERS" - cat /tmp/hosts.$uniq_id | while read host - do - echo "[COMPUTER]" - echo "Id: $i" - echo "ByteOrder: Big" - echo "HostName: $host" - echo - i=`expr $i + 1` - done - - node_id=1 - echo - - # Mgm process - echo - echo "[MGM]" - echo "Id: $node_id" - echo "ExecuteOnComputer: `get_mgm_computer_id 1`" - echo "PortNumber: $mgm_port" - node_id=`expr $node_id + 1` - - # Ndb processes - i=1 - ndb_nodes=`trim $ndb_nodes` - while [ $i -le $ndb_nodes ] - do - echo - echo "[DB]" - echo "Id: $node_id" - echo "ExecuteOnComputer: `get_ndb_computer_id $i`" - echo "FileSystemPath: $basedir/run/node-${node_id}-fs" - i=`expr $i + 1` - node_id=`expr $node_id + 1` - done - - # API processes - i=1 - while [ $i -le $api_nodes ] - do - echo - echo "[API]" - echo "Id: $node_id" - echo "ExecuteOnComputer: `get_api_computer_id $i`" - i=`expr $i + 1` - node_id=`expr $node_id + 1` - done - - # Connections - current_port=`expr $mgm_port + 1` - echo - - # Connect Mgm with all ndb-nodes - i=1 - while [ $i -le $ndb_nodes ] - do - echo - echo "[TCP]" - echo "NodeId1: 1" - echo "NodeId2: `expr $i + 1`" - echo "PortNumber: $current_port" - i=`expr $i + 1` - current_port=`expr $current_port + 1` - done - - # Connect All ndb processes with all ndb processes - i=1 - while [ $i -le $ndb_nodes ] - do - j=`expr $i + 1` - while [ $j -le $ndb_nodes ] - do - echo - echo "[TCP]" - echo "NodeId1: `expr $i + 1`" - echo "NodeId2: `expr $j + 1`" - echo "PortNumber: $current_port" - j=`expr $j + 1` - current_port=`expr $current_port + 1` - done - i=`expr $i + 1` - done - - # Connect all ndb-nodes with all api nodes - i=1 - while [ $i -le $ndb_nodes ] - do - j=1 - while [ $j -le $api_nodes ] - do - echo - echo "[TCP]" - echo "NodeId1: `expr $i + 1`" - echo "NodeId2: `expr $j + $ndb_nodes + 1`" - echo "PortNumber: $current_port" - j=`expr $j + 1` - current_port=`expr $current_port + 1` - done - i=`expr $i + 1` - done - echo -) > $DST - -trace "Init config file done" - -if [ -z "$dst_dir" ] -then - cat $DST - rm -f $DST - rm -f /tmp/hosts.$uniq_id - exit 0 -fi - -### -# Create Ndb.cfg files - -# nodeid=2;host=localhost:2200 - -# Mgm node -mkcfg(){ - mkdir -p $dst_dir/${2}.ndb_${1} - ( - echo "OwnProcessId $2" - echo "host://${mgm_node_1_host}:${mgm_port}" - ) > $dst_dir/${2}.ndb_${1}/Ndb.cfg - if [ $1 = "db" ] - then - mkdir $dst_dir/node-${2}-fs - fi -} - -mkcfg mgm 1 -cat $DST > $dst_dir/1.ndb_mgm/initconfig.txt - -trace "Creating Ndb.cfg for ndb nodes" - -current_node=2 -i=1 -while [ $i -le $ndb_nodes ] -do - mkcfg db ${current_node} - i=`expr $i + 1` - current_node=`expr $current_node + 1` +for i in `find . -type d -name '*.ndb_mgmd'` + do + cp $config_file $i/config.ini done -trace "Creating Ndb.cfg for api nodes" - -i=1 -while [ $i -le $api_nodes ] -do - mkcfg api ${current_node} - i=`expr $i + 1` - current_node=`expr $current_node + 1` -done - -rm -f $DST -rm -f /tmp/hosts.$uniq_id - - -exit 0 -# vim: set sw=4: +rm -f $config_file $dir_file $cluster_file diff --git a/ndb/test/run-test/ndb-autotest.sh b/ndb/test/run-test/ndb-autotest.sh index 397df97d52f..b7d66f4c4c8 100755 --- a/ndb/test/run-test/ndb-autotest.sh +++ b/ndb/test/run-test/ndb-autotest.sh @@ -1,7 +1,7 @@ #!/bin/sh save_args=$* -VERSION="ndb-autotest.sh version 1.0" +VERSION="ndb-autotest.sh version 1.01" DATE=`date '+%Y-%m-%d'` export DATE @@ -76,6 +76,7 @@ then eval $configure --prefix=$run_dir make make install + (cd $run_dir; ./bin/mysql_install_db) fi ### @@ -103,6 +104,8 @@ fi test_dir=$run_dir/mysql-test/ndb atrt=$test_dir/atrt html=$test_dir/make-html-reports.sh +mkconfig=$run_dir/mysql-test/ndb/make-config.sh + PATH=$test_dir:$PATH export PATH @@ -214,7 +217,7 @@ do run_hosts=`echo $avail_hosts| awk '{for(i=1;i<='$count';i++)print $i;}'` choose $run_dir/d.template $run_hosts > $run_dir/d.txt - choose $run_dir/1.ndb_mgmd/initconfig.template $run_hosts > $run_dir/1.ndb_mgmd/config.ini + (cd $run_dir; $mkconfig d.txt ) echo $run_hosts >> /tmp/filter_hosts.$$ cd $run_dir |