You've already forked mariadb-columnstore-engine
mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-07-30 19:23:07 +03:00
MCOL-3551 Use generic MariaDB Server paths
This branch enforces the use of generic MariaDB server paths for their binaries and data rather than custom paths. /usr/local/mariadb/columnstore is now only for columnstore with this patch. It should be noted that this removes the auto-mounting of external MariaDB UM data storage for AWS. This is also a fix for MCOL-3510 after buildbot changes are made. Also... MCOL-3552 Use columnstore.cnf to load plugins The ColumnStore plugins now load using a columnstore.cnf instead of a SQL sequence to be more in-line with MariaDB's methods.
This commit is contained in:
@ -1,475 +0,0 @@
|
||||
#!/usr/bin/expect
|
||||
#
|
||||
# $Id: buildTester.sh 421 2007-04-05 15:46:55Z dhill $
|
||||
#
|
||||
# Build, install, and test Calpont Builds
|
||||
#
|
||||
set EMAIL " "
|
||||
set USERNAME root
|
||||
set PASSWORD Calpont1
|
||||
set BUILD " "
|
||||
set SVN genii
|
||||
set RELEASE " "
|
||||
set SYSTEM noSystem
|
||||
set USER " "
|
||||
set DEBUG "-k"
|
||||
set TEST(0) " "
|
||||
set SERVER srvswdev11
|
||||
|
||||
#set SHARED "//cal6500/shared"
|
||||
set SHARED "//calweb/shared"
|
||||
|
||||
spawn -noecho /bin/bash
|
||||
|
||||
for {set i 0} {$i<[llength $argv]} {incr i} {
|
||||
set arg($i) [lindex $argv $i]
|
||||
}
|
||||
|
||||
set i 0
|
||||
while true {
|
||||
if { $i == [llength $argv] } { break }
|
||||
if { $arg($i) == "-h" } {
|
||||
send_user "\n"
|
||||
send_user "'buildTester' executes a set of DVM test on a specifed system and\n"
|
||||
send_user "send the results via email or outputs results to a log file.\n"
|
||||
send_user "It has the option of installing a released\n"
|
||||
send_user "build or generating a new build when release of 'Latest' is specified\n"
|
||||
send_user "and installing that build on the specified system.\n"
|
||||
send_user "\n"
|
||||
send_user "Usage: buildTester -b 'build-type' -r 'release' -v 'svn-branch' -s 'system' -sv 'server' -u 'database-user' -p 'password' -d -e -t 'test-names'\n"
|
||||
send_user " build-type - optional: RHEL5 or FC6\n"
|
||||
send_user " release - Required when build-type is entered: Calpont release number or 'Latest'\n"
|
||||
send_user " svn-branch - SVN Branch built againest, default to genii\n"
|
||||
send_user " system - Target install/test system\n"
|
||||
send_user " server - Target query server hostname\n"
|
||||
send_user " database-user - Database User, i.e. tpch1\n"
|
||||
send_user " password - system password, default to 'qcalpont!'\n"
|
||||
send_user " -d - Debug mode, will output additional install and test data\n"
|
||||
send_user " -e - email results\n"
|
||||
send_user " test-names - Test name list seperated by spaces (sanity tpch)\n"
|
||||
exit
|
||||
}
|
||||
if { $arg($i) == "-b" } {
|
||||
incr i
|
||||
set BUILD $arg($i)
|
||||
} elseif { $arg($i) == "-r" } {
|
||||
incr i
|
||||
set RELEASE $arg($i)
|
||||
} elseif { $arg($i) == "-s" } {
|
||||
incr i
|
||||
set SYSTEM $arg($i)
|
||||
} elseif { $arg($i) == "-v" } {
|
||||
incr i
|
||||
set SVN $arg($i)
|
||||
} elseif { $arg($i) == "-u" } {
|
||||
incr i
|
||||
set USER $arg($i)
|
||||
} elseif { $arg($i) == "-p" } {
|
||||
incr i
|
||||
set PASSWORD $arg($i)
|
||||
} elseif { $arg($i) == "-t" } {
|
||||
incr i
|
||||
if { $i == [llength $argv] } {
|
||||
puts "no Test Name entered, enter ./buildTester.sh -h for additional info"; exit -1
|
||||
}
|
||||
set TESTNUMBER 0
|
||||
while true {
|
||||
set TEST($TESTNUMBER) $arg($i)
|
||||
incr i
|
||||
incr TESTNUMBER
|
||||
if { $i == [llength $argv] } {
|
||||
incr i -1
|
||||
break
|
||||
}
|
||||
}
|
||||
} elseif { $arg($i) == "-e" } {
|
||||
if { $SYSTEM == "qaftest2" } {
|
||||
set EMAIL dhill@calpont.com,wweeks@calpont.com,dcathey@calpont.com,bpaul@calpont.com
|
||||
} elseif { $SYSTEM == "qaftest2" } {
|
||||
set EMAIL dhill@calpont.com,wweeks@calpont.com,dcathey@calpont.com,bpaul@calpont.com
|
||||
} elseif { $SYSTEM == "caldev02" } {
|
||||
set EMAIL dhill@calpont.com,wweeks@calpont.com,pleblanc@calpont.com,chao@calpont.com,xlou@calpont.com,dcathey@calpont.com
|
||||
} elseif { $SYSTEM == "srvswdev11" } {
|
||||
set EMAIL dhill@calpont.com,wweeks@calpont.com,pleblanc@calpont.com,chao@calpont.com,xlou@calpont.com,dcathey@calpont.com
|
||||
} elseif { $SYSTEM == "devint2" } {
|
||||
set EMAIL dhill@calpont.com,wweeks@calpont.com,pleblanc@calpont.com
|
||||
} elseif { $SYSTEM == "devint3" } {
|
||||
set EMAIL dhill@calpont.com,wweeks@calpont.com,pleblanc@calpont.com
|
||||
} elseif { $SYSTEM == "ss2" } {
|
||||
set EMAIL dhill@calpont.com,wweeks@calpont.com,pleblanc@calpont.com,chao@calpont.com,dcathey@calpont.com
|
||||
} elseif { $SYSTEM == "ss2ImportSSB100" } {
|
||||
set EMAIL dhill@calpont.com,wweeks@calpont.com,dcathey@calpont.com,pleblanc@calpont.com
|
||||
} elseif { $SYSTEM == "demo01" } {
|
||||
set EMAIL dhill@calpont.com,wweeks@calpont.com,pleblanc@calpont.com,chao@calpont.com
|
||||
} elseif { $SYSTEM == "qperfd01" } {
|
||||
set EMAIL dhill@calpont.com,wweeks@calpont.com,bpaul@calpont.com,dcathey@calpont.com,pleblanc@calpont.com
|
||||
} elseif { $SYSTEM == "qperfd01" } {
|
||||
set EMAIL dhill@calpont.com,wweeks@calpont.com,bpaul@calpont.com,dcathey@calpont.com
|
||||
} elseif { $SYSTEM == "qcald02a" } {
|
||||
set EMAIL dhill@calpont.com,wweeks@calpont.com,mroberts@calpont.com
|
||||
} else {
|
||||
set EMAIL dhill@calpont.com,wweeks@calpont.com
|
||||
}
|
||||
} elseif { $arg($i) == "-d" } {
|
||||
set DEBUG " "
|
||||
} elseif { $arg($i) == "-sv" } {
|
||||
incr i
|
||||
set SERVER $arg($i)
|
||||
}
|
||||
incr i
|
||||
}
|
||||
|
||||
if { $SYSTEM == "noSystem" } {
|
||||
set SYSTEM $BUILD
|
||||
}
|
||||
|
||||
#cleanup
|
||||
set RUN_LOG_FILE /tmp/$SYSTEM-$SVN.log
|
||||
exec rm -f /tmp/test.log $RUN_LOG_FILE
|
||||
# open log file
|
||||
log_file $RUN_LOG_FILE
|
||||
|
||||
#get current date
|
||||
exec date >/tmp/datesync.tmp
|
||||
exec cat /tmp/datesync.tmp
|
||||
set newtime [exec cat /tmp/datesync.tmp]
|
||||
#
|
||||
send_user "\n\n#####################################################################################################\n"
|
||||
send_user " Automated Build Tester Report $newtime\n"
|
||||
send_user " BUILD=$BUILD RELEASE=$RELEASE SVN-BRANCH=$SVN SYSTEM=$SYSTEM\n"
|
||||
send_user "\n#####################################################################################################\n\n"
|
||||
# build request
|
||||
log_user 1
|
||||
set timeout 30
|
||||
if { $BUILD != " " } {
|
||||
set timeout 6060
|
||||
|
||||
send_user "******************* Generate Build $BUILD / $RELEASE ****************************\n\n"
|
||||
|
||||
log_user 0
|
||||
send "./autoBuilder -o $BUILD -r $RELEASE -s $SVN\n"
|
||||
log_user 1
|
||||
expect {
|
||||
-re "Calpont RPM Build successfully completed" { } abort
|
||||
-re "Build Failed" { send_user "\nBuild Failed\n" ; puts [exec mail -s "$SYSTEM/$SVN Automated Build Tester Results" $EMAIL < $RUN_LOG_FILE] ; exit -1 }
|
||||
}
|
||||
#get current date
|
||||
exec date >/tmp/datesync.tmp
|
||||
exec cat /tmp/datesync.tmp
|
||||
set newtime [exec cat /tmp/datesync.tmp]
|
||||
|
||||
send_user "\nBuild successfully completed $newtime\n\n"
|
||||
}
|
||||
set timeout 30
|
||||
#expect -re "#"
|
||||
if { $DEBUG == " " } {
|
||||
log_user 1
|
||||
} else {
|
||||
log_user 0
|
||||
}
|
||||
if { $SYSTEM != $BUILD } {
|
||||
set timeout 1500
|
||||
if { $RELEASE != " " } {
|
||||
# install request
|
||||
send_user "\n\n******************* Install Build $RELEASE on $SYSTEM *******************************\n\n"
|
||||
send "./autoInstaller -s $SYSTEM -r $RELEASE -n -d\n"
|
||||
expect {
|
||||
-re "Install Successfully completed" { send_user "\nInstall successfully completed\n\n" } abort
|
||||
-re "Installation Failed" { send_user "\nInstallation Failed\n\n"
|
||||
puts [exec mail -s "$SYSTEM/$SVN Automated Build Tester Results" $EMAIL < $RUN_LOG_FILE] ; exit -1 }
|
||||
timeout { send_user "\nInstallation Failed - Timeout error\n\n"
|
||||
puts [exec mail -s "$SYSTEM/$SVN Automated Build Tester Results" $EMAIL < $RUN_LOG_FILE] ; exit -1 }
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
#get install RPM info
|
||||
#log_user 1
|
||||
#send_user "\n\n******************* Calpont RPM Install Information *******************************\n\n"
|
||||
#exec ./remote_command_test.sh $SERVER $PASSWORD "rpm -iq calpont | grep Version -A 2" " " "No such file" 60 1
|
||||
#exec ./remote_command.sh $SERVER $PASSWORD 'rpm -iq calpont' tools not 30 1
|
||||
#expect {
|
||||
# -re " " { abort }
|
||||
# -re "FAILED" {
|
||||
# puts "\nCalpont RPM not installed\n";
|
||||
# exec echo "Test Failed, Calpont RPM not installed" >> $RUN_LOG_FILE
|
||||
# puts [exec mail -s "$SYSTEM/$SVN Automated Build Tester Results" $EMAIL < $RUN_LOG_FILE] ; exit -1
|
||||
# }
|
||||
#}
|
||||
set timeout 30
|
||||
|
||||
if { $TEST(0) != " " } {
|
||||
set timeout 600
|
||||
set t 0
|
||||
while true {
|
||||
if { $t == $TESTNUMBER } {
|
||||
break
|
||||
}
|
||||
set TESTCASE $TEST($t)
|
||||
incr t
|
||||
|
||||
#get current date
|
||||
exec date >/tmp/datesync.tmp
|
||||
exec cat /tmp/datesync.tmp
|
||||
set newtime [exec cat /tmp/datesync.tmp]
|
||||
|
||||
log_user 1
|
||||
send_user "\n\n******************* Run Test $TESTCASE start at $newtime **********************************\n\n"
|
||||
#log_user 0
|
||||
|
||||
set TESTTYPE [exec expr substr $TESTCASE 1 5]
|
||||
if { $TESTTYPE == "mysql" } {
|
||||
set TESTCOMMAND [exec expr substr $TESTCASE 7 80]
|
||||
} else {
|
||||
# Oracle test case
|
||||
set TESTCOMMAND [exec expr substr $TESTCASE 8 80]
|
||||
}
|
||||
|
||||
if { $TESTTYPE == "oracl" } {
|
||||
if { [catch { open "/usr/local/lib/python2.4/site-packages/dvm_app/$USER\_$SYSTEM\_brefd01.cfg" "r"} handle ] } {
|
||||
exec echo "\nTest Failed, DVM config file $USER\_$SYSTEM\_brefd01.cfg not found\n";
|
||||
exec echo "Test Failed, DVM config file $USER\_$SYSTEM\_brefd01.cfg not found" >> $RUN_LOG_FILE
|
||||
puts [exec mail -s "$SYSTEM/$SVN Automated Build Tester Results" $EMAIL < $RUN_LOG_FILE] ; exit -1
|
||||
}
|
||||
|
||||
if { $TESTCOMMAND == "tpch" } {
|
||||
exec su - oracle -c "python /usr/local/lib/python2.4/site-packages/dvm_app/dvm.py -c /usr/local/lib/python2.4/site-packages/dvm_app/$USER\\_$SYSTEM\_brefd01.cfg -e1 -sS -rB $DEBUG -l2 -t Perf_Tpch > /tmp/test.log "
|
||||
expect {
|
||||
-re "Traceback" {
|
||||
exec echo "\nTest Failed, Database instance is down\n";
|
||||
exec echo "Test Failed, Database instance is down" >> $RUN_LOG_FILE
|
||||
puts [exec mail -s "$SYSTEM/$SVN Automated Build Tester Results" $EMAIL < $RUN_LOG_FILE] ; exit -1 }
|
||||
-re "$" { if { [catch { open "/tmp/test.log" "r"} handle ] } {
|
||||
exec echo "\nTest Failed, /tmp/test.log not found\n";
|
||||
exec echo "Test Failed, /tmp/test.log not found" >> $RUN_LOG_FILE
|
||||
puts [exec mail -s "$SYSTEM/$SVN Automated Build Tester Results" $EMAIL < $RUN_LOG_FILE] ; exit -1 }
|
||||
}
|
||||
}
|
||||
exec cat /tmp/test.log >> $RUN_LOG_FILE
|
||||
} else {
|
||||
if { $TESTCOMMAND == "dml" } {
|
||||
exec su - oracle -c "python /usr/local/lib/python2.4/site-packages/dvm_app/dvm.py -c /usr/local/lib/python2.4/site-packages/dvm_app/$USER\\_$SYSTEM\_brefd01.cfg -sS -rB -l2 -t Iter16_TableNameLengths $DEBUG > /tmp/test.log "
|
||||
expect {
|
||||
-re "Traceback" {
|
||||
exec echo "\nTest Failed, Database instance is down\n";
|
||||
exec echo "Test Failed, Database instance is down" >> $RUN_LOG_FILE
|
||||
puts [exec mail -s "$SYSTEM/$SVN Automated Build Tester Results" $EMAIL < $RUN_LOG_FILE] ; exit -1 }
|
||||
-re "$" { if { [catch { open "/tmp/test.log" "r"} handle ] } {
|
||||
exec echo "\nTest Failed, /tmp/test.log not found\n";
|
||||
exec echo "Test Failed, /tmp/test.log not found" >> $RUN_LOG_FILE
|
||||
puts [exec mail -s "$SYSTEM/$SVN Automated Build Tester Results" $EMAIL < $RUN_LOG_FILE] ; exit -1 }
|
||||
}
|
||||
}
|
||||
exec cat /tmp/test.log >> $RUN_LOG_FILE
|
||||
|
||||
exec su - oracle -c "python /usr/local/lib/python2.4/site-packages/dvm_app/dvm.py -c /usr/local/lib/python2.4/site-packages/dvm_app/$USER\\_$SYSTEM\_brefd01.cfg -sS -rB -l2 -t Iter16_Datatypes_Ext $DEBUG > /tmp/test.log "
|
||||
expect {
|
||||
-re "Traceback" {
|
||||
exec echo "\nTest Failed, Database instance is down\n";
|
||||
exec echo "Test Failed, Database instance is down" >> $RUN_LOG_FILE
|
||||
puts [exec mail -s "$SYSTEM/$SVN Automated Build Tester Results" $EMAIL < $RUN_LOG_FILE] ; exit -1 }
|
||||
-re "$" { if { [catch { open "/tmp/test.log" "r"} handle ] } {
|
||||
exec echo "\nTest Failed, /tmp/test.log not found\n";
|
||||
exec echo "Test Failed, /tmp/test.log not found" >> $RUN_LOG_FILE
|
||||
puts [exec mail -s "$SYSTEM/$SVN Automated Build Tester Results" $EMAIL < $RUN_LOG_FILE] ; exit -1 }
|
||||
}
|
||||
}
|
||||
exec cat /tmp/test.log >> $RUN_LOG_FILE
|
||||
} else {
|
||||
# default to a test-command of a file name
|
||||
exec su - oracle -c "python /usr/local/lib/python2.4/site-packages/dvm_app/dvm.py -c /usr/local/lib/python2.4/site-packages/dvm_app/$USER\\_$SYSTEM\_brefd01.cfg -e2 -sS -rT $DEBUG -t /home/qa/bldqry/$TESTCOMMAND.txt -q /home/qa/bldqry > /tmp/test.log "
|
||||
expect {
|
||||
-re "Traceback" {
|
||||
exec echo "\nTest Failed, Database instance is down\n";
|
||||
exec echo "Test Failed, Database instance is down" >> $RUN_LOG_FILE
|
||||
puts [exec mail -s "$SYSTEM/$SVN Automated Build Tester Results" $EMAIL < $RUN_LOG_FILE] ; exit -1 }
|
||||
-re "$" { if { [catch { open "/tmp/test.log" "r"} handle ] } {
|
||||
exec echo "\nTest Failed, /tmp/test.log not found\n";
|
||||
exec echo "Test Failed, /tmp/test.log not found" >> $RUN_LOG_FILE
|
||||
puts [exec mail -s "$SYSTEM/$SVN Automated Build Tester Results" $EMAIL < $RUN_LOG_FILE] ; exit -1 }
|
||||
}
|
||||
}
|
||||
exec cat /tmp/test.log >> $RUN_LOG_FILE
|
||||
}
|
||||
}
|
||||
} else { # run mysql test commands
|
||||
if { $TESTTYPE == "mysql" } {
|
||||
if { $TESTCOMMAND == "query" } {
|
||||
set timeout 72000
|
||||
log_user 1
|
||||
exec ./remote_command_test.sh $SERVER $PASSWORD "./nightly/runQueryTestAll $SVN" "runQueryTestAll completed" "No such file" $timeout
|
||||
expect {
|
||||
-re "FAILED" { exec echo "\nFailed to run runQueryTestAll\n" >> $RUN_LOG_FILE} abort;
|
||||
-re "TIMEOUT" { exec echo "\nTimeout on run runQueryTestAll\n" >> $RUN_LOG_FILE} abort;
|
||||
-re " " { exec ./remote_scp_get.sh $SERVER $PASSWORD "/root/$SVN/mysql/queries/nightly/srvswdev11/go.log"
|
||||
exec cat go.log >> $RUN_LOG_FILE
|
||||
exec rm -f go.log
|
||||
} abort;
|
||||
}
|
||||
} elseif { $TESTCOMMAND == "querySSB" } {
|
||||
set timeout 1200
|
||||
log_user 1
|
||||
exec ./remote_command_test.sh $SERVER $PASSWORD "./nightly/startQueryTesterSSB $SVN" "startQueryTester completed" "No such file" 1200
|
||||
expect {
|
||||
-re " " { exec ./remote_scp_get.sh $SERVER $PASSWORD "/root/$SVN/mysql/queries/queryTesterSSB.report"
|
||||
exec cat queryTesterSSB.report >> $RUN_LOG_FILE
|
||||
exec rm -f queryTesterSSB.report
|
||||
} abort;
|
||||
-re "FAILED" { exec echo "\nFailed to run queryTester\n" >> $RUN_LOG_FILE} abort;
|
||||
-re "TIMEOUT" { exec echo "\nTimeout on run queryTester\n" >> $RUN_LOG_FILE} abort;
|
||||
}
|
||||
} elseif { $TESTCOMMAND == "concur" } {
|
||||
set timeout 600
|
||||
log_user 1
|
||||
exec ./remote_command_test.sh $SERVER $PASSWORD "/root/nightly/startConcurTester 32" "Success" "Failed" 600
|
||||
expect {
|
||||
-re " " { exec echo "Concurrance Test Passed\n\n" >> $RUN_LOG_FILE} abort;
|
||||
-re "FAILED" { exec echo "\nConcurrance Test Failed\n" >> $RUN_LOG_FILE} abort;
|
||||
-re "TIMEOUT" { exec echo "\nConcurrance Test Timeout\n" >> $RUN_LOG_FILE} abort;
|
||||
timeout { exec echo "\nConcurrance Test Timeout\n" >> $RUN_LOG_FILE} abort;
|
||||
}
|
||||
} elseif { $TESTCOMMAND == "continueousConcur" } {
|
||||
set timeout 30
|
||||
log_user 1
|
||||
exec ./remote_command_test.sh $SERVER $PASSWORD "/root/nightly/continueousConcurTester" "Started" "Failed" 30
|
||||
expect {
|
||||
-re " " { exec echo "Continueous Concurrance Test Started \n\n" >> $RUN_LOG_FILE} abort;
|
||||
-re "FAILED" { exec echo "\nContinueous Concurrance Test Failed\n" >> $RUN_LOG_FILE} abort;
|
||||
-re "TIMEOUT" { exec echo "\nContinueous Concurrance Test Timeout\n" >> $RUN_LOG_FILE} abort;
|
||||
timeout { exec echo "\nContinueous Concurrance Test Timeout\n" >> $RUN_LOG_FILE} abort;
|
||||
}
|
||||
} elseif { $TESTCOMMAND == "queryCalpontOnly" } {
|
||||
set timeout 1200
|
||||
log_user 1
|
||||
exec ./remote_command_test.sh $SERVER $PASSWORD "./nightly/startQueryTesterCalpontOnly $SVN" "startQueryTester completed" "No such file" 1200
|
||||
expect {
|
||||
-re " " { exec ./remote_scp_get.sh $SERVER $PASSWORD "/root/$SVN/mysql/queries/queryTester_working_tpch1_calpontonly.report"
|
||||
exec cat queryTester_working_tpch1_calpontonly.report >> $RUN_LOG_FILE
|
||||
exec rm -f queryTester_working_tpch1_calpontonly.report} abort;
|
||||
-re "FAILED" { exec echo "\nFailed to run queryTester\n" >> $RUN_LOG_FILE} abort;
|
||||
-re "TIMEOUT" { exec echo "\nTimeout on run queryTester\n" >> $RUN_LOG_FILE} abort;
|
||||
}
|
||||
} elseif { $TESTCOMMAND == "DBimport" } {
|
||||
set timeout 28800
|
||||
log_user 1
|
||||
exec ./remote_command_test.sh $SERVER $PASSWORD "./nightly/dbImport.sh $SVN" "dbImport completed" "No such file" $timeout
|
||||
expect {
|
||||
-re " " { exec ./remote_scp_get.sh $SERVER $PASSWORD "/root/$SVN/mysql/queries/nightly/qaftest2/go.log"
|
||||
exec cat go.log >> $RUN_LOG_FILE
|
||||
exec rm -f go.log} abort;
|
||||
-re "FAILED" { exec echo "\nFailed to run dbImport\n" >> $RUN_LOG_FILE} abort;
|
||||
-re "TIMEOUT" { exec echo "\nTimeout on run dbImport\n" >> $RUN_LOG_FILE} abort;
|
||||
}
|
||||
}
|
||||
if { $TESTCOMMAND == "ImportSSB100" } {
|
||||
set timeout 28800
|
||||
log_user 1
|
||||
exec ./remote_command_test.sh $SERVER $PASSWORD "./nightly/importSSB100.sh $SVN" "importSSB100 completed" "No such file" $timeout
|
||||
expect {
|
||||
-re " " {
|
||||
exec ./remote_scp_get.sh $SERVER $PASSWORD "/root/$SVN/mysql/queries/nightly/srvalpha2/go.log"
|
||||
exec cat go.log >> $RUN_LOG_FILE
|
||||
exec rm -f go.log
|
||||
} abort;
|
||||
-re "FAILED" {
|
||||
exec echo "\nFailed to run importSSB100\n" >> $RUN_LOG_FILE} abort;
|
||||
-re "TIMEOUT" { exec echo "\nTimeout on run importSSB100\n" >> $RUN_LOG_FILE} abort;
|
||||
}
|
||||
} elseif { $TESTCOMMAND == "dml" } {
|
||||
set timeout 60
|
||||
log_user 1
|
||||
exec ./remote_command_test.sh $SERVER $PASSWORD "./nightly/startQueryTesterDML $SVN" "startQueryTester completed" "No such file" 60
|
||||
expect {
|
||||
-re "FAILED" { send_user "FAILED\n"
|
||||
exec echo "\nFailed to run queryTesterDML\n" >> $RUN_LOG_FILE};
|
||||
-re "TIMEOUT" { send_user "TIMEOUT\n"
|
||||
exec echo "\nTimeout on run queryTesterDML\n" >> $RUN_LOG_FILE};
|
||||
-re " " { send_user "PASSED\n"
|
||||
exec ./remote_scp_get.sh $SERVER $PASSWORD "/root/$SVN/mysql/queries/queryTesterDML.report"
|
||||
exec cat queryTesterDML.report >> $RUN_LOG_FILE
|
||||
exec rm -f queryTesterDML.report;
|
||||
};
|
||||
send_user "NOTHING\n"
|
||||
}
|
||||
} elseif { $TESTCOMMAND == "timings" } {
|
||||
set timeout 60
|
||||
log_user 1
|
||||
exec ./remote_command_test.sh $SERVER $PASSWORD "/root/nightly/updateQueries $SVN" "updateQueries completed" "No such file" 60 1
|
||||
set timeout 22000
|
||||
exec ./remote_command_test.sh $SERVER $PASSWORD "/root/nightly/startTimingsTester $SVN" "startTimingsTester completed" "error" 22000 1
|
||||
expect {
|
||||
-re " " {
|
||||
set REPORT demo
|
||||
exec ./remote_scp_get.sh $SERVER $PASSWORD "/root/$SVN/mysql/queries/nightly/$REPORT/go.log"
|
||||
exec cat go.log >> $RUN_LOG_FILE} abort;
|
||||
-re "FAILED" { exec echo "\nFailed to run timings\n" >> $RUN_LOG_FILE} abort;
|
||||
-re "TIMEOUT" { exec echo "\nTimeout on run timings\n" >> $RUN_LOG_FILE} abort;
|
||||
}
|
||||
} elseif { $TESTCOMMAND == "perfTests" } {
|
||||
set timeout 22000
|
||||
exec ./remote_command_test.sh $SERVER $PASSWORD "/root/nightly/startPerfTests $SVN" "startPerfTests completed" "error" 22000 1
|
||||
expect {
|
||||
-re " " {
|
||||
set REPORT perf
|
||||
exec ./remote_scp_get.sh $SERVER $PASSWORD "/root/$SVN/mysql/queries/nightly/$REPORT/go.log"
|
||||
exec cat go.log >> $RUN_LOG_FILE} abort;
|
||||
-re "FAILED" { echo "\nFailed to run timings\n" >> $RUN_LOG_FILE} abort;
|
||||
-re "TIMEOUT" { exec echo "\nTimeout on run timings\n" >> $RUN_LOG_FILE} abort;
|
||||
}
|
||||
} elseif { $TESTCOMMAND == "dataWarehouse" } {
|
||||
set timeout 5000000
|
||||
exec ./remote_command_test.sh $SERVER $PASSWORD "/root/nightly/startDataWarehouseTests $SVN" "startDataWarehouseTests completed" "error" 5000000 1
|
||||
expect {
|
||||
-re " " {
|
||||
set REPORT dataWarehouse
|
||||
exec ./remote_scp_get.sh $SERVER $PASSWORD "/root/$SVN/mysql/queries/nightly/$REPORT/go.log"
|
||||
exec cat go.log >> $RUN_LOG_FILE} abort;
|
||||
-re "FAILED" { echo "\nFailed to run dataWarehouse\n" >> $RUN_LOG_FILE} abort;
|
||||
-re "TIMEOUT" { exec echo "\nTimeout on dataWarehouse\n" >> $RUN_LOG_FILE} abort;
|
||||
}
|
||||
} elseif { $TESTCOMMAND == "calbench" } {
|
||||
set timeout 22000
|
||||
log_user 1
|
||||
exec ./remote_command.sh $SERVER $PASSWORD "/home/calbench/AutomatedCalBench.sh " "EndAutomatedCalBench" "No such file" 22000 1
|
||||
expect {
|
||||
-re " " { exec echo "\n\nAutomatedCalBench.sh successfully started\n" >> $RUN_LOG_FILE} abort;
|
||||
-re "FAILED" { exec echo "\nFailed to run AutomatedCalBench.sh\n" >> $RUN_LOG_FILE} abort;
|
||||
-re "TIMEOUT" { exec echo "\nTimeout on run AutomatedCalBench.sh\n" >> $RUN_LOG_FILE} abort;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
send_user "Test Failed, Testcase $TESTCASE not supported\n"
|
||||
exec echo "Test Failed, Testcase $TESTCASE not supported" >> $RUN_LOG_FILE
|
||||
}
|
||||
}
|
||||
#get current date
|
||||
exec date >/tmp/datesync.tmp
|
||||
exec cat /tmp/datesync.tmp
|
||||
set newtime [exec cat /tmp/datesync.tmp]
|
||||
exec echo "\n\n******************* Run Test $TESTCASE ended at $newtime **********************************\n\n" >> $RUN_LOG_FILE
|
||||
sleep 10
|
||||
}
|
||||
}
|
||||
set timeout 30
|
||||
|
||||
#get current date
|
||||
exec date >/tmp/datesync.tmp
|
||||
exec cat /tmp/datesync.tmp
|
||||
set newtime [exec cat /tmp/datesync.tmp]
|
||||
|
||||
exec echo "\nBuild Test Successfully Completed $newtime\n\n" >> $RUN_LOG_FILE
|
||||
|
||||
#send report
|
||||
log_user 0
|
||||
if { $EMAIL != " " } {
|
||||
puts [exec mail -s "$SYSTEM/$SVN Automated Build/Test Results" $EMAIL < $RUN_LOG_FILE]
|
||||
send_user "email report sent\n"
|
||||
} else {
|
||||
log_user 1
|
||||
send_user "Report located here: $RUN_LOG_FILE\n"
|
||||
exec cat $RUN_LOG_FILE
|
||||
}
|
||||
|
||||
send_user "\nBuild Test Completed\n"
|
||||
|
||||
exit
|
@ -1,215 +0,0 @@
|
||||
/* Copyright (C) 2014 InfiniDB, Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; version 2 of
|
||||
the License.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
MA 02110-1301, USA. */
|
||||
|
||||
/******************************************************************************************
|
||||
* $Id: svnQuery.cpp 64 2006-10-12 22:21:51Z dhill $
|
||||
*
|
||||
*
|
||||
*
|
||||
******************************************************************************************/
|
||||
/**
|
||||
* @file
|
||||
*/
|
||||
|
||||
|
||||
#include <iterator>
|
||||
#include <numeric>
|
||||
#include <deque>
|
||||
#include <iostream>
|
||||
#include <ostream>
|
||||
#include <fstream>
|
||||
#include <cstdlib>
|
||||
#include <string>
|
||||
#include <limits.h>
|
||||
#include <sstream>
|
||||
#include <exception>
|
||||
#include <stdexcept>
|
||||
#include <vector>
|
||||
#include "stdio.h"
|
||||
#include "ctype.h"
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <fcntl.h>
|
||||
#include "liboamcpp.h"
|
||||
|
||||
using namespace std;
|
||||
using namespace oam;
|
||||
|
||||
int main(int argc, char* argv[])
|
||||
{
|
||||
Oam oam;
|
||||
vector <string> queryDirectory;
|
||||
vector <string> queryID;
|
||||
|
||||
// get latest set of svn queries
|
||||
// system("rm -rf /root/genii/ > /dev/null 2>&1");
|
||||
system("updateGenii.pl > /dev/null 2>&1");
|
||||
|
||||
system("rm -rf /home/qa/bldqry/mysql/* > /dev/null 2>&1");
|
||||
|
||||
string cronFile = "/root/calpontBuildTest";
|
||||
unlink(cronFile.c_str());
|
||||
|
||||
// get query directory list
|
||||
string topQueryfileName = "/tmp/topQuerydirs";
|
||||
string secondQueryfileName = "/tmp/secondQuerydirs";
|
||||
string queryfileName = "/home/qa/bldqry/mysql/querydirs";
|
||||
|
||||
string cmd = "ls /root/genii/mysql/queries/. > " + topQueryfileName;
|
||||
system(cmd.c_str());
|
||||
|
||||
ifstream file (topQueryfileName.c_str());
|
||||
|
||||
if (!file)
|
||||
{
|
||||
cout << " Error: can't open " + topQueryfileName << endl;
|
||||
exit (-1);
|
||||
}
|
||||
|
||||
char line[200];
|
||||
string topQueryDir;
|
||||
|
||||
while (file.getline(line, 200))
|
||||
{
|
||||
topQueryDir = line;
|
||||
|
||||
if ( topQueryDir.find("queryTester", 0) != string::npos || topQueryDir == "Makefile" )
|
||||
continue;
|
||||
|
||||
// only do working queries for now
|
||||
if ( topQueryDir.find("working", 0) == string::npos)
|
||||
continue;
|
||||
|
||||
string cmd = "ls /root/genii/mysql/queries/" + topQueryDir + "/. > " + secondQueryfileName;
|
||||
system(cmd.c_str());
|
||||
|
||||
ifstream file (secondQueryfileName.c_str());
|
||||
|
||||
if (file)
|
||||
{
|
||||
char line[200];
|
||||
string buf;
|
||||
|
||||
while (file.getline(line, 200))
|
||||
{
|
||||
buf = line;
|
||||
|
||||
if ( buf.empty() )
|
||||
continue;
|
||||
|
||||
string tempdir = topQueryDir + "/" + buf;
|
||||
queryDirectory.push_back(tempdir);
|
||||
}
|
||||
}
|
||||
|
||||
file.close();
|
||||
}
|
||||
|
||||
file.close();
|
||||
|
||||
if ( queryDirectory.size() == 0 )
|
||||
{
|
||||
cout << endl << "Error: no query sub-directories located" << endl;
|
||||
exit (-1);
|
||||
}
|
||||
|
||||
// get query list for each query directory
|
||||
int test = 1;
|
||||
std::vector<std::string>::iterator pt1 = queryDirectory.begin();
|
||||
|
||||
for ( ; pt1 != queryDirectory.end() ; pt1++)
|
||||
{
|
||||
string directory = *pt1;
|
||||
string::size_type pos = directory.find("/", 0);
|
||||
|
||||
if (pos != string::npos)
|
||||
{
|
||||
string setName;
|
||||
setName = directory.substr(0, pos);
|
||||
setName = setName + "-";
|
||||
setName = setName + directory.substr(pos + 1, 200);
|
||||
|
||||
string cmd = "cd /home/qa/bldqry/mysql/;echo " + setName + ".sql > " + oam.itoa(test) + ".txt";
|
||||
system(cmd.c_str());
|
||||
queryID.push_back(oam.itoa(test));
|
||||
test++;
|
||||
|
||||
cmd = "rm -f /home/qa/bldqry/mysql/" + setName + ".sql";
|
||||
system(cmd.c_str());
|
||||
|
||||
cmd = "cat /root/genii/mysql/queries/" + directory + "/*.sql >> /home/qa/bldqry/mysql/" + setName + ".sql";
|
||||
system(cmd.c_str());
|
||||
}
|
||||
}
|
||||
|
||||
// setup calpontBuildTest cron job with directories
|
||||
string cronFileTemplate = "/root/calpontBuildTest.template";
|
||||
|
||||
ifstream cfile (cronFileTemplate.c_str());
|
||||
|
||||
if (!cfile)
|
||||
{
|
||||
cout << endl << "Error: " + cronFileTemplate + " not found" << endl;
|
||||
exit (-1);
|
||||
}
|
||||
|
||||
vector <string> lines;
|
||||
string newLine;
|
||||
string buf;
|
||||
|
||||
while (cfile.getline(line, 200))
|
||||
{
|
||||
buf = line;
|
||||
string::size_type pos = buf.find("buildTester", 0);
|
||||
|
||||
if (pos != string::npos)
|
||||
{
|
||||
newLine = buf;
|
||||
|
||||
pt1 = queryID.begin();
|
||||
|
||||
for ( ; pt1 != queryID.end() ; pt1++)
|
||||
{
|
||||
newLine.append(" mysql-");
|
||||
newLine.append(*pt1);
|
||||
}
|
||||
|
||||
newLine.append(" mysql-queryTester");
|
||||
|
||||
buf = newLine;
|
||||
}
|
||||
|
||||
//output to temp file
|
||||
lines.push_back(buf);
|
||||
}
|
||||
|
||||
cfile.close();
|
||||
|
||||
ofstream newFile (cronFile.c_str());
|
||||
|
||||
//create new file
|
||||
int fd = open(cronFile.c_str(), O_RDWR | O_CREAT, 0777);
|
||||
|
||||
copy(lines.begin(), lines.end(), ostream_iterator<string>(newFile, "\n"));
|
||||
newFile.close();
|
||||
close(fd);
|
||||
|
||||
cmd = "chmod 777 " + cronFile;
|
||||
system(cmd.c_str());
|
||||
|
||||
|
||||
}
|
@ -1,73 +0,0 @@
|
||||
/*
|
||||
Creates the stacks table used to track availability / usage of our development stacks.
|
||||
*/
|
||||
|
||||
create database if not exists stacks;
|
||||
use stacks;
|
||||
|
||||
drop table if exists stacks;
|
||||
drop table if exists stacksLog;
|
||||
drop table if exists users;
|
||||
|
||||
CREATE TABLE `stacks` (
|
||||
`stack` varchar(20) DEFAULT NULL,
|
||||
`status` varchar(20) DEFAULT NULL,
|
||||
`user` varchar(20) DEFAULT NULL,
|
||||
`checkedout` datetime DEFAULT NULL,
|
||||
`userModule` varchar(20) DEFAULT NULL,
|
||||
`notes` varchar(200) default null,
|
||||
`version` char(8)
|
||||
) ENGINE=MyISAM;
|
||||
|
||||
insert into stacks values
|
||||
('demo', 'Available', null, null, 'srvdemo1', '1 UM x 3 PMs', null),
|
||||
('srvswdev11', 'Available', null, null, 'srvswdev11', '1 UM/PM', null),
|
||||
('qaftest2', 'Available', null, null, 'qaftest2', '1 UM/PM', null),
|
||||
('devint1', 'Available', null, null, 'srvperf7', '2 UM/PMs', null),
|
||||
('devint2', 'Available', null, null, 'srvperf2', '1 UM x 3 PMs (Shared Nothing)', null),
|
||||
('devint3', 'Available', null, null, 'srvperf3', '1 UM/PM (Shared Nothing)', null),
|
||||
('devsn1', 'Available', null, null, 'srvdevsn1', '1 UM x 3 PMs (Shared Nothing)', null),
|
||||
('devsn2', 'Available', null, null, 'srvdevsn5', '1 UM x 2 PMs (Shared Nothing)', null),
|
||||
('devsn3', 'Available', null, null, 'srvdevsn8', '2 UM/PMs (Shared Nothing)', null),
|
||||
('srvalpha2', 'Available', null, null, 'srvalpha2', '1 UM/PM', null),
|
||||
('alphad03', 'Available', null, null, 'srvalpha4', '1 UM x 4 PMs', null),
|
||||
('qperfd01', 'Available', null, null, 'qaftest7', '1 UM X 5 PMs', null),
|
||||
('srvprodtest1', 'Available', null, null, 'srvprodtest1', '1 UM/PM',null, null);
|
||||
|
||||
CREATE TABLE stacksLog (
|
||||
stack varchar(20),
|
||||
user varchar(20),
|
||||
checkedOut datetime,
|
||||
checkedIn datetime,
|
||||
source varchar(20) /* php or commandLine */
|
||||
) ENGINE=MyISAM;
|
||||
|
||||
CREATE TABLE `users` (
|
||||
`user` varchar(20) DEFAULT NULL,
|
||||
`mailOnCheckouts` tinyint(1) DEFAULT NULL,
|
||||
`mailOnCheckins` tinyint(1) DEFAULT NULL
|
||||
) ENGINE=MyISAM;
|
||||
|
||||
insert into users values
|
||||
('bpaul', false, false),
|
||||
('chao', false, false),
|
||||
('dcathey', false, false),
|
||||
('dhill', false, false),
|
||||
('pleblanc', false, false),
|
||||
('rdempsey', false, false),
|
||||
('wweeks', false, false),
|
||||
('xlou', false, false),
|
||||
('zzhu', false, false);
|
||||
|
||||
create table testResults (
|
||||
test varchar(20),
|
||||
stack varchar(20),
|
||||
version varchar(10),
|
||||
rel varchar(10),
|
||||
start datetime,
|
||||
stop datetime,
|
||||
buildDtm varchar(30),
|
||||
total int,
|
||||
status varchar(8),
|
||||
failedTests varchar(1000)
|
||||
) engine=MyISAM;
|
@ -1,38 +0,0 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>Automated Nightly Testing Logs</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Automated Nightly Testing Logs</h1>
|
||||
<a href="autoOamRuns.php">Auto OAM Results</a><br>
|
||||
<a href="nightlyResults.php">Nightly Results</a><br>
|
||||
<br>
|
||||
<a href="results.php?title=2.2 Build Results&logFile=/tmp/RHEL5-2.2.log">2.2 Build Results</a><br>
|
||||
<a href="results.php?title=3.0 Build Results&logFile=/tmp/RHEL5-1-3.0.log">3.0 Build Results</a><br>
|
||||
<a href="results.php?title=3.5 Build Results&logFile=/tmp/RHEL5-1-3.5.log">3.5 Build Results</a><br>
|
||||
<a href="results.php?title=3.6 Build Results&logFile=/tmp/RHEL5-3.6.log">3.6 Build Results</a><br>
|
||||
<a href="results.php?title=Trunk (4.0) Build Results&logFile=/tmp/RHEL5-genii.log">Trunk (4.0) Build Results</a><br>
|
||||
<br>
|
||||
<a href="results.php?title=devint3&logFile=/tmp/devint3-3.5.log">3.5 Nightly Regression Test - devint3</a><br>
|
||||
<a href="results.php?title=srvdemo1&logFile=/tmp/demo01-3.5-mysql-timings.log">3.5 Performance Test - demo</a><br>
|
||||
<a href="results.php?title=srvdemo1&logFile=/tmp/demo01-3.5-mysql-query.log">3.5 Nightly Regression Test - demo</a><br>
|
||||
<a href="results.php?title=qaftest7&logFile=/tmp/qperfd01-3.5.log">3.5 Perf Stack Tests - qaftest7 (Mon, Wed, Fri, Sat night builds)</a><br>
|
||||
<br>
|
||||
<a href="results.php?title=srvperf2&logFile=/tmp/devint2-3.6.log">3.6 Nightly Regression Test - devint2</a><br>
|
||||
<a href="results.php?title=srvalpha2&logFile=/tmp/ss2-3.6.log">3.6 Regression Test - srvalpha2</a><br>
|
||||
<a href="results.php?title=srvalpha2&logFile=/tmp/ss2ImportSSB100-3.6.log">3.6 ssb100 Import Validation - srvalpha2</a><br>
|
||||
<a href="results.php?title=qaftest2&logFile=/tmp/qaftest2-3.6-queryTester.log">3.6 Nightly Regression Test - qaftest2</a><br>
|
||||
<a href="results.php?title=qaftest2&logFile=/tmp/qaftest2-3.6-tpch100Import.log">3.6 TPCH Import Test - qaftest2</a><br>
|
||||
<a href="results.php?title=srvbldwin1&logFile=/tmp/srvbldwin1-3.6-queryTester.log">3.6 Windows Regression Test - srvbldwin1</a><br>
|
||||
<br>
|
||||
<a href="results.php?title=srvswdev11&logFile=/tmp/srvswdev11-genii.log">Trunk (4.0) Nightly Regression Test - srvswdev11</a><br>
|
||||
<a href="results.php?title=srvalpha4&logFile=/tmp/srvalpha4-genii.log">Trunk (4.0) Nightly Regression Test - srvalpha4 (Cloudera)</a><br>
|
||||
<a href="results.php?title=devint1&logFile=/tmp/devint1-genii.log">Trunk (4.0) Nightly Regression Test - devint1 (Cloudera)</a><br>
|
||||
<a href="results.php?title=devint1Ssb100&logFile=/tmp/devint1-importSSB100-genii.log">Trunk (4.0) ssb100 Import Validation - devint1 (Cloudera)</a><br>
|
||||
<a href="results.php?title=qaftest7&logFile=/tmp/qperfd01-genii-perfTests.log">Trunk (4.0) Perf Stack Tests - qaftest7 (Sun, Tue, Thu, Fri, Sat night builds)</a><br>
|
||||
<a href="results.php?title=qaftest7&logFile=/tmp/qperfd01-genii-queryTester.log">Trunk (4.0) Nightly Regression Test - qaftest7</a><br>
|
||||
<a href="results.php?title=srvdemo1&logFile=/tmp/demo01-genii-mysql-timings.log">Trunk Performance Test - demo (Sat, Sun)</a><br>
|
||||
<a href="results.php?title=qaftest2&logFile=/tmp/qaftest2-genii-tpch100Import.log">Trunk TPCH Import Test - qaftest2</a><br>
|
||||
<a href="results.php?title=srvbldwin1&logFile=/tmp/srvbldwin1-genii-queryTester.log">Trunk (4.0) Windows Regression Test - srvbldwin1</a><br>
|
||||
</body>
|
||||
</html>
|
@ -1,184 +0,0 @@
|
||||
/*
|
||||
Creates stored procedures used to track availability and usage of our development stacks.
|
||||
*/
|
||||
|
||||
use stacks;
|
||||
|
||||
drop procedure if exists list_stacks;
|
||||
drop procedure if exists list_users;
|
||||
drop procedure if exists reserve_stack;
|
||||
drop procedure if exists reserve_stack2;
|
||||
drop procedure if exists release_stack;
|
||||
drop procedure if exists subscribe_checkins;
|
||||
drop procedure if exists subscribe_checkouts;
|
||||
|
||||
DELIMITER //
|
||||
|
||||
/* Lists the stacks and their availability. */
|
||||
create procedure list_stacks()
|
||||
begin
|
||||
select stack as Stack,
|
||||
userModule as 'User Module',
|
||||
status as Status,
|
||||
ifnull(user, '') User,
|
||||
ifnull(checkedout, '') 'Checked Out',
|
||||
ifnull(timediff(now(), checkedout), '') Time,
|
||||
ifnull(notes, '') Notes,
|
||||
version Version
|
||||
from stacks
|
||||
order by stack;
|
||||
end //
|
||||
|
||||
/* Lists the users. */
|
||||
create procedure list_users()
|
||||
begin
|
||||
select * from users order by 1;
|
||||
end //
|
||||
|
||||
create procedure reserve_stack(in inStack varchar(20), in inUser varchar(20))
|
||||
begin
|
||||
call reserve_stack2(inStack, inUser, 'commandLine');
|
||||
end //
|
||||
|
||||
/* Reserves the given stack on behalf of the given user. */
|
||||
create procedure reserve_stack2(in inStack varchar(20), in inUser varchar(20), in inSource varchar(20))
|
||||
begin
|
||||
declare cnt int default 0;
|
||||
declare err varchar(100) default '';
|
||||
|
||||
/* Validate the stack exists. */
|
||||
select count(*) into cnt from stacks where upper(stack) = upper(inStack);
|
||||
if cnt <> 1 then
|
||||
set err = concat(inStack, ' is not a valid stack.');
|
||||
end if;
|
||||
|
||||
/* Validate that the stack is not already checked out unless the user is nightly in which case he gets it regardless of it */
|
||||
/* being checked out. */
|
||||
if lower(inUser) <> 'nightly' and err = '' then
|
||||
select count(*) into cnt from stacks where status='Available' and upper(stack) = upper(inStack);
|
||||
if cnt <> 1 then
|
||||
set err = concat(inStack, ' is not available.');
|
||||
end if;
|
||||
end if;
|
||||
|
||||
/* Do the check out. */
|
||||
if err = '' then
|
||||
|
||||
update stacks
|
||||
set status='Checked Out', user=inUser, checkedout=now()
|
||||
where upper(stack)=upper(inStack) and (status='Available' or lower(inUser)='nightly');
|
||||
|
||||
insert into stacksLog values (inStack, inUser, now(), null, inSource);
|
||||
|
||||
end if;
|
||||
|
||||
if err <> '' then
|
||||
select err Status;
|
||||
else
|
||||
select concat(inStack, ' successfully checked out by ', inUser, '.') Status;
|
||||
end if;
|
||||
end //
|
||||
|
||||
/* Releases the given stack. Requires the passed user to be the one holding the reservation. */
|
||||
create procedure release_stack(in inStack varchar(20), in inUser varchar(20))
|
||||
begin
|
||||
declare cnt int default 0;
|
||||
declare err varchar(100) default '';
|
||||
|
||||
/* Validate the stack exists. */
|
||||
select count(*) into cnt from stacks where upper(stack) = upper(inStack);
|
||||
if cnt <> 1 then
|
||||
set err = concat(inStack, ' is not a valid stack.');
|
||||
end if;
|
||||
|
||||
/* Validate that the stack is checked out by the user. */
|
||||
if err = '' then
|
||||
select count(*) into cnt
|
||||
from stacks
|
||||
where status='Checked Out' and upper(stack) = upper(inStack) and upper(user) = upper(inUser);
|
||||
|
||||
if cnt <> 1 then
|
||||
set err = concat(inStack, ' is not checked out by ', inUser, '.');
|
||||
end if;
|
||||
end if;
|
||||
|
||||
/* Update the row to release_stack the stack. */
|
||||
if err = '' then
|
||||
update stacks
|
||||
set status='Available', user=null, checkedout=null
|
||||
where upper(stack)=upper(inStack);
|
||||
|
||||
update stacksLog
|
||||
set checkedIn=now()
|
||||
where upper(stack) = upper(inStack) and checkedIn is null and upper(user) = upper(inUser);
|
||||
end if;
|
||||
|
||||
if err <> '' then
|
||||
select err Status;
|
||||
else
|
||||
select concat(inStack, ' successfully released.') Status;
|
||||
end if;
|
||||
end //
|
||||
|
||||
create procedure subscribe_checkins(in inUser varchar(20), in inSubscribe bool)
|
||||
begin
|
||||
declare cnt int default 0;
|
||||
declare err varchar(100) default '';
|
||||
|
||||
/* Validate user. */
|
||||
select count(*) into cnt from users where upper(user)=upper(inUser);
|
||||
if cnt <> 1 then
|
||||
set err = concat(inUser, ' is not a valid user.');
|
||||
end if;
|
||||
|
||||
if err = '' then
|
||||
if inSubscribe then
|
||||
update users
|
||||
set mailOnCheckins = true
|
||||
where upper(user) = upper(inUser);
|
||||
else
|
||||
update users
|
||||
set mailOnCheckins = false
|
||||
where upper(user) = upper(inUser);
|
||||
end if;
|
||||
end if;
|
||||
|
||||
if err <> '' then
|
||||
select err Status;
|
||||
else
|
||||
select concat(inUser, ' checkin mail setting successfully set.') Status;
|
||||
end if;
|
||||
end //
|
||||
|
||||
create procedure subscribe_checkouts(in inUser varchar(20), in inSubscribe bool)
|
||||
begin
|
||||
declare cnt int default 0;
|
||||
declare err varchar(100) default '';
|
||||
|
||||
/* Validate user. */
|
||||
select count(*) into cnt from users where upper(user)=upper(inUser);
|
||||
if cnt < 1 then
|
||||
set err = concat(inUser, ' is not a valid user.');
|
||||
end if;
|
||||
|
||||
if err = '' then
|
||||
if inSubscribe then
|
||||
update users
|
||||
set mailOnCheckouts = true
|
||||
where upper(user) = upper(inUser);
|
||||
else
|
||||
update users
|
||||
set mailOnCheckouts= false
|
||||
where upper(user) = upper(inUser);
|
||||
end if;
|
||||
end if;
|
||||
|
||||
if err <> '' then
|
||||
select err Status;
|
||||
else
|
||||
select concat(inUser, ' checkout mail setting successfully set.') Status;
|
||||
end if;
|
||||
end //
|
||||
|
||||
DELIMITER ;
|
||||
|
@ -1,21 +0,0 @@
|
||||
<html>
|
||||
<head><title><?php echo $_GET["title"]; ?></title></head>
|
||||
<body>
|
||||
<?php
|
||||
echo "<pre>\n";
|
||||
$file = fopen($_GET["logFile"], "r") or exit("Unable to open file!");
|
||||
//Output a line of the file until the end is reached
|
||||
while(!feof($file))
|
||||
{
|
||||
$line = fgets($file);
|
||||
if (!preg_match('/ Failed *= 0/', $line))
|
||||
$line = preg_replace('/ Failed/', ' <font color="red"><b>Failed</b></font>', $line);
|
||||
$line = preg_replace('/ Passed/', ' <font color="green"><b>Passed</b></font>', $line);
|
||||
$line = preg_replace('/ Yellow/', ' <font color="yellow"><b>Yellow</b></font>', $line);
|
||||
echo $line;
|
||||
}
|
||||
fclose($file);
|
||||
echo "</pre>\n";
|
||||
?>
|
||||
</body>
|
||||
</html>
|
@ -1,82 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# BP 09/16/2011 13:43
|
||||
# This script will give user to
|
||||
# list all the calpont stacks
|
||||
# reserve a calpont stack
|
||||
# release a calpont stack
|
||||
# Help to use a test stack without stepping each other.
|
||||
#
|
||||
|
||||
DB=stacks
|
||||
|
||||
usage()
|
||||
{
|
||||
echo "Usage:" >&2
|
||||
echo " ${0##*/} list" >&2
|
||||
echo " ${0##*/} reserve stackname who" >&2
|
||||
echo " ${0##*/} release stackname who" >&2
|
||||
}
|
||||
|
||||
cmd="$1"
|
||||
argc=$#
|
||||
|
||||
if [ -z "$cmd" -o "$cmd" = "-h" ]; then
|
||||
usage
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ $(expr 'list' : "$cmd") -gt 0 ]; then
|
||||
cmd=list
|
||||
INST=$2
|
||||
elif [ $(expr 'reserve' : "$cmd") -gt 2 ]; then
|
||||
cmd=reserve
|
||||
INST=$4
|
||||
elif [ $(expr 'release' : "$cmd") -gt 2 ]; then
|
||||
cmd=release
|
||||
INST=$4
|
||||
fi
|
||||
if [ -z "$INSTALLDIR" ]; then
|
||||
INSTALLDIR="/usr/local/mariadb/columnstore"
|
||||
if [ $INST ]; then
|
||||
INSTALLDIR=$INST
|
||||
fi
|
||||
export INSTALLDIR
|
||||
fi
|
||||
|
||||
if [ -z "$MYSQLCMD" ]; then
|
||||
if [ -d "$INSTALLDIR/mysql" ]; then
|
||||
# Linux.
|
||||
MYSQLCMD="$INSTALLDIR/mysql/bin/mysql -h 10.100.4.51 -u root --database=$DB"
|
||||
else
|
||||
# Windows.
|
||||
MYSQLCMD="$INSTALLDIR/bin/mysql -h 10.100.4.51 -u root --database=$DB"
|
||||
fi
|
||||
export MYSQLCMD
|
||||
fi
|
||||
|
||||
good=0
|
||||
|
||||
if [ "$cmd" = "list" ]; then
|
||||
sql="call list_stacks()"
|
||||
$MYSQLCMD -e "$sql"
|
||||
good=1
|
||||
fi
|
||||
|
||||
if [ "$cmd" = "reserve" -a $argc -ge 3 ]; then
|
||||
sql="call reserve_stack('$2', '$3')"
|
||||
$MYSQLCMD -e "$sql"
|
||||
good=1
|
||||
fi
|
||||
|
||||
if [ "$cmd" = "release" -a $argc -ge 3 ]; then
|
||||
sql="call release_stack('$2', '$3')"
|
||||
$MYSQLCMD -e "$sql"
|
||||
good=1
|
||||
fi
|
||||
|
||||
if [ $good -eq 0 ]; then
|
||||
usage
|
||||
exit 1
|
||||
fi
|
||||
|
@ -1,106 +0,0 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="refresh" content="60" >
|
||||
</head>
|
||||
<body>
|
||||
<?php
|
||||
header('Cache-Control: no-cache, no-store, must-revalidate'); // HTTP 1.1.
|
||||
header('Pragma: no-cache'); // HTTP 1.0.
|
||||
header('Expires: 0'); // Proxies.
|
||||
$con = mysql_connect('localhost','root','',false,65536);
|
||||
|
||||
mysql_select_db ("stacks");
|
||||
|
||||
$query="call list_stacks()";
|
||||
/* $result=mysql_query("call list_stacks()"); */
|
||||
$result=mysql_query($query)
|
||||
or die(mysql_error());
|
||||
|
||||
$num=mysql_numrows($result);
|
||||
|
||||
mysql_close();
|
||||
?>
|
||||
User: <input id="userInput" value="<?php echo $_GET["user"]; ?>" /> <button onClick="javascript:refresh();">Refresh</button>
|
||||
<form action="stackReservationResult.php" method="post" id="form1">
|
||||
<input type="hidden" name="stack" id="stack" value=""/>
|
||||
<input type="hidden" name="action" id="action" value=""/>
|
||||
<input type="hidden" name="user" id="user" value="<?php echo $_GET["user"]; ?>"/>
|
||||
<br>
|
||||
<table border="1" cellspacing="2" cellpadding="2">
|
||||
<tr>
|
||||
<th align=left><font face="Arial, Helvetica, sans-serif"> </font></th>
|
||||
<th align=left><font face="Arial, Helvetica, sans-serif"> </font></th>
|
||||
<th align=left><font face="Arial, Helvetica, sans-serif">Stack</font></th>
|
||||
<th align=left><font face="Arial, Helvetica, sans-serif">User Module</font></th>
|
||||
<th align=left><font face="Arial, Helvetica, sans-serif">Status</font></th>
|
||||
<th align=left><font face="Arial, Helvetica, sans-serif">User</font></th>
|
||||
<th align=left><font face="Arial, Helvetica, sans-serif">Checked Out</font></th>
|
||||
<th align=left><font face="Arial, Helvetica, sans-serif">Time</font></th>
|
||||
<th align=left><font face="Arial, Helvetica, sans-serif">Stack Notes</font></th>
|
||||
<th align=left><font face="Arial, Helvetica, sans-serif">Version</font></th>
|
||||
</tr>
|
||||
|
||||
<?php
|
||||
$i=0;
|
||||
while ($i < $num) {
|
||||
|
||||
$f3=mysql_result($result,$i,"stack");
|
||||
$f4=mysql_result($result,$i,"user module");
|
||||
$f5=mysql_result($result,$i,"status");
|
||||
$f6=mysql_result($result,$i,"user");
|
||||
$f7=mysql_result($result,$i,"checked out");
|
||||
$f8=mysql_result($result,$i,"time");
|
||||
$f9=mysql_result($result,$i,"notes");
|
||||
$f10=mysql_result($result,$i,"version");
|
||||
|
||||
if($f5 == "Available") {
|
||||
$f1 = "Reserve";
|
||||
$f2 = "";
|
||||
}
|
||||
else if($f5 == "Checked Out" && $f6 == $_GET["user"]) {
|
||||
$f1 = "";
|
||||
$f2 = "Release";
|
||||
}
|
||||
else {
|
||||
$f1="";
|
||||
$f2="";
|
||||
}
|
||||
?>
|
||||
|
||||
<script type="text/javascript">
|
||||
function submitForm(action, stack)
|
||||
{
|
||||
document.getElementById('stack').value=stack;
|
||||
document.getElementById('action').value=action;
|
||||
document.getElementById('user').value=document.getElementById('userInput').value;
|
||||
document.getElementById('form1').submit();
|
||||
}
|
||||
|
||||
function refresh()
|
||||
{
|
||||
window.location='stack.php?user=' + document.getElementById('userInput').value;
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
<tr>
|
||||
<td><font face="Arial, Helvetica, sans-serif"><a href="javascript:submitForm('reserve', '<?php echo $f3; ?>');"><?php echo $f1; ?></a> </font></td>
|
||||
<td><font face="Arial, Helvetica, sans-serif"><a href="javascript:submitForm('release', '<?php echo $f3; ?>');"><?php echo $f2; ?></a> </font></td>
|
||||
<td><font face="Arial, Helvetica, sans-serif"><?php echo $f3; ?> </font></td>
|
||||
<td><font face="Arial, Helvetica, sans-serif"><?php echo $f4; ?> </font></td>
|
||||
<td><font face="Arial, Helvetica, sans-serif"><?php echo $f5; ?> </font></td>
|
||||
<td><font face="Arial, Helvetica, sans-serif"><?php echo $f6; ?> </font></td>
|
||||
<td><font face="Arial, Helvetica, sans-serif"><?php echo $f7; ?> </font></td>
|
||||
<td><font face="Arial, Helvetica, sans-serif"><?php echo $f8; ?> </font></td>
|
||||
<td><font face="Arial, Helvetica, sans-serif"><?php echo $f9; ?> </font></td>
|
||||
<td><font face="Arial, Helvetica, sans-serif"><?php echo $f10; ?> </font></td>
|
||||
</tr>
|
||||
|
||||
<?php
|
||||
$i++;
|
||||
}
|
||||
?>
|
||||
</table>
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
@ -1,45 +0,0 @@
|
||||
<html>
|
||||
<head>
|
||||
</head>
|
||||
<body>
|
||||
<?php
|
||||
header('Cache-Control: no-cache, no-store, must-revalidate'); // HTTP 1.1.
|
||||
header('Pragma: no-cache'); // HTTP 1.0.
|
||||
header('Expires: 0'); // Proxies.
|
||||
$con = mysql_connect('localhost','root','',false,65536);
|
||||
|
||||
mysql_select_db ("stacks");
|
||||
|
||||
/*
|
||||
Reserve or release the stack if the user clicked a link to do said reservation wherefore art thou.
|
||||
*/
|
||||
$stack=$_POST["stack"];
|
||||
$action=$_POST["action"];
|
||||
$who=$_POST["user"];
|
||||
if($stack != "" && $who != "") {
|
||||
if($action=="reserve") {
|
||||
$query="call reserve_stack2('" . $stack . "', '". $who . "', 'php');";
|
||||
}
|
||||
else {
|
||||
$query="call release_stack('" . $stack . "', '". $who . "');";
|
||||
}
|
||||
$result = mysql_query($query) or die(mysql_error());
|
||||
if($result) {
|
||||
$line = mysql_result($result,0,"status");
|
||||
if (stripos($line, 'not')) {
|
||||
echo '<b><font color="red">';
|
||||
}
|
||||
else {
|
||||
echo '<b><font color="green">';
|
||||
}
|
||||
echo $line;
|
||||
echo '</font></b><br><br>';
|
||||
}
|
||||
}
|
||||
mysql_close();
|
||||
echo '<a href="stack.php?user=' . $who . '">Return to Stacks</a>';
|
||||
?>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
@ -17,8 +17,8 @@ export COLUMNSTORE_INSTALL_DIR=$COLUMNSTORE_INSTALL_DIR
|
||||
InstallDir=$COLUMNSTORE_INSTALL_DIR
|
||||
|
||||
if [ $InstallDir != "/usr/local/mariadb/columnstore" ]; then
|
||||
export PATH=$InstallDir/bin:$InstallDir/mysql/bin:/bin:/usr/bin
|
||||
export LD_LIBRARY_PATH=$InstallDir/lib:$InstallDir/mysql/lib
|
||||
export PATH=$InstallDir/bin:/bin:/usr/bin
|
||||
export LD_LIBRARY_PATH=$InstallDir/lib
|
||||
fi
|
||||
|
||||
case "$1" in
|
||||
|
Reference in New Issue
Block a user