autobuild: Return the last 50 log lines
authorGarming Sam <garming@catalyst.net.nz>
Mon, 14 Mar 2016 01:18:54 +0000 (14:18 +1300)
committerAndrew Bartlett <abartlet@samba.org>
Tue, 22 Mar 2016 10:39:38 +0000 (11:39 +0100)
This means that you don't have to deal with tars for quickly determining
the cause of a failure.

Signed-off-by: Garming Sam <garming@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Autobuild-User(master): Andrew Bartlett <abartlet@samba.org>
Autobuild-Date(master): Tue Mar 22 11:39:38 CET 2016 on sn-devel-144

script/autobuild.py

index 4cad92033399144d5dbf5d4a0eb686d1be76d650..13be1b6a856a88f1aa1833f273259f180600228d 100755 (executable)
@@ -566,7 +566,7 @@ def send_email(subject, text, log_tar):
     s.quit()
 
 def email_failure(status, failed_task, failed_stage, failed_tag, errstr,
-                  elapsed_time, log_base=None):
+                  elapsed_time, log_base=None, add_log_tail=True):
     '''send an email to options.email about the failure'''
     elapsed_minutes = elapsed_time / 60.0
     user = os.getenv("USER")
@@ -604,6 +604,17 @@ The top commit for the tree that was built was:
 
 ''' % (log_base, failed_tag, log_base, failed_tag, log_base, top_commit_msg)
 
+    if add_log_tail:
+        f = open("%s/%s.stdout" % (log_base, failed_tag), 'r')
+        log_tail = "".join(f.readlines()[-50:])
+
+        text += '''
+The last 50 lines of log messages:
+
+%s
+    ''' % log_tail
+        f.close()
+
     logs = os.path.join(gitroot, 'logs.tar.gz')
     send_email('autobuild failure on %s for task %s during %s'
                % (platform.node(), failed_task, failed_stage),