|
|
@ -314,7 +314,15 @@ def pending_jobs(name): |
|
|
|
ds = _get_database(name) |
|
|
|
pending = ds.select_tables(JobTable, JobTable.event_id == 1) |
|
|
|
job_list = [] |
|
|
|
sess = ds._get_session() |
|
|
|
for job in pending: |
|
|
|
# TODO: exposing session to get this running for now |
|
|
|
next_test = sess.query(TestTable).filter(TestTable.id_ == job.test_id).first() |
|
|
|
next_evidence = sess.query(EvidenceTable).filter(EvidenceTable.id_ == next_test.evidence_id).first() |
|
|
|
next_comparison = sess.query(ComparisonTable).filter(ComparisonTable.id_ == next_test.comparison_id).first() |
|
|
|
job_list.append([job.id_, [next_evidence, next_comparison]]) |
|
|
|
# this was far too slow for the non-contributors |
|
|
|
''' |
|
|
|
# use test_id to find the next evidence_id and comparison_id |
|
|
|
next_test = ds.first_record(TestTable, TestTable.id_ == job.test_id) |
|
|
|
# use the evidence_id to get the next evidence row |
|
|
@ -324,6 +332,37 @@ def pending_jobs(name): |
|
|
|
next_comparison = ds.select_tables(ComparisonTable, |
|
|
|
ComparisonTable.id_ == next_test.comparison_id) |
|
|
|
job_list.append([job.id_, [next_evidence[0], next_comparison[0]]]) |
|
|
|
''' |
|
|
|
return job_list |
|
|
|
except: |
|
|
|
# TODO: implement fine-grained handling |
|
|
|
raise |
|
|
|
|
|
|
|
def fill_job_queue(name, q): |
|
|
|
'''Return a list of all pending jobs.''' |
|
|
|
try: |
|
|
|
ds = _get_database(name) |
|
|
|
pending = ds.select_tables(JobTable, JobTable.event_id == 1) |
|
|
|
job_list = [] |
|
|
|
sess = ds._get_session() |
|
|
|
for job in pending: |
|
|
|
# TODO: exposing session to get this running for now |
|
|
|
next_test = sess.query(TestTable).filter(TestTable.id_ == job.test_id).first() |
|
|
|
next_evidence = sess.query(EvidenceTable).filter(EvidenceTable.id_ == next_test.evidence_id).first() |
|
|
|
next_comparison = sess.query(ComparisonTable).filter(ComparisonTable.id_ == next_test.comparison_id).first() |
|
|
|
q.put([job.id_, [next_evidence, next_comparison]]) |
|
|
|
# this was far too slow for the non-contributors |
|
|
|
''' |
|
|
|
# use test_id to find the next evidence_id and comparison_id |
|
|
|
next_test = ds.first_record(TestTable, TestTable.id_ == job.test_id) |
|
|
|
# use the evidence_id to get the next evidence row |
|
|
|
next_evidence = ds.select_tables(EvidenceTable, |
|
|
|
EvidenceTable.id_ == next_test.evidence_id) |
|
|
|
# use the evidence_id to get the next comparison row |
|
|
|
next_comparison = ds.select_tables(ComparisonTable, |
|
|
|
ComparisonTable.id_ == next_test.comparison_id) |
|
|
|
job_list.append([job.id_, [next_evidence[0], next_comparison[0]]]) |
|
|
|
''' |
|
|
|
return job_list |
|
|
|
except: |
|
|
|
# TODO: implement fine-grained handling |
|
|
|