[autotest] Add more warn and error logging to suite_scheduler
Warn on use of unknown keywords in config.
Warn on failure to enumerate supported boards from the AFE.
BUG=chromium-os:30972
TEST=unit
STATUS=Fixed
Change-Id: I2405b6bab11b3cbb4988be95583ebf86f660ff5c
Reviewed-on: https://gerrit.chromium.org/gerrit/22999
Tested-by: Chris Masone <cmasone@chromium.org>
Reviewed-by: Scott Zawalski <scottz@chromium.org>
Commit-Ready: Chris Masone <cmasone@chromium.org>
diff --git a/site_utils/suite_scheduler/driver.py b/site_utils/suite_scheduler/driver.py
index 6d6a8a1..d5fdba5 100644
--- a/site_utils/suite_scheduler/driver.py
+++ b/site_utils/suite_scheduler/driver.py
@@ -68,11 +68,11 @@
events[klass.KEYWORD] = klass.CreateFromConfig(config, mv)
tasks = self.TasksFromConfig(config)
-
- for keyword, event in events.iteritems():
- if keyword in tasks:
- event.tasks = tasks[keyword]
- # TODO(cmasone): warn about unknown keywords?
+ for keyword, task_list in tasks.iteritems():
+ if keyword in events:
+ events[keyword].tasks = task_list
+ else:
+ logging.warn('%s, is an unknown keyword.', keyword)
return events
@@ -110,10 +110,11 @@
for event in self._events.itervalues():
event.Prepare()
while True:
- self.HandleEventsOnce(mv)
+ try:
+ self.HandleEventsOnce(mv)
+ except EnumeratorException as e:
+ logging.warn('Failed to enumerate boards: %r', e)
mv.Update()
- # TODO(cmasone): Do we want to run every _LOOP_INTERVAL_SECONDS?
- # Or is it OK to wait that long between every run?
time.sleep(self._LOOP_INTERVAL_SECONDS)
self.RereadAndReprocessConfig(config, mv)
@@ -122,6 +123,7 @@
"""One turn through the loop. Separated out for unit testing.
@param mv: an instance of manifest_versions.ManifestVersions.
+ @raise EnumeratorException if we can't enumerate any supported boards.
"""
boards = self._enumerator.Enumerate()
logging.info('Boards currently in the lab: %r', boards)