diff options
author | Jenkins <jenkins@review.openstack.org> | 2015-11-11 11:27:18 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2015-11-11 11:27:18 +0000 |
commit | df1410b2734f5c630405c843c29a9617c37f2887 (patch) | |
tree | d3750ce11bf65236bb94cb66feffccb8f156213e | |
parent | 2f996808f81fc0272b065c3274d37eb5b8c7e08b (diff) | |
parent | 834733bbe5d7c5659e7252ac6842a1ba748f7dba (diff) | |
download | turbo-hipster-df1410b2734f5c630405c843c29a9617c37f2887.tar.gz |
Merge "Let scripts return some useful message about failure"
-rw-r--r-- | turbo_hipster/lib/models.py | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/turbo_hipster/lib/models.py b/turbo_hipster/lib/models.py index 3987733..78c599a 100644 --- a/turbo_hipster/lib/models.py +++ b/turbo_hipster/lib/models.py @@ -17,6 +17,7 @@ import copy import json import logging import os +import tempfile import pkg_resources import socket import uuid @@ -259,6 +260,7 @@ class ShellTask(Task): self.job_working_dir = None self.shell_output_log = None self.git_prep_log = None + self.output_summary = None def do_job_steps(self): self.log.info('Step 1: Setup environment') @@ -289,6 +291,7 @@ class ShellTask(Task): self.job_results_dir, 'shell_output.log' ) + self.output_summary = tempfile.mkstemp() self.log.info('Working on node %s' % (os.uname()[1])) @common.task_step @@ -358,6 +361,7 @@ class ShellTask(Task): env_args['TH_JOB_NAME'] = self.job.name[len('build:'):] else: env_args['TH_JOB_NAME'] = self.job.name + env_args['TH_RESULT_FILE'] = self.output_summary[1] self.script_return_code = utils.execute_to_log( cmd, @@ -369,6 +373,10 @@ class ShellTask(Task): def _parse_and_check_results(self): if self.script_return_code > 0: self.success = False + with os.fdopen(self.output_summary[0]) as fp: + line = fp.readline().strip() + if len(line) and not line.startswith('SUCCESS'): + self.messages.append(line) self.messages.append('Return code from test script was non-zero ' '(%d)' % self.script_return_code) @@ -376,7 +384,11 @@ class ShellTask(Task): def _handle_cleanup(self): """Handle and cleanup functions. Shutdown if requested to so that no further jobs are ran if the environment is dirty.""" - pass + + try: + os.remove(self.output_summary[1]) + except OSError: + pass @common.task_step def _handle_results(self): |