ATLAS Offline Software
GetNextRunList.py
Go to the documentation of this file.
1 #! /usr/bin/env python3
2 
3 import os.path, os
4 SCRIPTDIR = os.path.dirname(os.path.realpath(__file__))
5 DATADIR = os.environ.get('DCSC_DATADIR', SCRIPTDIR)
6 
7 from time import strftime
8 
9 from xmlrpc.client import ServerProxy
10 
11 def get_runs_since(run_number: int) -> list[int]:
12  """
13  Get runs that occured since `run_number`, excluding it.
14  """
15  s = ServerProxy('http://atlasdqm.cern.ch:8080')
16  run_list: list[int] = s.get_completed_runs({'low_run': run_number}) # type: ignore
17  if run_number in run_list:
18  run_list.remove(run_number)
19  return run_list
20 
21 def main():
22  """
23  Read the lastRunNumber file, find runs which happened since it.
24  Then create a runList file containing these runs, and overwrite lastRunNumber.
25  """
26  try:
27  last_run = int(open(os.path.join(DATADIR, "lastRunNumber"), 'r+').read())
28  except Exception:
29  last_run = 450000
30  new_runs = get_runs_since(last_run)
31 
32  open(os.path.join(DATADIR, "runList"), "w").write("\n".join(map(str, new_runs)))
33 
34  if not new_runs:
35  print(strftime("%d/%m/%Y %H:%M:%S"), "Nothing to do")
36  return
37 
38  last_run = new_runs[-1]
39  open(os.path.join(DATADIR, "lastRunNumber"), "w").write(str(last_run)+"\n")
40  print(strftime("%d/%m/%Y %H:%M:%S"), "Wrote new runList. Last run is", last_run, new_runs)
41 
42 if __name__ == "__main__":
43  main()
read
IovVectorMap_t read(const Folder &theFolder, const SelectionCriterion &choice, const unsigned int limit=10)
Definition: openCoraCool.cxx:569
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
GetNextRunList.get_runs_since
list[int] get_runs_since(int run_number)
Definition: GetNextRunList.py:11
python.ByteStreamConfig.write
def write
Definition: Event/ByteStreamCnvSvc/python/ByteStreamConfig.py:248
GetNextRunList.main
def main()
Definition: GetNextRunList.py:21
TCS::join
std::string join(const std::vector< std::string > &v, const char c=',')
Definition: Trigger/TrigT1/L1Topo/L1TopoCommon/Root/StringUtils.cxx:10
Trk::open
@ open
Definition: BinningType.h:40
Muon::print
std::string print(const MuPatSegment &)
Definition: MuonTrackSteering.cxx:28
str
Definition: BTagTrackIpAccessor.cxx:11