]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
qa: don't override with args when it's empty 39690/head
authorRishabh Dave <ridave@redhat.com>
Wed, 24 Feb 2021 19:53:56 +0000 (01:23 +0530)
committerRishabh Dave <ridave@redhat.com>
Mon, 1 Mar 2021 13:08:55 +0000 (18:38 +0530)
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 <ridave@redhat.com>
qa/tasks/ceph_manager.py
qa/tasks/vstart_runner.py

index 66cbd19f578ae2910b5999f7f3f2d396e15295d8..9a0d18a54cba2a458d9387000a862e8a61f9c8d9 100644 (file)
@@ -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):
index 5d9c095c546d71e825c5911308a2344473a23cf1..1e435ae6ab81e0090097017c42ad039e5f404385 100644 (file)
@@ -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,