Certification Job
Executable="cert_job.sh";
## Please put your VO as Argument
Arguments="dteam";
StdOutput="report.txt";
StdError="report.txt";
InputSandbox={"cert_job.sh"};
OutputSandbox={"report.txt"};
RetryCount = 0;
#!/bin/bash
# 2005-04-26 created by Paolo Veronesi
# 2010-11-03 modified by Alessandro Paolini
SE_REP1=sunstorm.cnaf.infn.it
SE_REP2=prod-se-01.pd.infn.it
#SE_REP3=castorgrid.cern.ch
#Certification BDII
BDII=gridit-bdii-01.cnaf.infn.it:2170
#Production BDII
BDII2=egee-bdii.cnaf.infn.it:2170
#####################################################################################################################
## CHECK ARGUMENT
#####################################################################################################################
if [ -z $1 ] ; then
VO=infngrid
else
VO=$1
fi
export LFC_HOME=/grid/$VO
#####################################################################################################################
## LOCAL FUNCTIONS
#####################################################################################################################
new_date ()
{
YEAR=`date +%Y`
MONTH=`date +%m`
DAY=`date +%d`
HOUR=`date +%H:%M`
}
##############################
start_report ()
{
new_date
DATE=$YEAR-$MONTH-$DAY_$HOUR
WNNAME=`hostname`
USER=`whoami`
echo "Site test report"
echo "WN: $HOSTNAME"
echo "Date: $DATE"
echo "Remote account: $USER"
echo "VO: $VO"
echo "SE1 for Replica: $SE_REP1"
echo "SE2 for Replica: $SE_REP2"
echo "BDII for test: $BDII"
}
###############################
end_report ()
{
new_date
DATE=$YEAR-$MONTH-$DAY_$HOUR
TEST="Ended to run the certification on site: $1 at date $DATE"
echo "$TEST"
}
################################
visual ()
{
if [ $STATUS -ne 0 ]; then
if [[ $TEST == *$SE_REP1 ]]; then
STATO=WARNING
else
STATO=ERROR
fi
else
STATO=OK
fi
echo "*"
echo "* TEST=$TEST, STATUS=$STATO"
echo "*"
}
################################################
list_LCG_replica ()
{
echo "----------------------------------------"
echo "LCG List Replica for $1"
echo ""
lcg-lr --vo $VO lfn:$1
STATUS=$?
echo "----------------------------------------"
echo ""
}
#####################################################################################################################
##############################################################################################################################
## BASE TEST
##############################################################################################################################
base()
{
TEST=BASE
CONTINUE=1
echo "******************************************************************************************"
echo "* Check services used during the test *"
echo "******************************************************************************************"
echo
echo "------------------------------------------------------------------------------------------"
echo "Default BDII= $LCG_GFAL_INFOSYS"
case "$LCG_GFAL_INFOSYS" in
"egee-bdii-01.cnaf.infn.it:2170" | "gridit-bdii-01.cnaf.infn.it:2170" )
echo "TEST ERROR: LCG_GFAL_INFOSYS should be egee-bdii.cnaf.infn.it. Other values are possible, but not egee-bdii-01 or gridit-bdii-01";;
egee-bdii.cnaf.infn.it:2170 )
echo "TEST OK: LCG_GFAL_INFOSYS=$LCG_GFAL_INFOSYS";;
* )
echo "TEST WARNING: LCG_GFAL_INFOSYS=$LCG_GFAL_INFOSYS, why not egee-bdii.cnaf.infn.it ?";;
esac
echo "Can we see the default information system?"
set -x
lcg-infosites --vo $VO all
STATUS=$?
set +x
if [ $STATUS == 0 ]; then
CONTINUE=0
else
CONTINUE=1
fi
visual
echo
echo "------------------------------------------------------------------------------------------"
echo "Can we see the SE=$SE_REP1?"
set -x
#/opt/edg/bin/edg-gridftp-ls --verbose gsiftp://$SE_REP1/ > /dev/null
#/opt/lcg/bin/rfdir $SE_REP1:/ > /dev/null
/opt/globus/bin/uberftp $SE_REP1 > /dev/null
STATUS=$?
set +x
if [ $STATUS == 0 ]; then
GOODSE=$SE_REP1
echo "STATUS=OK, GOODSE=$GOODSE"
else
echo "WARNING: Can not see the SE=$SE_REP1, try to see SE=SE_REP2"
set -x
#/opt/edg/bin/edg-gridftp-ls --verbose gsiftp://$SE_REP2/ > /dev/null
#/opt/lcg/bin/rfdir $SE_REP2:/ > /dev/null
/opt/globus/bin/uberftp $SE_REP2 > /dev/null
STATUS=$?
set +x
if [ $STATUS == 0 ]; then
GOODSE=$SE_REP2
echo "STATUS=OK, GOODSE=$GOODSE"
else
echo "ERROR: Can not see the SE=$SE_REP2, DATA MANAGEMENT TEST will be skipped!"
GOODSE=NONE
CONTINUE=1
fi
fi
if [ $CONTINUE == 1 ]; then
echo "******************************************************************************************"
echo "* ERROR: Base test fails, certification aborted! *"
echo "******************************************************************************************"
else
echo "******************************************************************************************"
echo "* Base test passed succesfully! *"
echo "******************************************************************************************"
fi
}
check_rpm ()
{
echo "******************************************************************************************"
echo "* RPMs and CA list *"
echo "******************************************************************************************"
echo
echo "------------------------------------------------------------------------------------------"
TEST="Check RPMs"
set -x
rpm -qa|sort
STATUS=$?
set +x
visual
TEST="CA rpm list - check the current on http://lcgdeploy.cvs.cern.ch/cgi-bin/lcgdeploy.cgi/lcg2/rpmlist/security-rpm.h "
set -x
rpm -qa|grep "^ca" |sort
STATUS=$?
set +x
visual
}
##################################################
check_bash ()
{
echo "******************************************************************************************"
echo "* Check BASH env *"
echo "******************************************************************************************"
echo
echo "------------------------------------------------------------------------------------------"
TEST="Check BASH"
set -x
env |sort
STATUS=$?
set +x
visual
echo
echo "------------------------------------------------------------------------------------------"
TEST="Check software paths for the experiments"
echo "$TEST"
echo
echo "------------------------------------------------------------------------------------------"
set -x
env|sort |grep _SW_DIR
STATUS=$?
set +x
visual
echo
echo "------------------------------------------------------------------------------------------"
TEST="Setting CLOSE_SE for VO=$VO"
echo "$TEST"
echo
echo "------------------------------------------------------------------------------------------"
set -x
CLOSE_SE=`env |grep -i $VO |grep _DEFAULT_SE | head -1 |awk -F= '{print $2}'`
STATUS=$?
set +x
echo "===> CLOSE_SE=$CLOSE_SE"
if [ $CLOSE_SE == $GOODSE ]; then
GOODSE=grid2.fe.infn.it
echo "===> GOODESE changed to $GOODSE"
fi
visual
}
###################################################
check_mount ()
{
echo "******************************************************************************************"
echo "* Check mountpoints on WN *"
echo "******************************************************************************************"
echo
echo "------------------------------------------------------------------------------------------"
TEST="Check mountpoints on WN"
echo "$TEST"
set -x
mount
STATUS=$?
set +x
visual
echo
echo "------------------------------------------------------------------------------------------"
TEST="Check disk status"
echo "$TEST"
set -x
df -m
STATUS=$?
set +x
visual
}
############################################################
# DATA MANAGEMENT USING LCG COMMAND #
############################################################
list_LCG_replica ()
{
echo "--------------------------------------"
echo "LCG List Replica for file=$1"
echo "--------------------------------------"
set -x
lcg-lr --vo $VO lfn:$1
STATUS=$?
set +x
if [[ $TEST == *entries ]]; then
if [ $STATUS -ne 0 ]; then
STATUS=0
else
STATUS=1
fi
fi
visual
echo ""
echo "--------------------------------------"
echo ""
}
###########################################################
lcg_set_bdii ()
{
echo "******************************************************************************************"
echo "* Setting default BDII=$BDII *"
echo "******************************************************************************************"
echo
echo "------------------------------------------------------------------------------------------"
set -x
export LCG_GFAL_INFOSYS=$BDII
STATUS=$?
env |grep LCG_GFAL_INFOSYS
set +x
visual
echo
echo "------------------------------------------------------------------------------------------"
}
lcg_check_SE ()
{
echo "******************************************************************************************"
echo "* LCG - Can we see the default VO=$VO SE=$CLOSE_SE ?*"
echo "******************************************************************************************"
echo
echo "------------------------------------------------------------------------------------------"
echo "------------------------------------------------------------------------------------------"
echo "Can we see the SE=$CLOSE_SE?"
set -x
edg-gridftp-ls --verbose gsiftp://$CLOSE_SE/ > /dev/null
STATUS=$?
set +x
visual
if [ $STATUS != 0 ]; then
echo "ERROR: Can not see the SE=$CLOSE_SE, DATA MANAGEMENT TEST will be skipped!"
end_report
exit
fi
}
lcg_cr ()
{
echo "******************************************************************************************"
echo "* LCG Copy and Register LFC version!*"
echo "******************************************************************************************"
echo
echo "------------------------------------------------------------------------------------------"
echo ""
TEST="LCG STEP 1 - Copy and Register"
echo "$TEST"
FILE1=lcg1_$HOSTNAME_$YEAR$MONTH$DAY-$RANDOM
FILE2=lcg2_$HOSTNAME_$YEAR$MONTH$DAY-$RANDOM
echo
echo "------------------------------------------------------------------------------------------"
TEST="LCG Creating file=$FILE1"
echo "$TEST"
echo
echo "------------------------------------------------------------------------------------------"
set -x
uname -a >$FILE1
STATUS=$?
set +x
visual $FILE1
echo ""
echo
echo "------------------------------------------------------------------------------------------"
TEST="LCG Creating file=$FILE2"
echo "$TEST"
echo
echo "------------------------------------------------------------------------------------------"
set -x
uname -a >$FILE2
STATUS=$?
set +x
visual $FILE2
echo ""
echo
echo "------------------------------------------------------------------------------------------"
TEST="LCG Copy & Register file=$FILE1 to CLOSE_SE=$CLOSE_SE"
echo "$TEST"
echo
echo "------------------------------------------------------------------------------------------"
set -x
lcg-cr -v --vo $VO -d $CLOSE_SE -l lfn:$FILE1 file://`pwd`/$FILE1
STATUS=$?
set +x
visual
echo ""
echo
echo "------------------------------------------------------------------------------------------"
TEST="LCG Copy & Register file=$FILE2 to GOODSE=$GOODSE"
echo "$TEST"
echo
echo "------------------------------------------------------------------------------------------"
set -x
lcg-cr -v --vo $VO -d $GOODSE -l lfn:$FILE2 file://`pwd`/$FILE2
STATUS=$?
set +x
visual
list_LCG_replica $FILE1
list_LCG_replica $FILE2
}
############################################################
lcg_rep ()
{
echo "******************************************************************************************"
echo "* LCG Replicate files *"
echo "******************************************************************************************"
echo
echo "------------------------------------------------------------------------------------------"
echo
echo "------------------------------------------------------------------------------------------"
TEST="LCG Replicate file $FILE1 from CLOSE_SE=$CLOSE_SE to GOODSE=$GOODSE"
echo "$TEST"
set -x
lcg-rep -v --vo $VO -d $GOODSE lfn:$FILE1
STATUS=$?
set +x
visual
list_LCG_replica $FILE1
echo ""
echo
echo "------------------------------------------------------------------------------------------"
TEST="LCG Replicate files $FILE2 from GOODSE=$GOODSE to CLOSE_SE=$CLOSE_SE"
echo "$TEST"
echo
echo "------------------------------------------------------------------------------------------"
set -x
lcg-rep -v --vo $VO -d $CLOSE_SE lfn:$FILE2
STATUS=$?
set +x
visual
list_LCG_replica $FILE2
echo ""
}
##############################################################
lcg_del ()
{
echo "******************************************************************************************"
echo "* LCG Delete files *"
echo "******************************************************************************************"
echo
echo "------------------------------------------------------------------------------------------"
echo
echo "------------------------------------------------------------------------------------------"
TEST="LCG Delete and unregister file=$FILE1 from CLOSE_SE=$CLOSE_SE"
echo "$TEST"
echo
echo "------------------------------------------------------------------------------------------"
set -x
lcg-del -v --vo $VO -s $CLOSE_SE lfn:$FILE1
STATUS=$?
set +x
visual
list_LCG_replica $FILE1
echo
echo "------------------------------------------------------------------------------------------"
TEST="LCG Delete and unregister file=$FILE2 from GOODSE=$GOODSE"
echo "$TEST"
echo
echo "------------------------------------------------------------------------------------------"
set -x
lcg-del -v --vo $VO -s $GOODSE lfn:$FILE2
STATUS=$?
set +x
visual
list_LCG_replica $FILE2
}
################################################################
lcg_copyBack ()
{
echo "******************************************************************************************"
echo "* LCG Copy back replicated files *"
echo "******************************************************************************************"
echo
echo "------------------------------------------------------------------------------------------"
echo
echo "------------------------------------------------------------------------------------------"
TEST="LCG Copy replica for file=$FILE1 from GOODSE=$GOODSE"
echo "$TEST"
echo
echo "------------------------------------------------------------------------------------------"
set -x
lcg-cp -v --vo $VO lfn:$FILE1 file://`pwd`/$FILE1.rep
STATUS=$?
set +x
visual
echo
echo "------------------------------------------------------------------------------------------"
TEST="LCG Copy replica for file=$FILE2 from CLOSE_SE=$CLOSE_SE"
echo "$TEST"
set -x
lcg-cp -v --vo $VO lfn:$FILE2 file://`pwd`/$FILE2.rep
STATUS=$?
set +x
visual
echo
echo "------------------------------------------------------------------------------------------"
TEST="File in current directory"
echo "$TEST"
set -x
pwd
ls -ltr
STATUS=$?
set +x
visual
}
##################################################################
lcg_delete_all ()
{
echo "******************************************************************************************"
echo "* LCG Delete and unregister all files *"
echo "******************************************************************************************"
echo
echo "------------------------------------------------------------------------------------------"
echo
echo "------------------------------------------------------------------------------------------"
TEST="LCG Delete and unregister all $FILE1 entries"
echo "$TEST"
echo
echo "------------------------------------------------------------------------------------------"
set -x
lcg-del -v --vo $VO -a lfn:$FILE1
STATUS=$?
set +x
visual
list_LCG_replica $FILE1
echo ""
echo
echo "------------------------------------------------------------------------------------------"
TEST="LCG Delete and unregister all $FILE2 entries"
echo "$TEST"
echo
echo "------------------------------------------------------------------------------------------"
set -x
lcg-del -v --vo $VO -a lfn:$FILE2
STATUS=$?
set +x
visual
list_LCG_replica $FILE2
echo ""
}
rgma_test ()
{
echo "******************************************************************************************"
echo "* RGMA client test *"
echo "******************************************************************************************"
echo
echo "------------------------------------------------------------------------------------------"
TEST="RGMA client test for release 2_6_0"
echo
echo "------------------------------------------------------------------------------------------"
set -x
/opt/glite/bin/rgma-client-check
STATUS=$?
set +x
visual
echo
echo "------------------------------------------------------------------------------------------"
}
############################################################
# OTHER TEST #
############################################################
#NOTE: rfdir command no more present on UI
rfiod_test ()
{
echo "******************************************************************************************"
echo "* RFIOD deamon test for SE *"
echo "******************************************************************************************"
echo
echo "------------------------------------------------------------------------------------------"
echo
echo "------------------------------------------------------------------------------------------"
TEST="Checking if CLOSE_SE=$CLOSE_SE is publishing rfio protocol"
echo "$TEST"
echo
echo "------------------------------------------------------------------------------------------"
set -x
RFIO=`/opt/globus/bin/ldapsearch -x -H ldap://$CLOSE_SE:2170 -b mds-vo-name=resource,o=grid |grep GlueSEAccessProtocolType |grep rfio|awk '{print $2}'`
set +x
if [ $RFIO == rfio ]; then
echo "CLOSE_SE=$CLOSE_SE is publishing rfio as protocol"
echo
echo "------------------------------------------------------------------------------------------"
TEST="RFDIR test from WN=$WNNAME to CLOSE_SE=$CLOSE_SE"
echo "$TEST"
echo
echo "------------------------------------------------------------------------------------------"
set -x
/usr/bin/rfdir $CLOSE_SE:/
STATUS=$?
set +x
visual
echo ""
else echo "CLOSE_SE=$CLOSE_SE is not publishing rfio as protocol, RFIDR test skipped!"
fi
}
##############################################################################################################
##############################################################################################################
## HIGH LEVEL FUNCTIONS
##############################################################################################################
base_test ()
{
echo "******************************************************"
echo "**BASE TESTs **"
echo "******************************************************"
base
check_rpm
check_bash
check_mount
}
lcg_data_test ()
{
echo "******************************************************"
echo "**DATA MANAGEMENT USING lcg COMMAND **"
echo "******************************************************"
lcg_set_bdii
lcg_cr
lcg_rep
lcg_del
lcg_copyBack
lcg_delete_all
}
other_test ()
{
echo "******************************************************"
echo "**OTHER TESTS **"
echo "******************************************************"
rfiod_test
}
#############################################################################################################
#############################################################################################################
##BODY
############################################################################################################
start_report
base_test
if [ $CONTINUE == 0 ]; then
lcg_data_test
else
end_report
exit
fi
#rgma_test
#other_test
end_report