Skip to content

Commit ced4590

Browse files
authored
Merge branch 'AliceO2Group:master' into Inject-as-cent
2 parents e9e8c9a + bf4b0b5 commit ced4590

176 files changed

Lines changed: 6084 additions & 1776 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎.github/workflows/sim-tests.yml‎

Lines changed: 192 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,192 @@
1+
---
2+
name: Simulation tests
3+
4+
'on':
5+
pull_request: {}
6+
workflow_dispatch:
7+
inputs:
8+
tag:
9+
description: 'O2PDPSuite tag to test against (default: newest daily)'
10+
type: string
11+
required: false
12+
13+
permissions: {}
14+
15+
concurrency:
16+
group: sim-tests-${{ github.event.pull_request.number || github.ref }}
17+
cancel-in-progress: true
18+
19+
jobs:
20+
sim-tests:
21+
name: Simulation tests against CVMFS
22+
runs-on: [self-hosted, cvmfs]
23+
timeout-minutes: 180
24+
25+
steps:
26+
- name: Checkout code
27+
uses: actions/checkout@v4
28+
with:
29+
# The changed-file logic diffs against the merge base, so the full
30+
# history is needed, not a shallow clone.
31+
fetch-depth: 0
32+
33+
- name: Resolve the diff base
34+
id: base
35+
if: github.event_name == 'pull_request'
36+
env:
37+
BASE_SHA: ${{ github.event.pull_request.base.sha }}
38+
HEAD_SHA: ${{ github.event.pull_request.head.sha }}
39+
run: |
40+
set -eu
41+
git rev-parse --verify "$BASE_SHA^{commit}" >/dev/null || {
42+
echo "::error title=Cannot resolve diff base::pull request base commit $BASE_SHA does not resolve in this checkout"
43+
exit 1
44+
}
45+
git rev-parse --verify "$HEAD_SHA^{commit}" >/dev/null || {
46+
echo "::error title=Cannot resolve diff head::pull request head commit $HEAD_SHA does not resolve in this checkout"
47+
exit 1
48+
}
49+
merge_base=$(git merge-base "$BASE_SHA" "$HEAD_SHA") || {
50+
echo "::error title=Cannot compute diff base::git merge-base failed"
51+
exit 1
52+
}
53+
[ -n "$merge_base" ] || {
54+
echo "::error title=Cannot compute diff base::merge base is empty"
55+
exit 1
56+
}
57+
echo "sha=$merge_base" >> "$GITHUB_OUTPUT"
58+
59+
- name: Skip when not relevant or opted into the source build
60+
id: gate
61+
if: github.event_name == 'pull_request'
62+
env:
63+
BASE_SHA: ${{ steps.base.outputs.sha }}
64+
HEAD_SHA: ${{ github.event.pull_request.head.sha }}
65+
run: |
66+
set -eu
67+
changed=$(git diff --name-only "$BASE_SHA" "$HEAD_SHA")
68+
# Opting in means *editing* the existing sentinel, so only count it
69+
# when it is Modified. A pull request that Adds it — which is what the
70+
# pull request introducing the sentinel does — would otherwise trip its
71+
# own opt-out and pass without testing anything.
72+
opted=$(git diff --name-only --diff-filter=M "$BASE_SHA" "$HEAD_SHA")
73+
if grep -qx 'test/needs-o2-dev' <<< "$opted" ; then
74+
echo "::notice title=Skipped::this pull request touches test/needs-o2-dev, so it is tested by build/O2DPG/sim/o2dev against O2 dev instead"
75+
echo "skip=true" >> "$GITHUB_OUTPUT"
76+
elif ! grep -qE '^(DATA/|MC/|test/|RelVal/)' <<< "$changed" ; then
77+
echo "::notice title=Skipped::no changed file matches DATA/, MC/, test/ or RelVal/"
78+
echo "skip=true" >> "$GITHUB_OUTPUT"
79+
else
80+
echo "skip=false" >> "$GITHUB_OUTPUT"
81+
fi
82+
83+
- name: Check the CVMFS environment
84+
if: steps.gate.outputs.skip != 'true'
85+
run: |
86+
set -eu
87+
test -d /cvmfs/alice.cern.ch || {
88+
echo "::error title=CVMFS unavailable::/cvmfs/alice.cern.ch is not mounted on this runner"
89+
exit 1
90+
}
91+
test -x /cvmfs/alice.cern.ch/bin/alienv || {
92+
echo "::error title=CVMFS unavailable::/cvmfs/alice.cern.ch/bin/alienv is missing"
93+
exit 1
94+
}
95+
96+
- name: Check the AliEn token
97+
if: steps.gate.outputs.skip != 'true'
98+
env:
99+
JALIEN_TOKEN_CERT: /run/alien-ci/tokencert.pem
100+
JALIEN_TOKEN_KEY: /run/alien-ci/tokenkey.pem
101+
run: |
102+
set -eu
103+
# DPL's CCDB backend refuses to talk to alice-ccdb.cern.ch without a
104+
# token and aborts the whole device, so check up front rather than
105+
# letting it surface as a confusing task crash deep in a workflow.
106+
for f in "$JALIEN_TOKEN_CERT" "$JALIEN_TOKEN_KEY" ; do
107+
test -r "$f" || {
108+
echo "::error title=No AliEn token::$f is missing or unreadable. On the runner host: systemctl start alien-ci-token.service"
109+
exit 1
110+
}
111+
done
112+
if ! openssl x509 -in "$JALIEN_TOKEN_CERT" -noout -checkend 3600 >/dev/null 2>&1 ; then
113+
echo "::error title=AliEn token expiring::the token expires within the hour. On the runner host: systemctl start alien-ci-token.service"
114+
exit 1
115+
fi
116+
echo "AliEn token valid until $(openssl x509 -in "$JALIEN_TOKEN_CERT" -noout -enddate | cut -d= -f2)"
117+
118+
- name: Resolve the O2PDPSuite tag
119+
id: tag
120+
if: steps.gate.outputs.skip != 'true'
121+
env:
122+
REQUESTED_TAG: ${{ inputs.tag }}
123+
PR_BODY: ${{ github.event.pull_request.body }}
124+
run: |
125+
set -eu
126+
# shellcheck source=test/ci/resolve_tag.sh
127+
. test/ci/resolve_tag.sh
128+
moduledir=/cvmfs/alice.cern.ch/el9-x86_64/Modules/modulefiles/O2PDPSuite
129+
requested=$REQUESTED_TAG
130+
if [ -z "$requested" ]; then
131+
# A PR can pin the release with a line "sim-tests-tag: <tag>".
132+
requested=$(printf '%s\n' "$PR_BODY" |
133+
sed -n 's/^[[:space:]]*sim-tests-tag:[[:space:]]*//p' | head -n 1 |
134+
tr -d '[:space:]')
135+
fi
136+
tag=$(resolve_o2pdpsuite_tag "$moduledir" "$requested") || {
137+
echo "::error title=No usable O2PDPSuite release::see the message above"
138+
exit 1
139+
}
140+
echo "Testing against O2PDPSuite::$tag"
141+
echo "tag=$tag" >> "$GITHUB_OUTPUT"
142+
143+
- name: Run the O2DPG tests
144+
if: steps.gate.outputs.skip != 'true'
145+
env:
146+
O2PDPSUITE_TAG: ${{ steps.tag.outputs.tag }}
147+
O2DPG_TEST_HASH_BASE: ${{ steps.base.outputs.sha }}
148+
O2DPG_TEST_HASH_HEAD: ${{ github.event.pull_request.head.sha }}
149+
JOBS: 8
150+
# o2dpg_sim_workflow.py calls JAlien(['whoami']) purely to fill the
151+
# AOD's --created-by field, and only when JALIEN_USER is unset. Setting
152+
# it keeps the tests from needing a GRID credential at all, which
153+
# matters here: anything readable by this account is readable by the
154+
# fork-pull-request code that runs as it.
155+
JALIEN_USER: alien-ci
156+
# DPL's CCDB backend needs a GRID token for alice-ccdb.cern.ch. These
157+
# are *paths* to a short-lived token minted from a service certificate
158+
# by a root-owned timer on the runner host; the certificate itself is
159+
# never readable by this account. Verified that paths work — the same
160+
# variables also accept PEM content, which is what ali-bot passes.
161+
JALIEN_TOKEN_CERT: /run/alien-ci/tokencert.pem
162+
JALIEN_TOKEN_KEY: /run/alien-ci/tokenkey.pem
163+
run: |
164+
set -eu
165+
# Everything after "-c" is joined into one string and re-evaluated
166+
# by the CVMFS alienv via "bash -c \"$*\"". Quoting here is applied
167+
# once then discarded, so it is safe for the runner's workspace path,
168+
# but a path with a space or "$" would break or double-evaluate.
169+
/cvmfs/alice.cern.ch/bin/alienv setenv "O2PDPSuite/$O2PDPSUITE_TAG" -c \
170+
env O2DPG_ROOT="$PWD" O2DPG_MC_CONFIG_ROOT="$PWD" \
171+
O2DPG_TEST_REPO_DIR="$PWD" \
172+
O2DPG_TEST_HASH_BASE="$O2DPG_TEST_HASH_BASE" \
173+
O2DPG_TEST_HASH_HEAD="$O2DPG_TEST_HASH_HEAD" \
174+
JOBS="$JOBS" \
175+
bash test/run_tests.sh
176+
177+
- name: Upload logs
178+
if: always()
179+
uses: actions/upload-artifact@v4
180+
with:
181+
name: o2dpg-test-logs
182+
path: |
183+
o2dpg_tests/**/*.log
184+
o2dpg_tests/**/*serverlog*
185+
o2dpg_tests/**/*workerlog*
186+
o2dpg_tests/**/*mergerlog*
187+
if-no-files-found: ignore
188+
retention-days: 14
189+
190+
- name: Prune test artifacts
191+
if: always()
192+
run: find o2dpg_tests -type f ! -name '*.log' ! -name '*serverlog*' ! -name '*workerlog*' ! -name '*mergerlog*' -delete || true

