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