4 |
|
#--------------------------------------------------------------------------------------------------- |
5 |
|
H=`basename $0` |
6 |
|
SAMPLE_LIST=$1 |
7 |
< |
MIT_LOCATION="/pnfs/cmsaf.mit.edu/t2bat/cms/store/user/paus" |
8 |
< |
CERN_LOCATION="/castor/cern.ch/user/p/paus" |
7 |
> |
|
8 |
> |
# start next request |
9 |
> |
remainingMax=0 |
10 |
|
|
11 |
|
# health checks |
12 |
|
if [ ".$1" == "." ] |
23 |
|
echo "" |
24 |
|
|
25 |
|
# check that queues are really empty |
26 |
+ |
dataset="XXX" |
27 |
|
startTime=$(date +%s) |
28 |
|
nowTime=$(date +%s); duration=$(($nowTime - $startTime)) |
29 |
< |
jobs=`condor_q -global cmsprod | grep downloadFiles.sh | wc -l` |
30 |
< |
while [ "$jobs" != "0" ] |
29 |
> |
jobs=`condor_q -global $USER -format "%d " ClusterId -format "%s " Cmd -format "%s \n" Args | grep $dataset | grep downloadFiles.sh | wc -l` |
30 |
> |
while [ $jobs -gt $remainingMax ] |
31 |
|
do |
32 |
|
echo " waiting since $duration sec == condor queue has $jobs jobs left"; sleep 60; echo "" |
33 |
< |
jobs=`condor_q -global cmsprod | grep downloadFiles.sh | wc -l` |
33 |
> |
jobs=`condor_q -global $USER $format | grep $dataset | grep downloadFiles.sh | wc -l` |
34 |
> |
#jobs=`condor_q -global $USER | grep downloadFiles.sh | wc -l` |
35 |
|
nowTime=$(date +%s); duration=$(($nowTime - $startTime)) |
36 |
|
done |
37 |
< |
echo " Queues are empty ($jobs) Let's get started." |
37 |
> |
echo " Queues are close to empty ($jobs) -- Let's get started." |
38 |
|
echo "" |
39 |
|
|
40 |
|
# all right, ready to download |
42 |
|
i=1 |
43 |
|
while [ $i -le $nSamples ] |
44 |
|
do |
45 |
+ |
startTime=$(date +%s) |
46 |
|
|
47 |
|
line=`head -$i $SAMPLE_LIST | tail -1` |
48 |
|
if [ "`echo $line | grep ^#`" != "" ] |
52 |
|
fi |
53 |
|
|
54 |
|
# define some quantities |
55 |
+ |
baseDir=`echo $line | tr -s ' ' | cut -d ' ' -f 1` |
56 |
|
book=`echo $line | tr -s ' ' | cut -d ' ' -f 2` |
57 |
|
version=`basename $book` |
58 |
|
dataset=`echo $line | tr -s ' ' | cut -d ' ' -f 3` |
59 |
+ |
targetDir=`echo $line | tr -s ' ' | cut -d ' ' -f 4` |
60 |
|
|
61 |
< |
#echo " downloadSample.sh $line" |
62 |
< |
mkdir -p /mnt/hadoop/cmsprod/$book/$dataset |
61 |
> |
|
62 |
> |
# stagein the sample if it is at CERN |
63 |
> |
if [ "`echo $baseDir | grep /castor/cern.ch`" != "" ] |
64 |
> |
then |
65 |
> |
echo " ssh paus@lxplus.cern.ch ./stageSample.py --dataDir=$baseDir/$book/$dataset" |
66 |
> |
ssh paus@lxplus.cern.ch ./stageSample.py --dataDir=$baseDir/$book/$dataset |
67 |
> |
fi |
68 |
> |
|
69 |
> |
# download the sample |
70 |
> |
echo " downloadSample.sh $line" |
71 |
|
downloadSample.sh $line |
72 |
|
|
73 |
+ |
# go into waiting loop |
74 |
|
nowTime=$(date +%s); duration=$(($nowTime - $startTime)) |
75 |
< |
jobs=`condor_q -global cmsprod | grep downloadFiles.sh | wc -l` |
76 |
< |
while [ "$jobs" != "0" ] |
75 |
> |
jobs=`condor_q -global $USER -format "%d " ClusterId -format "%s " Cmd -format "%s \n" Args | grep $dataset | grep downloadFiles.sh | wc -l` |
76 |
> |
while [ $jobs -gt $remainingMax ] |
77 |
|
do |
78 |
|
echo " waiting since $duration sec == condor queue has $jobs jobs left"; sleep 60; echo "" |
79 |
< |
jobs=`condor_q -global cmsprod | grep downloadFiles.sh | wc -l` |
79 |
> |
jobs=`condor_q -global $USER -format "%d " ClusterId -format "%s " Cmd -format "%s \n" Args | grep $dataset | grep downloadFiles.sh | wc -l` |
80 |
|
nowTime=$(date +%s); duration=$(($nowTime - $startTime)) |
81 |
|
done |
82 |
|
echo " Queues are empty ($jobs) --> cleaning up and making catalogs." |
83 |
|
echo "" |
84 |
|
|
85 |
|
# remove zero length files |
86 |
< |
echo "removeZeroLengthFiles.sh /mnt/hadoop/cmsprod/$book/$dataset" |
87 |
< |
removeZeroLengthFiles.sh /mnt/hadoop/cmsprod/$book/$dataset |
86 |
> |
echo "removeZeroLengthFiles.sh $targetDir/$book/$dataset" |
87 |
> |
removeZeroLengthFiles.sh $targetDir/$book/$dataset |
88 |
|
|
89 |
|
# finally make the corresponding catalog |
90 |
< |
#echo "catalog.sh -ceg $version $dataset --retry /mnt/hadoop/cmsprod" |
91 |
< |
catalog.sh -ceg $version $dataset --retry /mnt/hadoop/cmsprod |
90 |
> |
if [ ${#version} == 3 ] |
91 |
> |
then |
92 |
> |
echo "catalog.sh -ceg $version $dataset --retry $targetDir" |
93 |
> |
catalog.sh -ceg $version $dataset --retry $targetDir |
94 |
> |
else |
95 |
> |
echo "This is not a normal dataset, make a simple catalog." |
96 |
> |
echo "" |
97 |
> |
list $targetDir/$book/$dataset > /tmp/list.$$ |
98 |
> |
mkdir -p ~/catalog/t2mit/private/$book/$dataset |
99 |
> |
rm -f ~/catalog/t2mit/private/$book/$dataset/Files |
100 |
> |
touch ~/catalog/t2mit/private/$book/$dataset/Files |
101 |
> |
while read line |
102 |
> |
do |
103 |
> |
size=`echo $line | cut -d ' ' -f1` |
104 |
> |
file=`echo $line | cut -d ' ' -f2` |
105 |
> |
root -l -b -q $MIT_PROD_DIR/root/runSimpleFileCataloger.C\(\"$targetDir/$book/$dataset\",\"$file\"\) \ |
106 |
> |
2> /dev/null | grep CATALOG >> ~/catalog/t2mit/private/$book/$dataset/Files |
107 |
> |
done < /tmp/list.$$ |
108 |
> |
rm -f /tmp/list.$$ |
109 |
> |
fi |
110 |
|
|
111 |
|
i=$(( $i+1 )) |
112 |
|
|