-make monitor_db implement "skip verify" properly, and add unit tests for it
-change order of a couple fields in AFE models to match DB order
git-svn-id: http://test.kernel.org/svn/autotest/trunk@2291 592f7852-d20e-0410-864c-8624ca9c26a4
diff --git a/scheduler/monitor_db.py b/scheduler/monitor_db.py
index 573776d..e4e4b5a 100644
--- a/scheduler/monitor_db.py
+++ b/scheduler/monitor_db.py
@@ -751,7 +751,9 @@
def _run_queue_entry(self, queue_entry, host):
agent = queue_entry.run(assigned_host=host)
- self.add_agent(agent)
+ # in some cases (synchronous jobs with run_verify=False), agent may be None
+ if agent:
+ self.add_agent(agent)
def _find_aborting(self):
@@ -1225,7 +1227,7 @@
class VerifyTask(AgentTask):
- def __init__(self, queue_entry=None, host=None, run_verify=True):
+ def __init__(self, queue_entry=None, host=None):
assert bool(queue_entry) != bool(host)
self.host = host or queue_entry.host
@@ -1233,16 +1235,7 @@
self.create_temp_resultsdir('.verify')
- # TODO:
- # While it is rediculous to instantiate a verify task object
- # that doesnt actually run the verify task, this is hopefully a
- # temporary hack and will have a cleaner way to skip this
- # step later. (while ensuring that the original semantics don't change)
- if not run_verify:
- cmd = ["true"]
- else:
- cmd = [_autoserv_path,'-v','-m',self.host.hostname,
- '-r', self.temp_results_dir]
+ cmd = [_autoserv_path,'-v','-m',self.host.hostname, '-r', self.temp_results_dir]
fail_queue_entry = None
if queue_entry and not queue_entry.meta_host:
@@ -1308,11 +1301,6 @@
class VerifySynchronousTask(VerifyTask):
- def __init__(self, queue_entry, run_verify=True):
- super(VerifySynchronousTask, self).__init__(queue_entry=queue_entry,
- run_verify=run_verify)
-
-
def epilog(self):
super(VerifySynchronousTask, self).epilog()
if self.success:
@@ -2057,9 +2045,10 @@
def _run_synchronous(self, queue_entry):
if not self.is_ready():
- return Agent([VerifySynchronousTask(queue_entry=queue_entry,
- run_verify=self.run_verify)],
- [queue_entry.id])
+ if self.run_verify:
+ return Agent([VerifySynchronousTask(queue_entry=queue_entry)], [queue_entry.id])
+ else:
+ return queue_entry.on_pending()
queue_entry.set_status('Starting')
@@ -2071,7 +2060,9 @@
# of lowering risk, I'm leaving it in for now
assert queue_entry
- initial_tasks = [VerifyTask(queue_entry, run_verify=self.run_verify)]
+ initial_tasks = []
+ if self.run_verify:
+ initial_tasks = [VerifyTask(queue_entry)]
return self._finish_run([queue_entry], initial_tasks)