_error_in_logs function of driver.py shall check all nodes
1. Don't simply return, if one node is clean or not clean.
2. It's better to log all errors and return all errors.
Change-Id: Ib0e23bff013836347f90bed50dd1d3a9566e6bad
Close-Bug: #1229957
diff --git a/tempest/stress/driver.py b/tempest/stress/driver.py
index e518d28..7fd5747 100644
--- a/tempest/stress/driver.py
+++ b/tempest/stress/driver.py
@@ -61,19 +61,20 @@
return nodes
-def _error_in_logs(logfiles, nodes):
+def _has_error_in_logs(logfiles, nodes, stop_on_error=False):
"""
Detect errors in the nova log files on the controller and compute nodes.
"""
grep = 'egrep "ERROR|TRACE" %s' % logfiles
+ ret = False
for node in nodes:
errors = do_ssh(grep, node)
- if not errors:
- return None
if len(errors) > 0:
LOG.error('%s: %s' % (node, errors))
- return errors
- return None
+ ret = True
+ if stop_on_error:
+ break
+ return ret
def sigchld_handler(signal, frame):
@@ -181,8 +182,7 @@
if not logfiles:
continue
- errors = _error_in_logs(logfiles, computes)
- if errors:
+ if _has_error_in_logs(logfiles, computes):
had_errors = True
break