1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
|
#!/bin/sh
xflag=0
CMS_OPTIONS=""
KEY_CONTENT=""
TAG_UPDATE=""
UNSAFE=""
while getopts 'xfk:t:s:h' OPTION
do
case $OPTION in
x) xflag=1
;;
f) CMS_OPTIONS=$CMS_OPTIONS" forceUpdate=1"
;;
k) KEY_CONTENT=$KEY_CONTENT" subsystemLabels=$OPTARG"
;;
t) if [ -z $TAG_UPDATE ] ; then TAG_UPDATE="tagUpdate="; else TAG_UPDATE=$TAG_UPDATE","; fi
TAG_UPDATE=$TAG_UPDATE$OPTARG
;;
s) if [ -z $UNSAFE ] ; then UNSAFE="unsafe="; else UNSAFE=$UNSAFE","; fi
UNSAFE=$UNSAFE$OPTARG
;;
h) echo "Usage: [-xf] runnum tsckey"
echo " -x: write to ORCON instead of sqlite file"
echo " -f: force IOV update"
echo " -k: limit update to the specific systems (default are all, which is equivalent to -k uGT,uGTrs,GMT,EMTF,OMTF,BMTF,CALO)"
echo " -t: override tag name as TYPE:NEW_TAG_BASE (e.g. -t L1TCaloParams:Stage2v1)"
echo " -s: lift transaction safety: carry on even problems are encountered (e.g. -s EMTF,OMTF,CALO)"
exit
;;
esac
done
shift $(($OPTIND - 1))
runnum=$1
tsckey=$2
rskey=$3
export TNS_ADMIN=/opt/offline/slc6_amd64_gcc493/cms/oracle-env/29/etc/
echo "INFO: ADDITIONAL CMS OPTIONS: " $CMS_OPTIONS $KEY_CONTENT $TAG_UPDATE
ONLINEDB_OPTIONS="onlineDBConnect=oracle://cms_omds_adg/CMS_TRG_R onlineDBAuth=./"
PROTODB_OPTIONS="protoDBConnect=oracle://cms_orcon_adg/CMS_CONDITIONS protoDBAuth=./"
#ONLINEDB_OPTIONS="onlineDBConnect=oracle://cms_omds_lb/CMS_TRG_R onlineDBAuth=/data/O2O/L1T/"
#PROTODB_OPTIONS="protoDBConnect=oracle://cms_orcon_prod/CMS_CONDITIONS protoDBAuth=/data/O2O/L1T/"
if [ ${xflag} -eq 0 ]
then
echo "Writing to sqlite_file:l1config.db instead of ORCON."
INDB_OPTIONS="inputDBConnect=sqlite_file:l1config.db inputDBAuth=/data/O2O/L1T/"
OUTDB_OPTIONS="outputDBConnect=sqlite_file:l1config.db outputDBAuth=/data/O2O/L1T/"
COPY_OPTIONS="copyNonO2OPayloads=1 copyDBConnect=sqlite_file:l1config.db"
# COPY_OPTIONS="copyNonO2OPayloads=1 copyDBConnect=oracle://cms_orcoff_prep/CMS_CONDITIONS copyDBAuth=/data/O2O/L1T/"
# COPY_OPTIONS="copyNonO2OPayloads=1 copyDBConnect=oracle://cms_orcon_prod/CMS_CONDITIONS copyDBAuth=/data/O2O/L1T/"
else
# echo "Writing to cms_orcoff_prep"
echo "Writing to cms_orcon_prod"
# INDB_OPTIONS="inputDBConnect=oracle://cms_orcoff_prep/CMS_CONDITIONS inputDBAuth=/data/O2O/L1T/"
# OUTDB_OPTIONS="outputDBConnect=oracle://cms_orcoff_prep/CMS_CONDITIONS outputDBAuth=/data/O2O/L1T/"
INDB_OPTIONS="inputDBConnect=oracle://cms_orcon_prod/CMS_CONDITIONS inputDBAuth=/data/O2O/L1T/"
OUTDB_OPTIONS="outputDBConnect=oracle://cms_orcon_prod/CMS_CONDITIONS outputDBAuth=/data/O2O/L1T/"
#echo "Cowardly refusing to write to the online database"
#exit
fi
#export UTM_XSD_DIR=/data/O2O/L1T/v9_20160823/CMSSW_8_0_18/utm/tmXsd
if cmsRun ${CMSSW_RELEASE_BASE}/src/CondTools/L1TriggerExt/test/l1o2otestanalyzer_cfg.py ${INDB_OPTIONS} printL1TriggerKeyListExt=1 | grep "${tsckey}:${rskey}" ; then echo "TSC payloads present"
else
echo "TSC payloads absent; writing $KEY_CONTENT now"
cmsRun ${CMSSW_RELEASE_BASE}/src/CondTools/L1TriggerExt/test/L1ConfigWritePayloadOnlineExt_cfg.py tscKey=${tsckey} rsKey=${rskey} ${ONLINEDB_OPTIONS} ${PROTODB_OPTIONS} ${OUTDB_OPTIONS} ${COPY_OPTIONS} ${KEY_CONTENT} ${TAG_UPDATE} ${UNSAFE} logTransactions=0 print
o2ocode=$?
if [ ${o2ocode} -ne 0 ]
then
echo "L1-O2O-ERROR: could not write TSC payloads"
echo "L1-O2O-ERROR: could not write TSC payloads" 1>&2
exit ${o2ocode}
fi
fi
cmsRun $CMSSW_RELEASE_BASE/src/CondTools/L1TriggerExt/test/L1ConfigWriteIOVOnlineExt_cfg.py ${CMS_OPTIONS} tscKey=${tsckey} rsKey=${rskey} runNumber=${runnum} ${OUTDB_OPTIONS} ${TAG_UPDATE} logTransactions=0 print | grep -Ev "CORAL.*Info|CORAL.*Debug"
o2ocode=${PIPESTATUS[0]}
if [ ${o2ocode} -eq 0 ]
then
echo
echo "`date` : checking O2O"
if cmsRun $CMSSW_RELEASE_BASE/src/CondTools/L1TriggerExt/test/l1o2otestanalyzer_cfg.py ${INDB_OPTIONS} printL1TriggerKeyExt=1 runNumber=${runnum} ${TAG_UPDATE} | grep ${tsckey} ; then echo "L1-O2O-INFO: IOV OK"
else
echo "L1-O2O-ERROR: IOV NOT OK"
echo "L1-O2O-ERROR: IOV NOT OK" 1>&2
exit 199
fi
else
if [ ${o2ocode} -eq 66 ]
then
echo "L1-O2O-ERROR: unable to connect to OMDS or ORCON. Check authentication token .cms_cond/db.key"
echo "L1-O2O-ERROR: unable to connect to OMDS or ORCON. Check authentication token .cms_cond/db.key" 1>&2
else
if [ ${o2ocode} -eq 65 ]
then
echo "L1-O2O-ERROR: problem writing object to ORCON."
echo "L1-O2O-ERROR: problem writing object to ORCON." 1>&2
fi
fi
exit ${o2ocode}
fi
|