def getRangeWithStartAndDuration(runType, lastRun, runDuration, RRUrl): runInfo = [] startRun = 0 endRun = 0 print "Accessing run registry.......\n" api = RRApi(RRUrl, debug = True) an_array = api.data('GLOBAL', 'runsummary', 'json', ['number','startTime', 'duration'], {'datasetExists': '= true', 'number': '> '+ str(lastRun), 'duration': '> '+str(runDuration), 'rpcPresent' : 'true' , 'runClassName': runType}) for k in an_array: print k['number'], k['startTime'], k['duration']
class RRService: def __init__(self, RRURL = 'http://runregistry.web.cern.ch/runregistry/', debug = False, use_proxy = False): self.use_proxy = use_proxy self.rr_obj = RRApi(RRURL, debug = debug , use_proxy=self.use_proxy) #self.rr_obj = RRApi(RRURL, debug = debug) def __del__(self): pass def getRunRange(self, runType=None, lastRun=None, runDuration=None): ''' :param runType: Collisions, Cosmics & Commissioning or combinations :param lastRun: start run number :param runDuration: duration in seconds :return: list of runs ''' runlist = {} an_array = [] try: #print "Accessing run registry.......\n" an_array = self.rr_obj.data('GLOBAL', 'runsummary', 'json', ['number', 'duration', 'runClassName'], {'datasetExists': '= true', 'number': '> '+ str(lastRun), 'duration': '> '+str(runDuration), 'rpcPresent' : 'true', 'runClassName': runType}, order=['number asc']) except Exception, e: print e.message, ' from getRunRange at ', datetime.datetime.now().replace(microsecond=0) raise for description in an_array: rundescription = {} rundescription['Type'] = str(description['runClassName']) rundescription['duration'] = str(description['duration']) rundescription['status'] = 'new' runlist[str(description['number'])] = rundescription return runlist