Special executor that will enable a logfile scan as part of its validation.
More...
|
def | __init__ (self, name='Logscan') |
|
def | preExecute (self, input=set(), output=set()) |
|
def | validate (self) |
|
def | inData (self) |
|
def | inData (self, value) |
|
def | outData (self) |
|
def | outData (self, value) |
|
def | myMerger (self) |
| Now define properties for these data members. More...
|
|
def | name (self) |
|
def | name (self, value) |
|
def | substep (self) |
|
def | trf (self) |
|
def | trf (self, value) |
|
def | inDataUpdate (self, value) |
|
def | outDataUpdate (self, value) |
|
def | input (self) |
|
def | output (self) |
|
def | extraMetadata (self) |
|
def | hasExecuted (self) |
|
def | rc (self) |
|
def | errMsg (self) |
|
def | validation (self) |
|
def | validation (self, value) |
|
def | hasValidated (self) |
|
def | isValidated (self) |
|
def | first (self) |
|
def | preExeStartTimes (self) |
|
def | exeStartTimes (self) |
|
def | exeStopTimes (self) |
|
def | valStartTimes (self) |
|
def | valStopTimes (self) |
|
def | preExeCpuTime (self) |
|
def | preExeWallTime (self) |
|
def | cpuTime (self) |
|
def | usrTime (self) |
|
def | sysTime (self) |
|
def | wallTime (self) |
|
def | memStats (self) |
|
def | memAnalysis (self) |
|
def | postExeCpuTime (self) |
|
def | postExeWallTime (self) |
|
def | validationCpuTime (self) |
|
def | validationWallTime (self) |
|
def | cpuTimeTotal (self) |
|
def | wallTimeTotal (self) |
|
def | eventCount (self) |
|
def | reSimEvent (self) |
|
def | athenaMP (self) |
|
def | dbMonitor (self) |
|
def | setPreExeStart (self) |
|
def | setValStart (self) |
|
def | execute (self) |
|
def | postExecute (self) |
|
def | doAll (self, input=set(), output=set()) |
| Convenience function. More...
|
|
Special executor that will enable a logfile scan as part of its validation.
Definition at line 505 of file trfExe.py.
◆ __init__()
def python.trfExe.logscanExecutor.__init__ |
( |
|
self, |
|
|
|
name = 'Logscan' |
|
) |
| |
Definition at line 506 of file trfExe.py.
506 def __init__(self, name = 'Logscan'):
507 super(logscanExecutor, self).
__init__(name=name)
508 self._errorMaskFiles =
None
509 self._logFileName =
None
◆ athenaMP()
def python.trfExe.transformExecutor.athenaMP |
( |
|
self | ) |
|
|
inherited |
Definition at line 451 of file trfExe.py.
452 return self._athenaMP
◆ cpuTime()
def python.trfExe.transformExecutor.cpuTime |
( |
|
self | ) |
|
|
inherited |
Definition at line 365 of file trfExe.py.
366 if self._exeStart
and self._exeStop:
◆ cpuTimeTotal()
def python.trfExe.transformExecutor.cpuTimeTotal |
( |
|
self | ) |
|
|
inherited |
Definition at line 429 of file trfExe.py.
429 def cpuTimeTotal(self):
430 if self._preExeStart
and self._valStop:
431 return calcCpuTime(self._preExeStart, self._valStop)
◆ dbMonitor()
def python.trfExe.transformExecutor.dbMonitor |
( |
|
self | ) |
|
|
inherited |
Definition at line 455 of file trfExe.py.
456 return self._dbMonitor
◆ doAll()
def python.trfExe.transformExecutor.doAll |
( |
|
self, |
|
|
|
input = set() , |
|
|
|
output = set() |
|
) |
| |
|
inherited |
Convenience function.
Definition at line 498 of file trfExe.py.
498 def doAll(self, input=set(), output=
set()):
499 self.preExecute(input, output)
◆ errMsg()
def python.trfExe.transformExecutor.errMsg |
( |
|
self | ) |
|
|
inherited |
◆ eventCount()
def python.trfExe.transformExecutor.eventCount |
( |
|
self | ) |
|
|
inherited |
Definition at line 443 of file trfExe.py.
443 def eventCount(self):
444 return self._eventCount
◆ execute()
def python.trfExe.transformExecutor.execute |
( |
|
self | ) |
|
|
inherited |
◆ exeStartTimes()
def python.trfExe.transformExecutor.exeStartTimes |
( |
|
self | ) |
|
|
inherited |
Definition at line 335 of file trfExe.py.
335 def exeStartTimes(self):
336 return self._exeStart
◆ exeStopTimes()
def python.trfExe.transformExecutor.exeStopTimes |
( |
|
self | ) |
|
|
inherited |
Definition at line 339 of file trfExe.py.
339 def exeStopTimes(self):
◆ extraMetadata()
def python.trfExe.transformExecutor.extraMetadata |
( |
|
self | ) |
|
|
inherited |
Definition at line 291 of file trfExe.py.
291 def extraMetadata(self):
292 return self._extraMetadata
◆ first()
def python.trfExe.transformExecutor.first |
( |
|
self | ) |
|
|
inherited |
- Note
- At the moment only athenaExecutor sets this property, but that might be changed...
Definition at line 324 of file trfExe.py.
325 if hasattr(self,
'_first'):
◆ hasExecuted()
def python.trfExe.transformExecutor.hasExecuted |
( |
|
self | ) |
|
|
inherited |
Definition at line 295 of file trfExe.py.
295 def hasExecuted(self):
296 return self._hasExecuted
◆ hasValidated()
def python.trfExe.transformExecutor.hasValidated |
( |
|
self | ) |
|
|
inherited |
Definition at line 315 of file trfExe.py.
315 def hasValidated(self):
316 return self._hasValidated
◆ inData() [1/2]
def python.trfExe.transformExecutor.inData |
( |
|
self | ) |
|
|
inherited |
◆ inData() [2/2]
def python.trfExe.transformExecutor.inData |
( |
|
self, |
|
|
|
value |
|
) |
| |
|
inherited |
Definition at line 241 of file trfExe.py.
241 def inData(self, value):
242 self._inData =
set(value)
◆ inDataUpdate()
def python.trfExe.transformExecutor.inDataUpdate |
( |
|
self, |
|
|
|
value |
|
) |
| |
|
inherited |
Definition at line 244 of file trfExe.py.
244 def inDataUpdate(self, value):
246 if '_inData' in dir(self):
247 self._inData.
update(value)
◆ input()
def python.trfExe.transformExecutor.input |
( |
|
self | ) |
|
|
inherited |
- Note
- This returns the actual input data with which this executor ran (c.f.
inData
which returns all the possible data types this executor could run with)
Definition at line 275 of file trfExe.py.
277 if '_input' in dir(self):
◆ isValidated()
def python.trfExe.transformExecutor.isValidated |
( |
|
self | ) |
|
|
inherited |
Definition at line 319 of file trfExe.py.
319 def isValidated(self):
320 return self._isValidated
◆ memAnalysis()
def python.trfExe.transformExecutor.memAnalysis |
( |
|
self | ) |
|
|
inherited |
Definition at line 397 of file trfExe.py.
397 def memAnalysis(self):
398 return self._memLeakResult
◆ memStats()
def python.trfExe.transformExecutor.memStats |
( |
|
self | ) |
|
|
inherited |
Definition at line 393 of file trfExe.py.
394 return self._memStats
◆ myMerger()
def python.trfExe.transformExecutor.myMerger |
( |
|
self | ) |
|
|
inherited |
Now define properties for these data members.
Definition at line 206 of file trfExe.py.
207 return self._myMerger
◆ name() [1/2]
def python.trfExe.transformExecutor.name |
( |
|
self | ) |
|
|
inherited |
◆ name() [2/2]
def python.trfExe.transformExecutor.name |
( |
|
self, |
|
|
|
value |
|
) |
| |
|
inherited |
◆ outData() [1/2]
def python.trfExe.transformExecutor.outData |
( |
|
self | ) |
|
|
inherited |
◆ outData() [2/2]
def python.trfExe.transformExecutor.outData |
( |
|
self, |
|
|
|
value |
|
) |
| |
|
inherited |
Definition at line 261 of file trfExe.py.
261 def outData(self, value):
262 self._outData =
set(value)
◆ outDataUpdate()
def python.trfExe.transformExecutor.outDataUpdate |
( |
|
self, |
|
|
|
value |
|
) |
| |
|
inherited |
Definition at line 264 of file trfExe.py.
264 def outDataUpdate(self, value):
266 if '_outData' in dir(self):
267 self._outData.
update(value)
◆ output()
def python.trfExe.transformExecutor.output |
( |
|
self | ) |
|
|
inherited |
- Note
- This returns the actual output data with which this executor ran (c.f.
outData
which returns all the possible data types this executor could run with)
Definition at line 284 of file trfExe.py.
286 if '_output' in dir(self):
◆ postExeCpuTime()
def python.trfExe.transformExecutor.postExeCpuTime |
( |
|
self | ) |
|
|
inherited |
Definition at line 401 of file trfExe.py.
401 def postExeCpuTime(self):
402 if self._exeStop
and self._valStart:
◆ postExecute()
def python.trfExe.transformExecutor.postExecute |
( |
|
self | ) |
|
|
inherited |
◆ postExeWallTime()
def python.trfExe.transformExecutor.postExeWallTime |
( |
|
self | ) |
|
|
inherited |
Definition at line 408 of file trfExe.py.
408 def postExeWallTime(self):
409 if self._exeStop
and self._valStart:
◆ preExeCpuTime()
def python.trfExe.transformExecutor.preExeCpuTime |
( |
|
self | ) |
|
|
inherited |
Definition at line 351 of file trfExe.py.
351 def preExeCpuTime(self):
352 if self._preExeStart
and self._exeStart:
353 return calcCpuTime(self._preExeStart, self._exeStart)
◆ preExecute()
def python.trfExe.logscanExecutor.preExecute |
( |
|
self, |
|
|
|
input = set() , |
|
|
|
output = set() |
|
) |
| |
Reimplemented from python.trfExe.transformExecutor.
Definition at line 511 of file trfExe.py.
511 def preExecute(self, input = set(), output =
set()):
512 self.setPreExeStart()
513 msg.info(
'Preexecute for %s', self._name)
514 if 'logfile' in self.conf.argdict:
515 self._logFileName = self.conf.argdict[
'logfile'].value
◆ preExeStartTimes()
def python.trfExe.transformExecutor.preExeStartTimes |
( |
|
self | ) |
|
|
inherited |
Definition at line 331 of file trfExe.py.
331 def preExeStartTimes(self):
332 return self._preExeStart
◆ preExeWallTime()
def python.trfExe.transformExecutor.preExeWallTime |
( |
|
self | ) |
|
|
inherited |
Definition at line 358 of file trfExe.py.
358 def preExeWallTime(self):
359 if self._preExeStart
and self._exeStart:
◆ rc()
def python.trfExe.transformExecutor.rc |
( |
|
self | ) |
|
|
inherited |
◆ reSimEvent()
def python.trfExe.transformExecutor.reSimEvent |
( |
|
self | ) |
|
|
inherited |
Definition at line 447 of file trfExe.py.
447 def reSimEvent(self):
448 return self._resimevents
◆ setPreExeStart()
def python.trfExe.transformExecutor.setPreExeStart |
( |
|
self | ) |
|
|
inherited |
Definition at line 460 of file trfExe.py.
460 def setPreExeStart(self):
461 if self._preExeStart
is None:
462 self._preExeStart = os.times()
463 msg.debug(
'preExeStart time is {0}'.
format(self._preExeStart))
◆ setValStart()
def python.trfExe.transformExecutor.setValStart |
( |
|
self | ) |
|
|
inherited |
Definition at line 465 of file trfExe.py.
465 def setValStart(self):
466 if self._valStart
is None:
467 self._valStart = os.times()
468 msg.debug(
'valStart time is {0}'.
format(self._valStart))
◆ substep()
def python.trfExe.transformExecutor.substep |
( |
|
self | ) |
|
|
inherited |
◆ sysTime()
def python.trfExe.transformExecutor.sysTime |
( |
|
self | ) |
|
|
inherited |
Definition at line 379 of file trfExe.py.
380 if self._exeStart
and self._exeStop:
381 return self._exeStop[3] - self._exeStart[3]
◆ trf() [1/2]
def python.trfExe.transformExecutor.trf |
( |
|
self | ) |
|
|
inherited |
◆ trf() [2/2]
def python.trfExe.transformExecutor.trf |
( |
|
self, |
|
|
|
value |
|
) |
| |
|
inherited |
◆ usrTime()
def python.trfExe.transformExecutor.usrTime |
( |
|
self | ) |
|
|
inherited |
Definition at line 372 of file trfExe.py.
373 if self._exeStart
and self._exeStop:
374 return self._exeStop[2] - self._exeStart[2]
◆ validate()
def python.trfExe.logscanExecutor.validate |
( |
|
self | ) |
|
Reimplemented from python.trfExe.transformExecutor.
Definition at line 517 of file trfExe.py.
519 msg.info(
"Starting validation for {0}".
format(self._name))
520 if self._logFileName:
523 if 'ignorePatterns' in self.conf.argdict:
524 igPat = self.conf.argdict[
'ignorePatterns'].value
527 if 'ignoreFiles' in self.conf.argdict:
528 ignorePatterns = trfValidation.ignorePatterns(files = self.conf.argdict[
'ignoreFiles'].value, extraSearch=igPat)
529 elif self._errorMaskFiles
is not None:
530 ignorePatterns = trfValidation.ignorePatterns(files = self._errorMaskFiles, extraSearch=igPat)
532 ignorePatterns = trfValidation.ignorePatterns(files = athenaExecutor._defaultIgnorePatternFile, extraSearch=igPat)
535 msg.info(
'Scanning logfile {0} for errors'.
format(self._logFileName))
536 self._logScan = trfValidation.athenaLogFileReport(logfile = self._logFileName, ignoreList = ignorePatterns)
537 worstError = self._logScan.worstError()
541 if worstError[
'firstError']:
542 if len(worstError[
'firstError'][
'message']) > athenaExecutor._exitMessageLimit:
543 if 'CoreDumpSvc' in worstError[
'firstError'][
'message']:
544 exitErrorMessage =
"Core dump at line {0} (see jobReport for further details)".
format(worstError[
'firstError'][
'firstLine'])
545 elif 'G4Exception' in worstError[
'firstError'][
'message']:
546 exitErrorMessage =
"G4 exception at line {0} (see jobReport for further details)".
format(worstError[
'firstError'][
'firstLine'])
548 exitErrorMessage =
"Long {0} message at line {1} (see jobReport for further details)".
format(worstError[
'level'], worstError[
'firstError'][
'firstLine'])
550 exitErrorMessage =
"Logfile error in {0}: \"{1}\"".
format(self._logFileName, worstError[
'firstError'][
'message'])
552 exitErrorMessage =
"Error level {0} found (see athena logfile for details)".
format(worstError[
'level'])
555 if worstError[
'nLevel'] == stdLogLevels[
'ERROR']
and (
'ignoreErrors' in self.conf.argdict
and self.conf.argdict[
'ignoreErrors'].value
is True):
556 msg.warning(
'Found ERRORs in the logfile, but ignoring this as ignoreErrors=True (see jobReport for details)')
557 elif worstError[
'nLevel'] >= stdLogLevels[
'ERROR']:
558 self._isValidated =
False
559 msg.error(
'Fatal error in athena logfile (level {0})'.
format(worstError[
'level']))
560 raise trfExceptions.TransformLogfileErrorException(trfExit.nameToCode(
'TRF_EXEC_LOGERROR'),
561 'Fatal error in athena logfile: "{0}"'.
format(exitErrorMessage))
564 msg.info(
'Executor {0} has validated successfully'.
format(self.name))
565 self._isValidated =
True
568 self._valStop = os.times()
569 msg.debug(
'valStop time is {0}'.
format(self._valStop))
◆ validation() [1/2]
def python.trfExe.transformExecutor.validation |
( |
|
self | ) |
|
|
inherited |
Definition at line 307 of file trfExe.py.
308 return self._validation
◆ validation() [2/2]
def python.trfExe.transformExecutor.validation |
( |
|
self, |
|
|
|
value |
|
) |
| |
|
inherited |
Definition at line 311 of file trfExe.py.
312 self._validation = value
◆ validationCpuTime()
def python.trfExe.transformExecutor.validationCpuTime |
( |
|
self | ) |
|
|
inherited |
Definition at line 415 of file trfExe.py.
415 def validationCpuTime(self):
416 if self._valStart
and self._valStop:
◆ validationWallTime()
def python.trfExe.transformExecutor.validationWallTime |
( |
|
self | ) |
|
|
inherited |
Definition at line 422 of file trfExe.py.
422 def validationWallTime(self):
423 if self._valStart
and self._valStop:
◆ valStartTimes()
def python.trfExe.transformExecutor.valStartTimes |
( |
|
self | ) |
|
|
inherited |
Definition at line 343 of file trfExe.py.
343 def valStartTimes(self):
344 return self._valStart
◆ valStopTimes()
def python.trfExe.transformExecutor.valStopTimes |
( |
|
self | ) |
|
|
inherited |
Definition at line 347 of file trfExe.py.
347 def valStopTimes(self):
◆ wallTime()
def python.trfExe.transformExecutor.wallTime |
( |
|
self | ) |
|
|
inherited |
Definition at line 386 of file trfExe.py.
387 if self._exeStart
and self._exeStop:
◆ wallTimeTotal()
def python.trfExe.transformExecutor.wallTimeTotal |
( |
|
self | ) |
|
|
inherited |
Definition at line 436 of file trfExe.py.
436 def wallTimeTotal(self):
437 if self._preExeStart
and self._valStop:
◆ _alreadyInContainer
python.trfExe.transformExecutor._alreadyInContainer |
|
privateinherited |
◆ _athenaConcurrentEvents
python.trfExe.transformExecutor._athenaConcurrentEvents |
|
privateinherited |
◆ _athenaMP
python.trfExe.transformExecutor._athenaMP |
|
privateinherited |
◆ _athenaMT
python.trfExe.transformExecutor._athenaMT |
|
privateinherited |
◆ _containerSetup
python.trfExe.transformExecutor._containerSetup |
|
privateinherited |
◆ _dbMonitor
python.trfExe.transformExecutor._dbMonitor |
|
privateinherited |
◆ _errMsg
python.trfExe.logscanExecutor._errMsg |
|
private |
◆ _errorMaskFiles
python.trfExe.logscanExecutor._errorMaskFiles |
|
private |
◆ _eventCount
python.trfExe.transformExecutor._eventCount |
|
privateinherited |
◆ _exeStart
python.trfExe.transformExecutor._exeStart |
|
privateinherited |
◆ _exeStop
python.trfExe.transformExecutor._exeStop |
|
privateinherited |
◆ _extraMetadata
python.trfExe.transformExecutor._extraMetadata |
|
privateinherited |
◆ _hasExecuted
python.trfExe.transformExecutor._hasExecuted |
|
privateinherited |
◆ _hasValidated
python.trfExe.transformExecutor._hasValidated |
|
privateinherited |
◆ _inData
python.trfExe.transformExecutor._inData |
|
privateinherited |
◆ _isValidated
python.trfExe.logscanExecutor._isValidated |
|
private |
◆ _logFileName
python.trfExe.logscanExecutor._logFileName |
|
private |
◆ _logScan
python.trfExe.logscanExecutor._logScan |
|
private |
TODO: This is a cut'n'paste from the athenaExecutor We really should factorise this and use it commonly.
Definition at line 536 of file trfExe.py.
◆ _memFullFile
python.trfExe.transformExecutor._memFullFile |
|
privateinherited |
◆ _memLeakResult
python.trfExe.transformExecutor._memLeakResult |
|
privateinherited |
◆ _memStats
python.trfExe.transformExecutor._memStats |
|
privateinherited |
◆ _myMerger
python.trfExe.transformExecutor._myMerger |
|
privateinherited |
◆ _name
python.trfExe.transformExecutor._name |
|
privateinherited |
◆ _outData
python.trfExe.transformExecutor._outData |
|
privateinherited |
◆ _preExeStart
python.trfExe.transformExecutor._preExeStart |
|
privateinherited |
- Note
- Place holders for resource consumption. CPU and walltime are available for all executors but currently only athena is instrumented to fill in memory stats (and then only if PerfMonSD is enabled).
Definition at line 185 of file trfExe.py.
◆ _rc
python.trfExe.transformExecutor._rc |
|
privateinherited |
◆ _resimevents
python.trfExe.transformExecutor._resimevents |
|
privateinherited |
◆ _trf
python.trfExe.transformExecutor._trf |
|
privateinherited |
◆ _validation
python.trfExe.transformExecutor._validation |
|
privateinherited |
◆ _valStart
python.trfExe.transformExecutor._valStart |
|
privateinherited |
◆ _valStop
python.trfExe.logscanExecutor._valStop |
|
private |
◆ conf
python.trfExe.transformExecutor.conf |
|
inherited |
Executor configuration:
- Note
- that if conf and trf are
None
then we'll probably set the conf up later (this is allowed and expected to be done once the master transform has figured out what it's doing for this job)
Definition at line 162 of file trfExe.py.
◆ inData
python.trfExe.transformExecutor.inData |
|
inherited |
- Note
- Protect against _inData not yet being defined
-
Use normal setter
Definition at line 250 of file trfExe.py.
◆ outData
python.trfExe.transformExecutor.outData |
|
inherited |
- Note
- Protect against _outData not yet being defined
-
Use normal setter
Definition at line 270 of file trfExe.py.
The documentation for this class was generated from the following file:
constexpr std::enable_if_t< is_bitmask_v< E >, E & > set(E &lhs, E rhs)
Convenience function to set bits in a class enum bitmask.