1 |
slacapra |
1.1 |
#! /bin/sh
|
2 |
|
|
#
|
3 |
|
|
# Stefano Lacaprara <lacaprara@pd.infn.it> INFN Padova
|
4 |
|
|
#
|
5 |
|
|
# Initialization script for Crab and Boss
|
6 |
|
|
#
|
7 |
|
|
# 14-Sep-2005
|
8 |
|
|
|
9 |
|
|
if [ -z "$CRABDIR" ]; then
|
10 |
|
|
echo "You must source crab.(c)sh before running this script"
|
11 |
|
|
exit 1
|
12 |
|
|
fi
|
13 |
|
|
|
14 |
|
|
BACKEND=SQLite
|
15 |
|
|
BOSSDBPATH=${HOME}/boss
|
16 |
|
|
BOSSDBNAME=bossCrab
|
17 |
|
|
|
18 |
|
|
# I have to configure BOSS
|
19 |
|
|
|
20 |
|
|
CONFSCRIPT=${HOME}/BossConfig.clad
|
21 |
|
|
cat > $CONFSCRIPT <<EOF
|
22 |
|
|
# This is the BOSS configuration file
|
23 |
|
|
|
24 |
|
|
[
|
25 |
|
|
# BOSS temporary directory (where files are extracted from DB)
|
26 |
|
|
BOSS_TMP_DIR = "/tmp";
|
27 |
|
|
# BOSS update interval
|
28 |
|
|
BOSS_MIN_UPD_INT = 5; # at most one update every BOSS_MIN_UPD_INT sec.
|
29 |
|
|
BOSS_MAX_UPD_INT = 30; # at least one update every BOSS_MAX_UPD_INT sec.
|
30 |
|
|
# Maximum retries after post-process finishes before killing RTUpdator
|
31 |
|
|
# (waits BOSS_UPD_INTERVAL*BOSS_MAX_RETRY seconds)
|
32 |
|
|
BOSS_MAX_RETRY = 3;
|
33 |
|
|
# Boss Database Backend
|
34 |
|
|
DB_BACKEND = "${BACKEND}";
|
35 |
|
|
]
|
36 |
|
|
EOF
|
37 |
|
|
|
38 |
|
|
## I must create ${BACKEND}Config.clad
|
39 |
|
|
|
40 |
|
|
# SQLlite
|
41 |
|
|
if [ "${BACKEND}" == "SQLite" ]; then
|
42 |
|
|
|
43 |
|
|
if [ ! -d ${BOSSDBPATH} ]; then
|
44 |
|
|
echo "creating ${BOSSDBPATH} directory"
|
45 |
|
|
mkdir ${BOSSDBPATH}
|
46 |
|
|
else
|
47 |
|
|
echo "Directory ${BOSSDBPATH} Already exist. Stoppping"
|
48 |
|
|
exit 1
|
49 |
|
|
fi
|
50 |
|
|
CONFSCRIPT=${HOME}/SQLiteConfig.clad
|
51 |
|
|
cat > $CONFSCRIPT <<EOF
|
52 |
|
|
# This is the BOSS SQLite database configuration file
|
53 |
|
|
[
|
54 |
|
|
SQLITE_DB_PATH = "${BOSSDBPATH}/";
|
55 |
|
|
DB_NAME = "${BOSSDBNAME}";
|
56 |
|
|
]
|
57 |
|
|
EOF
|
58 |
|
|
|
59 |
|
|
fi # Backend SQLite
|
60 |
|
|
|
61 |
|
|
# MySQL
|
62 |
|
|
if [ "${BACKEND}" == "MySQL" ]; then
|
63 |
|
|
HOST=`/bin/hostname`
|
64 |
|
|
DOMAIN=`/bin/hostname -d`
|
65 |
|
|
CONFSCRIPT=${HOME}/MySQLConfig.clad
|
66 |
|
|
/bin/rm -f $CONFSCRIPT
|
67 |
|
|
cat > $CONFSCRIPT <<EOF
|
68 |
|
|
|
69 |
|
|
# This is the BOSS MySQL Database configuration file
|
70 |
|
|
|
71 |
|
|
[
|
72 |
|
|
# BOSS MySQL database file
|
73 |
|
|
DB_NAME = "${BOSSDBNAME}";
|
74 |
|
|
# Host where the MySQL server is running
|
75 |
|
|
DB_HOST = "${HOST}";
|
76 |
|
|
DB_DOMAIN = "${DOMAIN}";
|
77 |
|
|
# Default BOSS MySQL user and password
|
78 |
|
|
DB_USER = "BOSSmanager";
|
79 |
|
|
DB_USER_PW = "BossMySQL";
|
80 |
|
|
# Guest BOSS MySQL user and password
|
81 |
|
|
DB_GUEST = "BOSSmonitor";
|
82 |
|
|
DB_GUEST_PW = "BossMySQL";
|
83 |
|
|
# MySQL table type
|
84 |
|
|
TABLE_TYPE = "";
|
85 |
|
|
# MySQL port
|
86 |
|
|
DB_PORT = 0;
|
87 |
|
|
# MySQL socket
|
88 |
|
|
DB_SOCKET = "";
|
89 |
|
|
# MySQL client flag
|
90 |
|
|
DB_CLIENT_FLAG = 0;
|
91 |
|
|
]
|
92 |
|
|
EOF
|
93 |
|
|
|
94 |
|
|
if [ "${BACKEND}" == "MySQL" ]; then
|
95 |
|
|
echo ""
|
96 |
|
|
# Check MySQL server
|
97 |
|
|
if [ `ps -d | grep mysqld | wc -l` != "0" ]; then
|
98 |
|
|
echo "Found a MySQL server on this host"
|
99 |
|
|
else
|
100 |
|
|
echo "MySQL server is not running on this host"
|
101 |
|
|
fi
|
102 |
|
|
fi
|
103 |
|
|
|
104 |
|
|
fi # backend MySQL
|
105 |
|
|
|
106 |
|
|
# I should have boss in my path
|
107 |
|
|
boss configureDB
|
108 |
|
|
|
109 |
|
|
# now register the schedulers
|
110 |
|
|
cd $CRABDIR/script/
|
111 |
|
|
#EDG
|
112 |
|
|
./registerEDGScheduler
|
113 |
|
|
#fork
|
114 |
|
|
./registerForkScheduler
|
115 |
|
|
# Glite
|
116 |
|
|
./registerGLITEScheduler
|
117 |
|
|
# LSF
|
118 |
|
|
# ./registerLSFScheduler
|
119 |
|
|
# PBS
|
120 |
|
|
# ./registerPBSScheduler
|
121 |
|
|
# Condor
|
122 |
|
|
# ./registerCONDORScheduler
|
123 |
|
|
# BBS
|
124 |
|
|
# ./registerBBSScheduler
|
125 |
|
|
|
126 |
|
|
# now register all Job Types
|
127 |
|
|
./registerEDGjob
|
128 |
|
|
./registerCRABjob
|
129 |
|
|
|
130 |
|
|
### How to register the RealTime monitor???
|
131 |
|
|
|
132 |
|
|
|
133 |
|
|
cd -
|
134 |
|
|
|
135 |
|
|
# End
|
136 |
|
|
echo "BOSS configured to be used with crab\n"
|
137 |
|
|
echo ""
|
138 |
|
|
echo "Schedulers registered"
|
139 |
|
|
boss showSchedulers
|
140 |
|
|
|
141 |
|
|
echo ""
|
142 |
|
|
echo "Job types registered"
|
143 |
|
|
boss showJobTypes
|