@@ -77,6 +77,15 @@ HOST_SRV1=root://localhost:${XRD_PORT_SRV1}
7777HOST_SRV2=root://localhost:${XRD_PORT_SRV2}
7878HOST_SRV3=root://localhost:${XRD_PORT_SRV3}
7979HOST_SRV4=root://localhost:${XRD_PORT_SRV4}
80+ XRDTEST_MAINSERVERURL=localhost:${XRD_PORT_METAMAN}
81+ XRDTEST_MANAGER1URL=localhost:${XRD_PORT_MAN1}
82+ XRDTEST_MANAGER2URL=localhost:${XRD_PORT_MAN2}
83+ XRDTEST_SERVER1URL=localhost:${XRD_PORT_SRV1}
84+ XRDTEST_SERVER2URL=localhost:${XRD_PORT_SRV2}
85+ XRDTEST_SERVER3URL=localhost:${XRD_PORT_SRV3}
86+ XRDTEST_SERVER4URL=localhost:${XRD_PORT_SRV4}
87+ XRDTEST_DISKSERVERURL=localhost:${XRD_PORT_METAMAN}
88+ XRDTEST_LOCALDATAPATH=$( cd " ${DATAFOLDER} " && pwd)
8089EOF
8190}
8291
@@ -118,10 +127,23 @@ patch_metalink_ports() {
118127 -e " s/localhost:10944/localhost:${XRD_PORT_SRV2} /g" \
119128 -e " s/localhost:10945/localhost:${XRD_PORT_SRV3} /g" \
120129 -e " s/localhost:10946/localhost:${XRD_PORT_SRV4} /g" \
130+ -e " s/localhost:${PREV_XRD_PORT_SRV1} /localhost:${XRD_PORT_SRV1} /g" \
131+ -e " s/localhost:${PREV_XRD_PORT_SRV2} /localhost:${XRD_PORT_SRV2} /g" \
132+ -e " s/localhost:${PREV_XRD_PORT_SRV3} /localhost:${XRD_PORT_SRV3} /g" \
133+ -e " s/localhost:${PREV_XRD_PORT_SRV4} /localhost:${XRD_PORT_SRV4} /g" \
121134 " ${file} "
122135 done
123136}
124137
138+ patch_all_metalink_ports () {
139+ local dir
140+
141+ for dir in " ${DATAFOLDER} " /* /data/metalink; do
142+ [[ -d " ${dir} " ]] || continue
143+ patch_metalink_ports " ${dir} " /*
144+ done
145+ }
146+
125147filenames=(" 1db882c8-8cd6-4df1-941f-ce669bad3458.dat"
126148 " 3c9a9dd8-bc75-422c-b12c-f00604486cc1.dat"
127149 " 7235b5d1-cede-4700-a8f9-596506b4cc38.dat"
@@ -213,7 +235,6 @@ generate(){
213235 mkdir -p ${DATAFOLDER} /${i} /data/metalink
214236 cp ${PREDEF} /input* .meta* ${DATAFOLDER} /${i} /data/metalink/
215237 cp ${PREDEF} /ml* .meta* ${DATAFOLDER} /${i} /data/metalink/
216- patch_metalink_ports ${DATAFOLDER} /${i} /data/metalink/*
217238 fi
218239
219240 # download the test files for 'srv2' and add another instance on 1099
@@ -249,12 +270,73 @@ generate(){
249270 rm -rf ${TMPDATAFOLDER}
250271}
251272
273+ kill_pidfile () {
274+ local pidfile=$1
275+ local pid wait_count
276+
277+ [[ -s " ${pidfile} " ]] || return 0
278+ pid=$( ps -o pid= " $( cat " ${pidfile} " ) " 2> /dev/null | tr -d ' ' )
279+ [[ -n " ${pid} " ]] || return 0
280+ kill -s TERM " ${pid} " 2> /dev/null || true
281+ for (( wait_count = 0 ; wait_count < 50 ; wait_count++ )) ; do
282+ ps -p " ${pid} " > /dev/null 2>&1 || return 0
283+ sleep 0.1
284+ done
285+ kill -s KILL " ${pid} " 2> /dev/null || true
286+ }
287+
288+ stop () {
289+ local i
290+
291+ set +e
292+ for i in " ${servernames[@]} " ; do
293+ [[ -d " ${i} " ]] || continue
294+ kill_pidfile " ${i} /cmsd.pid"
295+ kill_pidfile " ${i} /xrootd.pid"
296+ rm -rf " ${i} "
297+ done
298+ rm -f " ${PORTS_ENV} "
299+ set -e
300+ }
301+
252302start (){
303+ PREV_XRD_PORT_SRV1=10943
304+ PREV_XRD_PORT_SRV2=10944
305+ PREV_XRD_PORT_SRV3=10945
306+ PREV_XRD_PORT_SRV4=10946
307+ if [[ -f " ${PORTS_ENV} " ]]; then
308+ # shellcheck disable=SC1091
309+ source " ${PORTS_ENV} "
310+ PREV_XRD_PORT_SRV1=${XRD_PORT_SRV1}
311+ PREV_XRD_PORT_SRV2=${XRD_PORT_SRV2}
312+ PREV_XRD_PORT_SRV3=${XRD_PORT_SRV3}
313+ PREV_XRD_PORT_SRV4=${XRD_PORT_SRV4}
314+ fi
315+
316+ stop
317+
253318 allocate_ports
254319 write_configs
255320 write_ports_env
256321 generate
322+ patch_all_metalink_ports
323+
324+ local need_cleanup=0
325+ start_interrupt_cleanup () {
326+ need_cleanup=1
327+ }
328+ start_exit_cleanup () {
329+ if [[ ${need_cleanup} -eq 1 ]]; then
330+ stop
331+ fi
332+ }
333+
334+ trap start_interrupt_cleanup INT TERM HUP
335+ trap start_exit_cleanup EXIT
336+
257337 set -x
338+ need_cleanup=1
339+
258340 # start for each component
259341 for i in " ${servernames[@]} " ; do
260342 ${XROOTD} -b -k fifo -n ${i} -l xrootd.log -s xrootd.pid -c ${i} .cfg
@@ -266,17 +348,8 @@ start(){
266348 done
267349
268350 sleep 1
269- }
270-
271- stop () {
272- for i in " ${servernames[@]} " ; do
273- if [[ -d " ${i} " ]]; then
274- kill -s TERM $( cat ${i} /cmsd.pid)
275- kill -s TERM $( cat ${i} /xrootd.pid)
276- rm -rf " ${i} "
277- fi
278- done
279- rm -f " ${PORTS_ENV} "
351+ need_cleanup=0
352+ trap - EXIT INT TERM HUP
280353}
281354
282355insertFileInfo () {
0 commit comments