From: Rishabh Dave Date: Wed, 24 Feb 2021 19:53:56 +0000 (+0530) Subject: qa: don't override with args when it's empty X-Git-Tag: v17.1.0~2709^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F39690%2Fhead;p=ceph.git 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 --- diff --git a/qa/tasks/ceph_manager.py b/qa/tasks/ceph_manager.py index 66cbd19f578a..9a0d18a54cba 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 5d9c095c546d..1e435ae6ab81 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,