From 793980ec0e9e7c8be990e2fd75c50883a4ac1093 Mon Sep 17 00:00:00 2001 From: Rishabh Dave Date: Thu, 25 Feb 2021 01:23:56 +0530 Subject: [PATCH] qa: don't override with args when it's empty In methods raw_cluster_cmd_result() of CephManager and LocalCephManager and raw_cluster_cmd of LocalCephManager when keyword arguments are passed instead of positional arguments, the methods run ceph command with no arguments. This is because the methods do "kwargs['args'] = args" unconditionally. Fixes: https://tracker.ceph.com/issues/49486 Signed-off-by: Rishabh Dave --- qa/tasks/ceph_manager.py | 4 +++- qa/tasks/vstart_runner.py | 10 ++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/qa/tasks/ceph_manager.py b/qa/tasks/ceph_manager.py index 66cbd19f578..9a0d18a54cb 100644 --- a/qa/tasks/ceph_manager.py +++ b/qa/tasks/ceph_manager.py @@ -1371,7 +1371,9 @@ class CephManager: """ Start ceph on a cluster. Return success or failure information. """ - kwargs['args'], kwargs['check_status'] = args, False + if kwargs.get('args') is None and args: + kwargs['args'] = args + kwargs['check_status'] = False return self.run_cluster_cmd(**kwargs).exitstatus def run_ceph_w(self, watch_channel=None): diff --git a/qa/tasks/vstart_runner.py b/qa/tasks/vstart_runner.py index 5d9c095c546..1e435ae6ab8 100644 --- a/qa/tasks/vstart_runner.py +++ b/qa/tasks/vstart_runner.py @@ -992,16 +992,18 @@ class LocalCephManager(CephManager): args like ["osd", "dump"} return stdout string """ - kwargs['args'] = args - if kwargs.get('stdout') is None: - kwargs['stdout'] = StringIO() + if kwargs.get('args') is None and args: + kwargs['args'] = args + kwargs['stdout'] = kwargs.pop('stdout', StringIO()) return self.run_cluster_cmd(**kwargs).stdout.getvalue() def raw_cluster_cmd_result(self, *args, **kwargs): """ like raw_cluster_cmd but don't check status, just return rc """ - kwargs['args'], kwargs['check_status'] = args, False + if kwargs.get('args') is None and args: + kwargs['args'] = args + kwargs['check_status'] = False return self.run_cluster_cmd(**kwargs).exitstatus def admin_socket(self, daemon_type, daemon_id, command, check_status=True, -- 2.47.3