docs: def _get_dict(lines, start_index, indentation, deep):
      """Recursive function for parsing hpssacli/ssacli output."""
  
      info = {}
      current_item = None
  
      i = start_index
      while i < len(lines):
  
          current_line = lines[i]
          current_line_indentation = _get_indentation(current_line)
  
          # Check for multi-level returns
          if current_line_indentation < indentation:
              return info, i-1
  
          if current_line_indentation == indentation:
              current_item = current_line.lstrip(' ')
              info[current_item] = {}
              i = i + 1
              continue
  
          if i < len(lines) - 1:
              next_line_indentation = _get_indentation(lines[i+1])
          else:
              next_line_indentation = current_line_indentation
  
          if next_line_indentation > current_line_indentation:
              ret_dict, i = _get_dict(lines, i, current_line_indentation, deep+1)
              for key in ret_dict.keys():
                  if key in info[current_item]:
                      info[current_item][key].update(ret_dict[key])
                  else:
                      info[current_item][key] = ret_dict[key]
          else:
              key, value = _get_key_value(current_line)
              if key:
                  info[current_item][key] = value
  
          # Do not return if it's the top level of recursion
          if next_line_indentation < current_line_indentation and deep > 0:
              return info, i
  
          i = i + 1
  
      return info, i