43654319a383a6f7e51fce32cd5b33f8a897e56a steve Mon Sep 16 14:27:15 2013 -0700 New script to compare md5sums of assembly 2bit files (redmine #6508) diff --git src/utils/qa/2bitCompare src/utils/qa/2bitCompare new file mode 100755 index 0000000..a3aca4b --- /dev/null +++ src/utils/qa/2bitCompare @@ -0,0 +1,175 @@ +#!/bin/tcsh + +########################################### +# +# 09-13-13 +# Steve Heitner +# +# Compares the md5sum from all instances +# of an assembly's 2bit file +# +########################################### + +set bigZipsExists='' +set blat='' +set blatExists='' +set blatSpacing='' +set db='' +set dbExists='' +set downloadExists='' +set gbdbDevExists='' +set gbdbBetaExists='' +set md5sumBlatExists='' +set md5sumBlat='' +set md5sumDownloadExists='' +set md5sumDownload='' +set md5sumGbdbDevExists='' +set md5sumGbdbDev='' +set md5sumGbdbBetaExists='' +set md5sumGbdbBeta='' + +# Gives the usage statement if the program is run +# without arguments +if ($#argv != 1 ) then + echo + echo " compares the md5sums from all instances" + echo " of an assembly's 2bit file:" + echo + echo " - /scratch/db on blat server" + echo " - /usr/local/apache/htdocs-hgdownload/goldenPath/db/bigZips" + echo " - /gbdb/db on hgwdev" + echo " - /gbdb/db on hgwbeta" + echo + echo " usage: 2bitCompare db" + echo + exit 1 +else + set db=$argv[1] +endif + +# Checks to make sure the database entered has an entry +# in hgcentraltest.dbDb. If it does not, the user is +# informed that this is not a valid database and the script +# stops. If it does, the 2bit files are checked. +set dbExists=`hgsql -Ne "select name from dbDb where name='$db'" hgcentraltest` +if ($dbExists == '' ) then + echo + echo " There is no entry for $db in hgcentraltest.dbDb" + echo + exit 2 +endif + +echo +echo " Checking md5sums. This could take a few minutes. Please be patient..." +echo + +# Checks to see which blat server the database resides on. If a blat +# server is found, checks for the existence of the $db directory. If the +# directory is found, checks for the existence of the 2bit file. If the +# 2bit file is found, checks the md5sum. +set blat=`hgsql -Ne "select host from blatServers where db='$db' limit 1" hgcentraltest` +if ($blat != '' ) then + set blatExists=`ssh qateam@$blat ls /scratch | grep ^$db\$` + if ($blatExists != '' ) then + set md5sumBlatExists=`ssh qateam@$blat ls /scratch/$db | grep $db.2bit` + if ($md5sumBlatExists != '' ) then + set md5sumBlat=`ssh qateam@$blat md5sum /scratch/$db/$db.2bit` + endif + endif +endif + +# Reports the findings of the above section +if ($blat == '' ) then + echo " blat md5sum: There are no entries for $db in hgcentraltest.blatServers" +else + if ($blat == 'blatx' ) then + set blatSpacing=" blatx" + else + set blatSpacing=$blat + endif + if ($blatExists == '') then + echo " $blatSpacing md5sum: The $db directory does not exist in /scratch on $blat" + else + if ($md5sumBlatExists == '' ) then + echo " $blatSpacing md5sum: $db.2bit does not exist in /scratch/$db on $blat" + else + echo " $blatSpacing md5sum: $md5sumBlat" + endif + endif +endif + +# Checks for the existence of the $db directory in the downloads directory. +# If the $db directory is found, checks for the existence of the bigZips directory. +# If the bigZips directory is found, checks for the existence of the 2bit file. +# If the 2bit file is found, checks the md5sum. +set downloadExists=`ls /usr/local/apache/htdocs-hgdownload/goldenPath | grep ^$db\$` +if ($downloadExists != '' ) then + set bigZipsExists=`ls /usr/local/apache/htdocs-hgdownload/goldenPath/$db | grep bigZips` + if ($bigZipsExists != '' ) then + set md5sumDownloadExists=`ls /usr/local/apache/htdocs-hgdownload/goldenPath/$db/bigZips | grep $db.2bit` + if ($md5sumDownloadExists != '' ) then + set md5sumDownload=`md5sum /usr/local/apache/htdocs-hgdownload/goldenPath/$db/bigZips/$db.2bit` + endif + endif +endif + +# Reports the findings of the above section +if ($downloadExists == '' ) then + echo " download md5sum: The $db directory does not exist in /usr/local/apache/htdocs-hgdownload/goldenPath" +else + if ($bigZipsExists == '') then + echo " download md5sum: The bigZips directory does not exist in /usr/local/apache/htdocs-hgdownload/goldenPath/$db" + else + if ($md5sumDownloadExists == '' ) then + echo " download md5sum: $db.2bit does not exist in /usr/local/apache/htdocs-hgdownload/goldenPath/$db/bigZips" + else + echo " download md5sum: $md5sumDownload" + endif + endif +endif + +# Checks for the existence of the $db directory in gbdb on dev. If the directory is +# found, checks for the existence of the 2bit file. If the 2bit file is found, +# checks the md5sum. +set gbdbDevExists=`ls /gbdb | grep ^$db\$` +if ($gbdbDevExists != '' ) then + set md5sumGbdbDevExists=`ls /gbdb/$db | grep $db.2bit` + if ($md5sumGbdbDevExists != '' ) then + set md5sumGbdbDev=`md5sum /gbdb/$db/$db.2bit` + endif +endif + +# Reports the findings of the above section +if ($gbdbDevExists == '' ) then + echo " hgwdev gbdb md5sum: The $db directory does not exist in /gbdb on hgwdev" +else + if ($md5sumGbdbDevExists == '' ) then + echo " hgwdev gbdb md5sum: $db.2bit does not exist in /gbdb/$db on hgwdev" + else + echo " hgwdev gbdb md5sum: $md5sumGbdbDev" + endif +endif + +# Checks for the existence of the $db directory in gbdb on beta. If the directory is +# found, checks for the existence of the 2bit file. If the 2bit file is found, +# checks the md5sum. +set gbdbBetaExists=`ssh qateam@hgwbeta ls /gbdb | grep ^$db\$` +if ($gbdbBetaExists != '' ) then + set md5sumGbdbBetaExists=`ssh qateam@hgwbeta ls /gbdb/$db | grep $db.2bit` + if ($md5sumGbdbBetaExists != '' ) then + set md5sumGbdbBeta=`ssh qateam@hgwbeta md5sum /gbdb/$db/$db.2bit` + endif +endif + +# Reports the findings of the above section +if ($gbdbBetaExists == '' ) then + echo " hgwbeta gbdb md5sum: The $db directory does not exist in /gbdb on hgwbeta" +else + if ($md5sumGbdbBetaExists == '' ) then + echo " hgwbeta gbdb md5sum: $db.2bit does not exist in /gbdb/$db on hgwbeta" + else + echo " hgwbeta gbdb md5sum: $md5sumGbdbBeta" + endif +endif + +echo