File indexing completed on 2023-03-17 11:14:21
0001
0002
0003
0004 xflag=0
0005 CMS_OPTIONS=""
0006 KEY_CONTENT=""
0007 TAG_UPDATE=""
0008 UNSAFE=""
0009
0010 while getopts 'xfk:t:u:d:h' OPTION
0011 do
0012 case $OPTION in
0013 x) xflag=1
0014 ;;
0015 f) CMS_OPTIONS=$CMS_OPTIONS" forceUpdate=1"
0016 ;;
0017 k) KEY_CONTENT=$KEY_CONTENT" subsystemLabels=$OPTARG"
0018 ;;
0019 t) if [ -z $TAG_UPDATE ] ; then TAG_UPDATE="tagUpdate="; else TAG_UPDATE=$TAG_UPDATE","; fi
0020 TAG_UPDATE=$TAG_UPDATE$OPTARG
0021 ;;
0022 u) if [ -z $UNSAFE ] ; then UNSAFE="unsafe="; else UNSAFE=$UNSAFE","; fi
0023 UNSAFE=$UNSAFE$OPTARG
0024 ;;
0025 d) if [ -z $DROPSYSTEMS ] ; then DROPSYSTEMS="dropFromJob="; else DROPSYSTEMS=$DROPSYSTEMS","; fi
0026 DROPSYSTEMS=$DROPSYSTEMS$OPTARG
0027 ;;
0028 h) echo "Usage: [-xf] runnum tsckey"
0029 echo " -x: write to ORCON instead of sqlite file"
0030 echo " -f: force IOV update"
0031 echo " -k: limit update to the specific systems (default are all, which is equivalent to -k uGT,uGTrs,GMT,EMTF,OMTF,BMTF,CALO)"
0032 echo " -t: override tag name as TYPE:NEW_TAG_BASE (e.g. -t L1TCaloParams:Stage2v1)"
0033 echo " -u: lift transaction safety: carry on even problems are encountered (e.g. -u EMTF,OMTF,CALO)"
0034 echo " -d: dron these systems form the job: Dont create WriterProxyT for these systems in the PayloadWriter Constructor (e.g. -d EMTF,OMTF,CALO)"
0035 exit
0036 ;;
0037 esac
0038 done
0039 shift $(($OPTIND - 1))
0040
0041 runnum=$1
0042 tsckey=$2
0043 rskey=$3
0044
0045
0046 echo CMSSW_BASE = $CMSSW_BASE
0047 echo PWD = $PWD
0048 ls -a
0049
0050 export TNS_ADMIN=/etc
0051 echo "INFO: ADDITIONAL CMS OPTIONS: " $CMS_OPTIONS $KEY_CONTENT $TAG_UPDATE
0052
0053 ONLINEDB_OPTIONS="onlineDBConnect=oracle://cms_omds_adg/CMS_TRG_R onlineDBAuth=$HOME/"
0054 PROTODB_OPTIONS="protoDBConnect=oracle://cms_orcon_adg/CMS_CONDITIONS protoDBAuth=$HOME/"
0055
0056
0057 DATA_DIR=$CMSSW_BASE/$SCRAM_TEST_NAME
0058 mkdir $DATA_DIR
0059
0060 for dir in $(echo $CMSSW_SEARCH_PATH | tr ':' '\n') ; do
0061 [ -e $dir/L1TriggerConfig/L1TConfigProducers/data/l1config.db ] || continue
0062 cp $dir/L1TriggerConfig/L1TConfigProducers/data/l1config.db $DATA_DIR/
0063 break
0064 done
0065 local_db=$DATA_DIR/l1config.db
0066 sqlite3 $local_db -cmd "SELECT * from IOV;" ".q" > $DATA_DIR/iov_before
0067
0068 echo "Writing to sqlite_file:$local_db instead of ORCON."
0069 INDB_OPTIONS="inputDBConnect=sqlite_file:$local_db inputDBAuth=$HOME/"
0070 OUTDB_OPTIONS="outputDBConnect=sqlite_file:$local_db outputDBAuth=$HOME/"
0071 COPY_OPTIONS="copyNonO2OPayloads=1 copyDBConnect=sqlite_file:$local_db"
0072
0073
0074
0075
0076
0077 L1TRIGGEREXT_DIR=${CMSSW_BASE}/src/CondTools/L1TriggerExt/test
0078 if [ ! -e ${L1TRIGGEREXT_DIR} ] ; then L1TRIGGEREXT_DIR=${CMSSW_RELEASE_BASE}/src/CondTools/L1TriggerExt/test ; fi
0079 if cmsRun -e ${L1TRIGGEREXT_DIR}/l1o2otestanalyzer_cfg.py ${INDB_OPTIONS} printL1TriggerKeyListExt=1 ${TAG_UPDATE} | c++filt --types | grep "${tsckey}:${rskey}" ; then echo "TSC payloads present"
0080 else
0081 echo "TSC payloads absent; writing $KEY_CONTENT now"
0082 cmsRun -e ${L1TRIGGEREXT_DIR}/L1ConfigWritePayloadOnlineExt_cfg.py tscKey=${tsckey} rsKey=${rskey} ${ONLINEDB_OPTIONS} ${PROTODB_OPTIONS} ${OUTDB_OPTIONS} ${COPY_OPTIONS} ${KEY_CONTENT} ${TAG_UPDATE} ${UNSAFE} ${DROPSYSTEMS} logTransactions=0 print | c++filt --types | tee -a lastLogForFM.txt
0083
0084 o2ocode=${PIPESTATUS[0]}
0085
0086 if [ ${o2ocode} -ne 0 ]
0087 then
0088 echo "L1-O2O-ERROR: could not write TSC payloads"
0089 echo "L1-O2O-ERROR: could not write TSC payloads" 1>&2
0090 exit ${o2ocode}
0091 fi
0092 fi
0093
0094 cmsRun ${L1TRIGGEREXT_DIR}/L1ConfigWriteIOVOnlineExt_cfg.py ${CMS_OPTIONS} tscKey=${tsckey} rsKey=${rskey} runNumber=${runnum} ${OUTDB_OPTIONS} ${TAG_UPDATE} logTransactions=0 print | grep -Ev "CORAL.*Info|CORAL.*Debug" | c++filt --types | tee -a lastLogForFM.txt
0095 o2ocode=${PIPESTATUS[0]}
0096
0097 if [ ${o2ocode} -eq 0 ]
0098 then
0099 echo
0100 echo "`date` : checking O2O"
0101 if cmsRun ${L1TRIGGEREXT_DIR}/l1o2otestanalyzer_cfg.py ${INDB_OPTIONS} printL1TriggerKeyExt=1 runNumber=${runnum} ${TAG_UPDATE} | c++filt --types | grep ${tsckey} ; then echo "L1-O2O-INFO: IOV OK"
0102 else
0103 echo "L1-O2O-ERROR: IOV NOT OK"
0104 echo "L1-O2O-ERROR: IOV NOT OK" 1>&2
0105 exit 199
0106 fi
0107 else
0108 if [ ${o2ocode} -eq 66 ]
0109 then
0110 echo "L1-O2O-ERROR: unable to connect to OMDS or ORCON. Check authentication token .cms_cond/db.key"
0111 echo "L1-O2O-ERROR: unable to connect to OMDS or ORCON. Check authentication token .cms_cond/db.key" 1>&2
0112 else
0113 if [ ${o2ocode} -eq 65 ]
0114 then
0115 echo "L1-O2O-ERROR: problem writing object to ORCON."
0116 echo "L1-O2O-ERROR: problem writing object to ORCON." 1>&2
0117 fi
0118 fi
0119 exit ${o2ocode}
0120 fi
0121
0122 echo ">>>>>>>"
0123 echo ">>>>>>> JOB REPORT"
0124 echo "============================== BEFORE O2O =============================="
0125 cat $DATA_DIR/iov_before
0126 echo "============================== AFTER O2O =============================="
0127 sqlite3 $local_db -cmd "SELECT * from IOV;" ".q"
0128
0129 rm -r $DATA_DIR
0130 exit $o2ocode
0131