[autotest] hqe aborted before starting do not get finished time
TEST=Run a job locally and abort it. Verify the finished time is
not set
BUG=chromium:391509
DEPLOY=scheduler
Change-Id: I1447ba4a7acef31a876267cd47de99b8bdfeaa4e
Reviewed-on: https://chromium-review.googlesource.com/212918
Reviewed-by: Fang Deng <fdeng@chromium.org>
Tested-by: Fang Deng <fdeng@chromium.org>
Commit-Queue: Fang Deng <fdeng@chromium.org>
diff --git a/scheduler/scheduler_models.py b/scheduler/scheduler_models.py
index 303e0e3..73b90fa 100644
--- a/scheduler/scheduler_models.py
+++ b/scheduler/scheduler_models.py
@@ -624,7 +624,8 @@
if status is not models.HostQueueEntry.Status.ABORTED:
self.job.stop_if_necessary()
- self.set_finished_on_now()
+ if self.started_on:
+ self.set_finished_on_now()
if not self.execution_subdir:
return
# unregister any possible pidfiles associated with this queue entry
diff --git a/scheduler/scheduler_models_unittest.py b/scheduler/scheduler_models_unittest.py
index aa16660..1421f72 100755
--- a/scheduler/scheduler_models_unittest.py
+++ b/scheduler/scheduler_models_unittest.py
@@ -262,6 +262,7 @@
hqe.aborted = True
hqe.complete = False
hqe.status = models.HostQueueEntry.Status.STARTING
+ hqe.started_on = datetime.datetime.now()
dispatcher = self.god.create_mock_class(monitor_db.BaseDispatcher,
'BaseDispatcher')
@@ -297,6 +298,7 @@
"""Test that finished_on is set when hqe completes."""
for status in host_queue_entry_states.Status.values:
hqe = self._create_hqe(hosts=[1])
+ hqe.started_on = datetime.datetime.now()
self.assertIsNone(hqe.finished_on)
hqe.set_status(status)
if status in host_queue_entry_states.COMPLETE_STATUSES: