]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
qa/tasks: Include stderr on tasks badness check.
authorChristopher Hoffman <choffman@redhat.com>
Tue, 18 Oct 2022 20:14:19 +0000 (20:14 +0000)
committerIlya Dryomov <idryomov@gmail.com>
Fri, 17 Jan 2025 18:41:04 +0000 (19:41 +0100)
Make sure that first_in_ceph_log() doesn't return None (which is
treated as success/"no badness" by the caller) if the cluster log file
is missing.

Fixes: https://tracker.ceph.com/issues/57864
Co-authored-by: Ilya Dryomov <idryomov@gmail.com>
Signed-off-by: Christopher Hoffman <choffman@redhat.com>
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
(cherry picked from commit 5d92965b31800bd7106e6f40fe4fc78b07e6f2e9)

qa/tasks/ceph.py
qa/tasks/cephadm.py
qa/tasks/rook.py

index 9177974ed08deba044a37a9664ea1e1e01dba673..58442202ce73de52761ff9f74a9b0ebb7daebc2b 100644 (file)
@@ -1133,8 +1133,18 @@ def cluster(ctx, config):
             args.extend([
                 run.Raw('|'), 'head', '-n', '1',
             ])
-            stdout = mon0_remote.sh(args)
-            return stdout or None
+            r = mon0_remote.run(
+                stdout=BytesIO(),
+                args=args,
+                stderr=StringIO(),
+            )
+            stdout = r.stdout.getvalue().decode()
+            if stdout:
+                return stdout
+            stderr = r.stderr.getvalue()
+            if stderr:
+                return stderr
+            return None
 
         if first_in_ceph_log('\[ERR\]|\[WRN\]|\[SEC\]',
                              config['log_ignorelist']) is not None:
index 27e0f66d3337d97e0069ed89f1ba822bcd2928ff..6927d9992cfe1e5921cf0f063a3b1c70f6696bdc 100644 (file)
@@ -442,12 +442,16 @@ def ceph_log(ctx, config):
                 run.Raw('|'), 'head', '-n', '1',
             ])
             r = ctx.ceph[cluster_name].bootstrap_remote.run(
-                stdout=StringIO(),
+                stdout=BytesIO(),
                 args=args,
+                stderr=StringIO(),
             )
-            stdout = r.stdout.getvalue()
-            if stdout != '':
+            stdout = r.stdout.getvalue().decode()
+            if stdout:
                 return stdout
+            stderr = r.stderr.getvalue()
+            if stderr:
+                return stderr
             return None
 
         # NOTE: technically the first and third arg to first_in_ceph_log
index 6cb75173966925f2f7661f91ad818fb264087f2c..fae5ef3bf00562c00eb81820438fd473a7f087d9 100644 (file)
@@ -8,7 +8,7 @@ import json
 import logging
 import os
 import yaml
-from io import BytesIO
+from io import BytesIO, StringIO
 
 from tarfile import ReadError
 from tasks.ceph_manager import CephManager
@@ -235,10 +235,14 @@ def ceph_log(ctx, config):
             r = ctx.rook[cluster_name].remote.run(
                 stdout=BytesIO(),
                 args=args,
+                stderr=StringIO(),
             )
             stdout = r.stdout.getvalue().decode()
             if stdout:
                 return stdout
+            stderr = r.stderr.getvalue()
+            if stderr:
+                return stderr
             return None
 
         if first_in_ceph_log('\[ERR\]|\[WRN\]|\[SEC\]',