Check ret for None in zuul_run_command

The check 'if not ret' not only matches a missing return code but also
the value 0 which is actually a successful run. Thus successful
commands end with an error 'Something went horribly wrong during task
execution'. This can be fixed by explicitly checking for None.

Also adds a successful shell task to the test_playbook test case which
fails without this patch.

Change-Id: If1d0721574a82e247659ab0f865ae6acfe12a6be
This commit is contained in:
Tobias Henkel 2017-07-11 10:02:57 +02:00
parent 91fad2609f
commit 542f948952
2 changed files with 6 additions and 2 deletions

View File

@ -10,3 +10,7 @@
that:
- st.stat.exists
- st.stat.isreg
- name: Simple shell task.
shell: |+
echo "Hello world"

View File

@ -409,9 +409,9 @@ def zuul_run_command(self, args, zuul_log_id, check_rc=False, close_fds=True, ex
if t.isAlive():
console.addLine("[Zuul] standard output/error still open "
"after child exited")
if not ret and fail_json_kwargs:
if ret is None and fail_json_kwargs:
ret = fail_json_kwargs['rc']
elif not ret and not fail_json_kwargs:
elif ret is None and not fail_json_kwargs:
ret = -1
console.addLine("[Zuul] Task exit code: %s\n" % ret)
if ret == -1 and not fail_json_kwargs: