Skip to content

Commit ea49895

Browse files
authored
a script to update remote ports (#1866)
1 parent 681f99d commit ea49895

2 files changed

Lines changed: 169 additions & 0 deletions

File tree

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
className,remotePort
2+
o2::quality_control_modules::cpv::PedestalTask,29000
3+
o2::quality_control_modules::cpv::PhysicsTask,29001
4+
o2::quality_control_modules::ctp::CTPRawDataReaderTask,29050
5+
o2::quality_control_modules::daq::DaqTask,29100
6+
o2::quality_control_modules::emcal::CalibMonitoringTask,29150
7+
o2::quality_control_modules::emcal::CellTask,29151
8+
o2::quality_control_modules::emcal::ClusterTask,29152
9+
o2::quality_control_modules::emcal::RawErrorTask,29153
10+
o2::quality_control_modules::emcal::RawTask,29154
11+
o2::quality_control_modules::emcal::SupermoduleProjectorTask,29155
12+
o2::quality_control_modules::fdd::DigitQcTask,29200
13+
o2::quality_control_modules::ft0::DigitQcTask,29250
14+
o2::quality_control_modules::ft0::DigitQcTaskLaser,29251
15+
o2::quality_control_modules::ft0::OutOfBunchCollTask,29252
16+
o2::quality_control_modules::ft0::TriggerQcTask,29253
17+
o2::quality_control_modules::fv0::DigitQcTask,29300
18+
o2::quality_control_modules::fv0::DigitQcTaskLaser,29301
19+
o2::quality_control_modules::fv0::OutOfBunchCollTask,29302
20+
o2::quality_control_modules::fv0::TriggerQcTask,29303
21+
o2::quality_control_modules::glo::ITSTPCMatchingTask,29350
22+
o2::quality_control_modules::glo::VertexingQcTask,29351
23+
o2::quality_control_modules::hmpid::HmpidTask,29400
24+
o2::quality_control_modules::its::ITSClusterTask,29450
25+
o2::quality_control_modules::its::ITSDecodingErrorTask,29451
26+
o2::quality_control_modules::its::ITSFeeTask,29452
27+
o2::quality_control_modules::its::ITSFhrTask,29453
28+
o2::quality_control_modules::its::ITSNoisyPixelTask,29454
29+
o2::quality_control_modules::its::ITSThresholdCalibrationTask,29455
30+
o2::quality_control_modules::its::ITSTrackTask,29456
31+
o2::quality_control_modules::mft::QcMFTClusterTask,29550
32+
o2::quality_control_modules::mft::QcMFTDigitTask,29551
33+
o2::quality_control_modules::mft::QcMFTReadoutTask,29552
34+
o2::quality_control_modules::mft::QcMFTTrackTask,29553
35+
o2::quality_control_modules::mid::CalibMQcTask,29600
36+
o2::quality_control_modules::mid::CalibQcTask,29601
37+
o2::quality_control_modules::mid::ClustQcTask,29602
38+
o2::quality_control_modules::mid::DigitsQcTask,29603
39+
o2::quality_control_modules::mid::RawQcTask,29604
40+
o2::quality_control_modules::mid::TracksQcTask,29605
41+
o2::quality_control_modules::muon::TracksTask,29512
42+
o2::quality_control_modules::muonchambers::ClustersTask,29500
43+
o2::quality_control_modules::muonchambers::DecodingErrorsTask,29501
44+
o2::quality_control_modules::muonchambers::DecodingTask,29502
45+
o2::quality_control_modules::muonchambers::DigitsTask,29503
46+
o2::quality_control_modules::muonchambers::ErrorTask,29504
47+
o2::quality_control_modules::muonchambers::PedestalsTask,29505
48+
o2::quality_control_modules::muonchambers::PhysicsTaskDigits,29506
49+
o2::quality_control_modules::muonchambers::PhysicsTaskPreclusters,29507
50+
o2::quality_control_modules::muonchambers::PhysicsTaskRofs,29508
51+
o2::quality_control_modules::muonchambers::PreclustersTask,29509
52+
o2::quality_control_modules::muonchambers::RofsTask,29510
53+
o2::quality_control_modules::muonchambers::TracksTask,29511
54+
o2::quality_control_modules::phos::CalibQcTask,29650
55+
o2::quality_control_modules::phos::ClusterQcTask,29651
56+
o2::quality_control_modules::phos::RawQcTask,29652
57+
o2::quality_control_modules::tof::TOFMatchedTracks,29750
58+
o2::quality_control_modules::tof::TaskDigits,29751
59+
o2::quality_control_modules::tof::TaskRaw,29752
60+
o2::quality_control_modules::tpc::CalDetPublisher,29800
61+
o2::quality_control_modules::tpc::ClusterVisualizer,29801
62+
o2::quality_control_modules::tpc::Clusters,29802
63+
o2::quality_control_modules::tpc::DCSPTemperature,29803
64+
o2::quality_control_modules::tpc::IDCs,29804
65+
o2::quality_control_modules::tpc::LaserTracks,29805
66+
o2::quality_control_modules::tpc::PID,29806
67+
o2::quality_control_modules::tpc::RatioGeneratorTPC,29807
68+
o2::quality_control_modules::tpc::RawDigits,29808
69+
o2::quality_control_modules::tpc::Tracks,29809
70+
o2::quality_control_modules::trd::DigitsTask,29850
71+
o2::quality_control_modules::trd::PulseHeight,29851
72+
o2::quality_control_modules::trd::PulseHeightTrackMatch,29852
73+
o2::quality_control_modules::trd::RawData,29853
74+
o2::quality_control_modules::trd::TrackingTask,29854
75+
o2::quality_control_modules::trd::TrackletsTask,29855
76+
o2::quality_control_modules::zdc::ZDCRawDataTask,29900
77+
o2::quality_control_modules::zdc::ZDCRecDataTask,29901
Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
# This script updates the ""remotePort" values in QC config files according to the mapping in remotePortMapping.csv
2+
# The mapping is between className and remotePort. Thus, there are a few exceptions, where the same class is used
3+
# for different tasks. The corresponding corrections are included in this script.
4+
# It is ad hoc and specific but it can easily be modified for similar purpose.
5+
#
6+
# KNOWN ISSUES:
7+
# - for very large configuration files, the consul upload fails
8+
9+
#set -x
10+
11+
HEAD_NODES=(
12+
# alio2-cr1-flp162
13+
# alio2-cr1-flp146
14+
# alio2-cr1-flp160
15+
# alio2-cr1-flp187
16+
# alio2-cr1-flp148
17+
# alio2-cr1-flp182
18+
# alio2-cr1-flp159
19+
# alio2-cr1-flp164
20+
# alio2-cr1-flp178
21+
# alio2-cr1-hv-head01
22+
# alio2-cr1-flp166
23+
# alio2-cr1-flp181
24+
# alio2-cr1-mvs03
25+
# barth-test-cc7.cern.ch
26+
#ali-consul.cern.ch
27+
# ali-staging-consul.cern.ch
28+
)
29+
echo "Number of nodes: ${#HEAD_NODES[@]}"
30+
31+
# Check that we have `jq`
32+
if ! command -v jq &> /dev/null
33+
then
34+
echo "jq could not be found, please install it."
35+
exit
36+
fi
37+
38+
# read csv file into an associative array
39+
declare -A classPortMap
40+
while IFS=, read -r class port
41+
do
42+
classPortMap["$class"]="$port"
43+
done < remotePortMapping.csv
44+
45+
# for each node
46+
for ((nodeIndex = 0; nodeIndex < ${#HEAD_NODES[@]}; nodeIndex++)); do
47+
48+
node=${HEAD_NODES[${nodeIndex}]}
49+
echo "node: $node"
50+
export CONSUL_HTTP_ADDR=${node}:8500
51+
echo $CONSUL_HTTP_ADDR
52+
53+
# Get the list of config files for qc
54+
list_files=$(curl -s ${node}:8500/v1/kv/o2/components/qc/ANY/any?keys=true | jq -c -r '.[]')
55+
IFS=$'\n' read -rd '' -a array_files <<<"$list_files"
56+
57+
# backup folder
58+
backup_dir_name="backup-consul-`date +%Y.%m.%d`"
59+
mkdir $backup_dir_name
60+
cd $backup_dir_name
61+
62+
# for each file
63+
for file in "${array_files[@]}"; do
64+
echo "file: $file"
65+
66+
# download
67+
local_file=$(basename $file)
68+
consul kv get "$file" >$local_file
69+
70+
for key in "${!classPortMap[@]}"; do
71+
className="$key"
72+
remotePort="${classPortMap[$key]}"
73+
jq --arg className "$className" --arg remotePort "$remotePort" \
74+
'(.qc.tasks[]? | select(.className == $className and has("remotePort")?) .remotePort) = $remotePort' \
75+
$local_file > temp && mv temp $local_file
76+
done
77+
# special cases
78+
jq '(if .qc.tasks.MCHFRofs | has("remotePort") then .qc.tasks.MCHFRofs.remotePort = "29512" else . end)' $local_file > temp && mv temp $local_file
79+
jq '(if .qc.tasks.MergeMETOFwTRD | has("remotePort") then .qc.tasks.MergeMETOFwTRD.remotePort = "29753" else . end)' $local_file > temp && mv temp $local_file
80+
jq '(if .qc.tasks.ExpertPedestalsOnFLP | has("remotePort") then .qc.tasks.ExpertPedestalsOnFLP.remotePort = "29002" else . end)' $local_file > temp && mv temp $local_file
81+
82+
# or simply modify :
83+
#new_content=$(sed 's/http:\/\/localhost:8084/o2-ccdb.internal/g' $local_file)
84+
new_content=$(cat $local_file)
85+
# echo "new_content: $new_content"
86+
echo local_file: $local_file
87+
echo new_content: $new_content
88+
# upload (uncomment)
89+
# consul kv put "$file" "$new_content"
90+
done
91+
done
92+

0 commit comments

Comments
 (0)