autotest: Resest host status when recovering abandoned verify task.
BUG=chromium:869479
TEST=None
Change-Id: I4dde521b555e934b2169f2a16d3f2fb53cfbe787
Reviewed-on: https://chromium-review.googlesource.com/1227381
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Tested-by: Prathmesh Prabhu <pprabhu@chromium.org>
Reviewed-by: Allen Li <ayatane@chromium.org>
diff --git a/scheduler/monitor_db.py b/scheduler/monitor_db.py
index 0be17eb..4782597 100755
--- a/scheduler/monitor_db.py
+++ b/scheduler/monitor_db.py
@@ -758,14 +758,21 @@
queue_entry__id=queue_entry.id,
is_complete=False)
if special_tasks.count() == 0:
- logging.error('Unrecovered Resetting host queue entry: %s. '
- 'Setting status to Queued.', str(queue_entry))
+ logging.error('Unrecovered Resetting host queue entry: %s. ',
+ str(queue_entry))
# Essentially this host queue entry was set to be Verifying
# however no special task exists for entry. This occurs if the
# scheduler dies between changing the status and creating the
# special task. By setting it to queued, the job can restart
# from the beginning and proceed correctly. This is much more
# preferable than having monitor_db not launching.
+ logging.info('Setting host status for %s to Ready',
+ str(queue_entry.host))
+ # Let's at least run a cleanup/reset before reusing this DUT.
+ queue_entry.host.update_field('dirty', 1)
+ queue_entry.host.set_status(models.Host.Status.READY)
+ logging.info('Setting status for HQE %s to Queued.',
+ str(queue_entry))
queue_entry.set_status('Queued')