summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--playbooks/zuul-stream/fixtures/test-stream.yaml15
-rw-r--r--playbooks/zuul-stream/validate.yaml5
-rw-r--r--zuul/ansible/base/callback/zuul_stream.py5
3 files changed, 24 insertions, 1 deletions
diff --git a/playbooks/zuul-stream/fixtures/test-stream.yaml b/playbooks/zuul-stream/fixtures/test-stream.yaml
index 488f8cb2f..49ceb092b 100644
--- a/playbooks/zuul-stream/fixtures/test-stream.yaml
+++ b/playbooks/zuul-stream/fixtures/test-stream.yaml
@@ -1,3 +1,16 @@
+# NOTE: We run this before starting the log streaming to validate that
+# if we set zuul_console_disabled, we don't try to connect at all. If
+# there is a log streamer running when we run this test, then we have
+# no indication that we avoid the connection step.
+- name: Run command to show skipping works without zuul_console running
+ vars:
+ zuul_console_disabled: true
+ hosts: node
+ tasks:
+ - name: Run quiet command
+ command: echo 'This command should not stream'
+ when: new_console | default(false)
+
- name: Start zuul stream daemon
hosts: node
tasks:
@@ -11,7 +24,7 @@
port: 19887
when: new_console | default(false)
-- name: Run command to show skipping works
+- name: Run command to show skipping works with zuul_console running
vars:
zuul_console_disabled: true
hosts: node
diff --git a/playbooks/zuul-stream/validate.yaml b/playbooks/zuul-stream/validate.yaml
index 81c613406..c7069f335 100644
--- a/playbooks/zuul-stream/validate.yaml
+++ b/playbooks/zuul-stream/validate.yaml
@@ -27,3 +27,8 @@
- name: Validate output - binary data
shell: |
egrep "^.*\| {{ item.node }} \| \\\\x80abc" {{ item.filename }}
+
+- name: Validate output - no waiting on logger
+ shell: |
+ egrep -v "Waiting on logger" {{ item.filename }}
+ egrep -v "Log Stream did not terminate" {{ item.filename }}
diff --git a/zuul/ansible/base/callback/zuul_stream.py b/zuul/ansible/base/callback/zuul_stream.py
index b5c14691b..3f886c797 100644
--- a/zuul/ansible/base/callback/zuul_stream.py
+++ b/zuul/ansible/base/callback/zuul_stream.py
@@ -44,6 +44,7 @@ import time
from ansible.plugins.callback import default
from ansible.module_utils._text import to_text
+from ansible.module_utils.parsing.convert_bool import boolean
from zuul.ansible import paths
from zuul.ansible import logconfig
@@ -333,6 +334,10 @@ class CallbackModule(default.CallbackModule):
if (ip in ('localhost', '127.0.0.1')):
# Don't try to stream from localhost
continue
+ if boolean(play_vars[host].get(
+ 'zuul_console_disabled', False)):
+ # The user has told us not to even try
+ continue
if play_vars[host].get('ansible_connection') in ('winrm',):
# The winrm connections don't support streaming for now
continue