mirror of https://github.com/BOINC/boinc.git
41 lines
1.5 KiB
Python
41 lines
1.5 KiB
Python
|
#!/usr/bin/python
|
||
|
|
||
|
from assimilator import *
|
||
|
|
||
|
class TestAssimilator(Assimilator):
|
||
|
"""
|
||
|
A minimal Assimilator example that dumps the result out to the log
|
||
|
"""
|
||
|
|
||
|
def __init__(self):
|
||
|
Assimilator.__init__(self)
|
||
|
|
||
|
def assimilate_handler(self, wu, results, canonical_result):
|
||
|
"""
|
||
|
Assimilates a canonical result, in this case assimilation
|
||
|
means dumping the contents of the result to the log.
|
||
|
Also calls report_errors to log any problems present in the workunit (wu)
|
||
|
"""
|
||
|
|
||
|
# check for valid wu.canonical_result
|
||
|
if wu.canonical_result:
|
||
|
# do application specific processing
|
||
|
self.log.printf(sched_messages.NORMAL, "[%s] Found canonical result\n", wu.name)
|
||
|
result = self.get_file_path(canonical_result)
|
||
|
for line in open(result, 'r').readlines():
|
||
|
line = line.strip()
|
||
|
self.log.printf(sched_messages.DEBUG, " [%s] Answer found %s %s\n", canonical_result.name, line[-32:], line[:-33])
|
||
|
else:
|
||
|
self.log.printf(sched_messages.NORMAL, "[%s] No canonical result\n", wu.name)
|
||
|
|
||
|
if self.report_errors(wu):
|
||
|
# report_errors returns true if error state was present
|
||
|
# perhaps add some special logic here
|
||
|
# even if no logic is required, report_errors should be called
|
||
|
pass
|
||
|
|
||
|
# allow the module to be executed as an application
|
||
|
if __name__ == '__main__':
|
||
|
asm = TestAssimilator()
|
||
|
asm.run()
|