code: def osd_tree(conn, cluster):
      
      ceph_executable = system.executable_path(conn, 'ceph')
      command = [
          ceph_executable,
          '--cluster={cluster}'.format(cluster=cluster),
          'osd',
          'tree',
          '--format=json',
      ]
  
      out, err, code = remoto.process.check(
          conn,
          command,
      )
  
      try:
          loaded_json = json.loads(b''.join(out).decode('utf-8'))
          # convert boolean strings to actual booleans because
          # --format=json fails to do this properly
          for k, v in loaded_json.items():
              if v == 'true':
                  loaded_json[k] = True
              elif v == 'false':
                  loaded_json[k] = False
          return loaded_json
      except ValueError:
          return {}
docs: Check the status of an OSD. Make sure all are up and in
  
      What good output would look like::
  
          {
              "epoch": 8,
              "num_osds": 1,
              "num_up_osds": 1,
              "num_in_osds": "1",
              "full": "false",
              "nearfull": "false"
          }
  
      Note how the booleans are actually strings, so we need to take that into
      account and fix it before returning the dictionary. Issue #8108