Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(297)

Side by Side Diff: scheduler/scheduler_models.py

Issue 4758002: Fix problem with new upstream lmr code for email. (Closed) Base URL: http://git.chromium.org/git/autotest.git@master
Patch Set: Created 10 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 """Database model classes for the scheduler. 1 """Database model classes for the scheduler.
2 2
3 Contains model classes abstracting the various DB tables used by the scheduler. 3 Contains model classes abstracting the various DB tables used by the scheduler.
4 These overlap the Django models in basic functionality, but were written before 4 These overlap the Django models in basic functionality, but were written before
5 the Django models existed and have not yet been phased out. Some of them 5 the Django models existed and have not yet been phased out. Some of them
6 (particularly HostQueueEntry and Job) have considerable scheduler-specific logic 6 (particularly HostQueueEntry and Job) have considerable scheduler-specific logic
7 which would probably be ill-suited for inclusion in the general Django model 7 which would probably be ill-suited for inclusion in the general Django model
8 classes. 8 classes.
9 9
10 Globals: 10 Globals:
(...skipping 874 matching lines...) Expand 10 before | Expand all | Expand 10 after
885 return n_test_jobs 885 return n_test_jobs
886 886
887 stats = {} 887 stats = {}
888 888
889 rows = _db.execute(""" 889 rows = _db.execute("""
890 SELECT t.test, s.word, t.reason 890 SELECT t.test, s.word, t.reason
891 FROM tko_tests AS t, tko_jobs AS j, tko_status AS s 891 FROM tko_tests AS t, tko_jobs AS j, tko_status AS s
892 WHERE t.job_idx = j.job_idx 892 WHERE t.job_idx = j.job_idx
893 AND s.status_idx = t.status 893 AND s.status_idx = t.status
894 AND j.afe_job_id = %s 894 AND j.afe_job_id = %s
895 ORDER BY t.reason
895 """ % self.id) 896 """ % self.id)
896 897
897 failed_rows = [r for r in rows if not 'GOOD' in r] 898 failed_rows = [r for r in rows if not 'GOOD' in r]
898 899
899 n_test_jobs = _find_test_jobs(rows) 900 n_test_jobs = _find_test_jobs(rows)
900 n_test_jobs_failed = _find_test_jobs(failed_rows) 901 n_test_jobs_failed = _find_test_jobs(failed_rows)
901 902
902 total_executed = len(rows) - n_test_jobs 903 total_executed = len(rows) - n_test_jobs
903 total_failed = len(failed_rows) - n_test_jobs_failed 904 total_failed = len(failed_rows) - n_test_jobs_failed
904 905
(...skipping 15 matching lines...) Expand all
920 stats['failed_rows'] = '' 921 stats['failed_rows'] = ''
921 922
922 time_row = _db.execute(""" 923 time_row = _db.execute("""
923 SELECT started_time, finished_time 924 SELECT started_time, finished_time
924 FROM tko_jobs 925 FROM tko_jobs
925 WHERE afe_job_id = %s 926 WHERE afe_job_id = %s
926 """ % self.id) 927 """ % self.id)
927 928
928 if time_row: 929 if time_row:
929 t_begin, t_end = time_row[0] 930 t_begin, t_end = time_row[0]
930 delta = t_end - t_begin 931 try:
931 minutes, seconds = divmod(delta.seconds, 60) 932 delta = t_end - t_begin
932 hours, minutes = divmod(minutes, 60) 933 minutes, seconds = divmod(delta.seconds, 60)
933 stats['execution_time'] = ("%02d:%02d:%02d" % 934 hours, minutes = divmod(minutes, 60)
934 (hours, minutes, seconds)) 935 stats['execution_time'] = ("%02d:%02d:%02d" %
936 (hours, minutes, seconds))
937 # One of t_end or t_begin are None
938 except TypeError:
939 stats['execution_time'] = '(could not determine)'
935 else: 940 else:
936 stats['execution_time'] = '(none)' 941 stats['execution_time'] = '(none)'
937 942
938 return stats 943 return stats
939 944
940 945
941 def set_status(self, status, update_queues=False): 946 def set_status(self, status, update_queues=False):
942 self.update_field('status',status) 947 self.update_field('status',status)
943 948
944 if update_queues: 949 if update_queues:
(...skipping 359 matching lines...) Expand 10 before | Expand all | Expand 10 after
1304 def abort_delay_ready_task(self): 1309 def abort_delay_ready_task(self):
1305 """Abort the delayed task associated with this job, if any.""" 1310 """Abort the delayed task associated with this job, if any."""
1306 if self._delay_ready_task: 1311 if self._delay_ready_task:
1307 # Cancel any pending callback that would try to run again 1312 # Cancel any pending callback that would try to run again
1308 # as we are already running. 1313 # as we are already running.
1309 self._delay_ready_task.abort() 1314 self._delay_ready_task.abort()
1310 1315
1311 1316
1312 def __str__(self): 1317 def __str__(self):
1313 return '%s-%s' % (self.id, self.owner) 1318 return '%s-%s' % (self.id, self.owner)
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698