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')