‎.github/workflows/syntax-checks.yml‎

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,24 @@ jobs:
134134
- name: Run the FileIOGraph test suite
135135
run: python3 -m unittest discover -s UTILS/FileIOGraph/tests -t UTILS/FileIOGraph/tests
136136

137+
bash-harnesses:
138+
name: Test-harness unit tests
139+
runs-on: ubuntu-latest
140+
141+
steps:
142+
- name: Checkout code
143+
uses: actions/checkout@v4
144+
145+
- name: Run the offline test harnesses
146+
run: |
147+
error=0
148+
for t in test/tests/*.sh ; do
149+
echo "::group::$t"
150+
bash "$t" || error=1
151+
echo "::endgroup::"
152+
done
153+
exit "$error"
154+
137155
pylint:
138156
name: Pylint
139157
runs-on: ubuntu-latest

‎DATA/README.md‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,7 @@ Resolving deltas: 100% (64/64), done.
194194
[drohr@epn245 ~]$ cd O2DPG/DATA/testing/
195195
[drohr@epn245 testing]$ mkdir -p private/drohr
196196
[drohr@epn245 testing]$ ls examples/
197-
example-workflow.sh workflows.desc
197+
example-workflow.sh workflows.desc
198198
[drohr@epn245 testing]$ cp examples/* private/drohr/
199199
[drohr@epn245 testing]$ vi private/drohr/workflows.desc
200200
[drohr@epn245 testing]$ mv private/drohr/example-workflow.sh private/drohr/my-workflow.sh
@@ -227,7 +227,7 @@ export WORKFLOW_PARAMETERS= # Additiona
227227
export RECO_NUM_NODES_OVERRIDE=0 # Override the number of EPN compute nodes to use (default is specified in description library file)
228228
export NHBPERTF=256 # Number of HBF per TF
229229
230-
/opt/alisw/el9/GenTopo/bin/gen_topo.sh > $HOME/gen_topo_output.xml
230+
/opt/alisw/el10/GenTopo/bin/gen_topo.sh > $HOME/gen_topo_output.xml
231231
[drohr@epn245 test]$ ./run.sh
232232
Loading ODC/0.36-1
233233
Loading requirement: BASE/1.0 GCC-Toolchain/v10.2.0-alice2-3 fmt/7.1.0-10 FairLogger/v1.9.1-7 zlib/v1.2.8-8 OpenSSL/v1.0.2o-9 libpng/v1.6.34-9 sqlite/v3.15.0-2 libffi/v3.2.1-2 FreeType/v2.10.1-8 Python/v3.6.10-12 Python-modules/1.0-16 boost/v1.75.0-13 ZeroMQ/v4.3.3-6 ofi/v1.7.1-8 asio/v1.19.1-2 asiofi/v0.5.1-2 DDS/3.5.16-5 FairMQ/v1.4.40-4
@@ -277,7 +277,7 @@ export WORKFLOW_PARAMETERS=EVENT_DISPLAY,CTF,GPU # Additiona
277277
export RECO_NUM_NODES_OVERRIDE=0 # Override the number of EPN compute nodes to use (default is specified in description library file)
278278
export NHBPERTF=256 # Number of HBF per TF
279279
280-
/opt/alisw/el9/GenTopo/bin/gen_topo.sh > $HOME/gen_topo_output.xml
280+
/opt/alisw/el10/GenTopo/bin/gen_topo.sh > $HOME/gen_topo_output.xml
281281
[drohr@epn245 test]$ ./run.sh
282282
Loading ODC/0.36-1
283283
Loading requirement: BASE/1.0 GCC-Toolchain/v10.2.0-alice2-3 fmt/7.1.0-10 FairLogger/v1.9.1-7 zlib/v1.2.8-8 OpenSSL/v1.0.2o-9 libpng/v1.6.34-9 sqlite/v3.15.0-2 libffi/v3.2.1-2 FreeType/v2.10.1-8 Python/v3.6.10-12 Python-modules/1.0-16 boost/v1.75.0-13 ZeroMQ/v4.3.3-6 ofi/v1.7.1-8 asio/v1.19.1-2 asiofi/v0.5.1-2 DDS/3.5.16-5 FairMQ/v1.4.40-4

‎DATA/common/setenv_calib.sh‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ if [[ $SYNCMODE == 1 ]] && has_processing_step ENTROPY_ENCODER && [[ ! -z "$WORK
3535
if has_detector_calib EMC && has_detector_reco EMC && [[ $SYNCMODE != 1 ]]; then CAN_DO_CALIB_EMC_ASYNC_RECALIB=1; else CAN_DO_CALIB_EMC_ASYNC_RECALIB=0; fi
3636
if [[ $SYNCMODE != 1 ]] && has_detector_reco TPC; then CAN_DO_CALIB_ASYNC_EXTRACTTPCCURRENTS=1; else CAN_DO_CALIB_ASYNC_EXTRACTTPCCURRENTS=0; fi
3737
if [[ $SYNCMODE != 1 ]] && has_detector_reco TPC; then CAN_DO_CALIB_ASYNC_EXTRACTTIMESERIES=1; else CAN_DO_CALIB_ASYNC_EXTRACTTIMESERIES=0; fi
38+
if [[ $SYNCMODE != 1 ]] && has_detector_reco TPC; then CAN_DO_CALIB_ASYNC_EXTRACTCOSMICS=1; else CAN_DO_CALIB_ASYNC_EXTRACTCOSMICS=0; fi
3839

3940
# additional individual settings for calibration workflows
4041
if has_detector CTP; then export CALIB_TPC_SCDCALIB_CTP_INPUT="--enable-ctp"; else export CALIB_TPC_SCDCALIB_CTP_INPUT=""; fi
@@ -222,6 +223,7 @@ fi
222223
( [[ -z ${CALIB_ASYNC_DISABLE3DCURRENTS:-} ]] || [[ $CAN_DO_CALIB_ASYNC_DISABLE3DCURRENTS == 0 ]] ) && CALIB_ASYNC_DISABLE3DCURRENTS=0
223224
: ${ON_SKIMMED_DATA:=0}
224225
( [[ -z ${CALIB_ASYNC_EXTRACTTIMESERIES:-} ]] || [[ $CAN_DO_CALIB_ASYNC_EXTRACTTIMESERIES == 0 ]] ) && CALIB_ASYNC_EXTRACTTIMESERIES=0
226+
( [[ -z ${CALIB_ASYNC_EXTRACTCOSMICS:-} ]] || [[ $CAN_DO_CALIB_ASYNC_EXTRACTCOSMICS == 0 ]] ) && CALIB_ASYNC_EXTRACTCOSMICS=0
225227

226228

227229
if [[ "0${GEN_TOPO_VERBOSE:-}" == "01" ]]; then

‎DATA/production/configurations/asyncReco/async_pass.sh‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -205,6 +205,10 @@ if [[ "$ALIEN_JDL_EXTRACTTIMESERIES" == "1" ]]; then
205205
export ADD_CALIB=1
206206
fi
207207

208+
if [[ "${ALIEN_JDL_EXTRACTCOSMICS:-}" == "1" ]]; then
209+
export ADD_CALIB=1
210+
fi
211+
208212
if [[ "$ALIEN_JDL_DOTPCTIMEGAINCALIB" == "1" ]]; then
209213
export ADD_CALIB=1
210214
fi

‎DATA/production/configurations/asyncReco/setenv_extra.sh‎

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -797,6 +797,26 @@ if [[ $ADD_CALIB == "1" ]]; then
797797
export TPCTIMESERIES_MULT_MAX=$ALIEN_JDL_TPCTIMESERIESMULTMAX
798798
fi
799799
fi
800+
801+
# cosmic muons in collision data: matcher (TPC-only legs) + raw clusters of each cosmic -> o2_cosmics_full.root
802+
if [[ -n ${ALIEN_JDL_EXTRACTCOSMICS:-} ]] ; then
803+
echo "Adding cosmics matching and raw-cluster output in setenv_extra.sh"
804+
export CALIB_ASYNC_EXTRACTCOSMICS=$ALIEN_JDL_EXTRACTCOSMICS
805+
if [[ -n ${ALIEN_JDL_COSMICSPRESET:-} ]]; then
806+
export COSMICS_PRESET=$ALIEN_JDL_COSMICSPRESET
807+
fi
808+
# optional: matcher settings on top of the preset (e.g. cosmicsMatch.minSeedDCAxyTOF=0), extra options (e.g. --debug-tree), and
809+
# COSMICSPVVETO=0 to switch off the veto of legs belonging to primary-vertex contributors (on by default in calib-workflow.sh)
810+
if [[ -n ${ALIEN_JDL_COSMICSCONFIG:-} ]]; then
811+
export CONFIG_EXTRA_PROCESS_o2_cosmics_match_workflow+=";$ALIEN_JDL_COSMICSCONFIG"
812+
fi
813+
if [[ -n ${ALIEN_JDL_COSMICSARGS:-} ]]; then
814+
export ARGS_EXTRA_PROCESS_o2_cosmics_match_workflow+=" $ALIEN_JDL_COSMICSARGS"
815+
fi
816+
if [[ -n ${ALIEN_JDL_COSMICSPVVETO:-} ]]; then
817+
export COSMICS_PV_VETO=$ALIEN_JDL_COSMICSPVVETO
818+
fi
819+
fi
800820
if [[ $ALIEN_JDL_DOUPLOADSLOCALLY == 1 ]]; then
801821
export CCDB_POPULATOR_UPLOAD_PATH="file://$PWD"
802822
fi

‎DATA/tools/epn/gen_topo.sh‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
# Author: David Rohr
55

66
# This script is developed within O2DPG: https://github.com/AliceO2Group/O2DPG/blob/master/DATA/tools/epn/gen_topo.sh
7-
# It is installed as package GenTopo to the updateable RPM path /opt/alisw/el9/GenTopo/bin/ on the EPNs
7+
# It is installed as package GenTopo to the updateable RPM path /opt/alisw/el10/GenTopo/bin/ on the EPNs
88

99
# The purpose of this script is to separate the topology generation (which is in O2DPG) from the setting of the EPN-related settings
1010
# This script contains only the EPN related settings
@@ -31,12 +31,12 @@ if [[ "0$GEN_TOPO_ONTHEFLY" == "01" ]]; then export SHM_MANAGER_SHMID=1 ;fi
3131

3232
# Command for topology merging
3333
if [[ -z "$GEN_TOPO_ODC_EPN_TOPO_CMD" ]]; then
34-
export GEN_TOPO_ODC_EPN_TOPO_CMD='env - PYTHONPATH+=/usr/local/lib/python3.9/site-packages:/usr/local/lib64/python3.9/site-packages /usr/local/bin/epn-topo-merger'
34+
export GEN_TOPO_ODC_EPN_TOPO_CMD='env - PYTHONPATH+=/usr/local/lib/python3.12/site-packages:/usr/local/lib64/python3.12/site-packages /usr/local/bin/epn-topo-merger'
3535
fi
3636

3737
# Command for postprocessing of topology generation after topology caching
3838
if [[ -z "$GEN_TOPO_ODC_EPN_TOPO_POST_CACHING_CMD" ]]; then
39-
export GEN_TOPO_ODC_EPN_TOPO_POST_CACHING_CMD='env - PYTHONPATH+=/usr/local/lib/python3.9/site-packages:/usr/local/lib64/python3.9/site-packages /usr/local/bin/epn-topo-alloc'
39+
export GEN_TOPO_ODC_EPN_TOPO_POST_CACHING_CMD='env - PYTHONPATH+=/usr/local/lib/python3.12/site-packages:/usr/local/lib64/python3.12/site-packages /usr/local/bin/epn-topo-alloc'
4040
fi
4141

4242
# Extra arguments for topology merger
@@ -55,7 +55,7 @@ else
5555
fi
5656
fi
5757
# Run stage 2 of GenTopo, which does the PDP part, still from hardcoded updatable RPM path
58-
/opt/alisw/el9/GenTopo/bin/gen_topo_o2dpg.sh
58+
/opt/alisw/el10/GenTopo/bin/gen_topo_o2dpg.sh
5959
if [ $? != 0 ]; then
6060
exit 1
6161
fi

‎DATA/tools/epn/gen_topo_logged.sh‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ if [[ ! -z $GEN_TOPO_LOGDATE ]]; then
1717
fi
1818

1919
STDERRFILE=$(mktemp)
20-
/opt/alisw/el9/GenTopo/bin/gen_topo.sh 2> $STDERRFILE
20+
/opt/alisw/el10/GenTopo/bin/gen_topo.sh 2> $STDERRFILE
2121
RETVAL=$?
2222

2323
if [[ ! -z $GEN_TOPO_LOGDATE ]]; then

‎DATA/tools/epn/run.sh‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@ if [[ "0$GEN_TOPO_RUN_HOME" == "01" ]]; then
3535
[[ -z $O2DPG_ROOT || -z $O2_ROOT ]] && { echo "ERROR: O2 and O2DPG must be in the environment!"; exit 1; }
3636
$O2DPG_ROOT/DATA/tools/epn/gen_topo.sh > $OUTPUT_FILE_NAME
3737
else
38-
[[ ! -f /opt/alisw/el9/GenTopo/bin/gen_topo.sh ]] && { echo "ERROR: EPN installation of gen_topo.sh missing. Are you trying to run at home? Then please set GEN_TOPO_RUN_HOME=1!"; exit 1; }
39-
/opt/alisw/el9/GenTopo/bin/gen_topo.sh > $OUTPUT_FILE_NAME
38+
[[ ! -f /opt/alisw/el10/GenTopo/bin/gen_topo.sh ]] && { echo "ERROR: EPN installation of gen_topo.sh missing. Are you trying to run at home? Then please set GEN_TOPO_RUN_HOME=1!"; exit 1; }
39+
/opt/alisw/el10/GenTopo/bin/gen_topo.sh > $OUTPUT_FILE_NAME
4040
fi
4141
if [[ $? == 0 ]]; then
4242
echo Generated XML topology $OUTPUT_FILE_NAME

‎DATA/tools/parse‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,9 +60,9 @@ else:
6060

6161
modulecmd = " module purge ; "
6262
if 'GEN_TOPO_OVERRIDE_MODULE_DIR' in os.environ:
63-
mod.module('unuse', '/opt/alisw/el9/modulefiles')
63+
mod.module('unuse', '/opt/alisw/el10/modulefiles')
6464
mod.module('use', os.environ['GEN_TOPO_OVERRIDE_MODULE_DIR'])
65-
modulecmd += ' module unuse /opt/alisw/el9/modulefiles 2>&1 ; module use ' + os.environ['GEN_TOPO_OVERRIDE_MODULE_DIR'] + ' 2>&1 ; '
65+
modulecmd += ' module unuse /opt/alisw/el10/modulefiles 2>&1 ; module use ' + os.environ['GEN_TOPO_OVERRIDE_MODULE_DIR'] + ' 2>&1 ; '
6666

6767
f = open(sys.argv[1], 'r')
6868
for line in f:

0 commit comments

Comments
 (0)