docs: def refresh_db(failhard=False, **kwargs):  # pylint: disable=unused-argument
      '''
      Updates the opkg database to latest packages based upon repositories
  
      Returns a dict, with the keys being package databases and the values being
      the result of the update attempt. Values can be one of the following:
  
      - ``True``: Database updated successfully
      - ``False``: Problem updating database
  
      failhard
          If False, return results of failed lines as ``False`` for the package
          database that encountered the error.
          If True, raise an error with a list of the package databases that
          encountered errors.
  
          .. versionadded:: 2018.3.0
  
      CLI Example:
  
      .. code-block:: bash
  
          salt '*' pkg.refresh_db
      '''
      # Remove rtag file to keep multiple refreshes from happening in pkg states
      salt.utils.pkg.clear_rtag(__opts__)
      ret = {}
      error_repos = []
      cmd = ['opkg', 'update']
      # opkg returns a non-zero retcode when there is a failure to refresh
      # from one or more repos. Due to this, ignore the retcode.
      call = __salt__['cmd.run_all'](cmd,
                                     output_loglevel='trace',
                                     python_shell=False,
                                     ignore_retcode=True,
                                     redirect_stderr=True)
  
      out = call['stdout']
      prev_line = ''
      for line in salt.utils.itertools.split(out, '\n'):
          if 'Inflating' in line:
              key = line.strip().split()[1][:-1]
              ret[key] = True
          elif 'Updated source' in line:
              # Use the previous line.
              key = prev_line.strip().split()[1][:-1]
              ret[key] = True
          elif 'Failed to download' in line:
              key = line.strip().split()[5].split(',')[0]
              ret[key] = False
              error_repos.append(key)
          prev_line = line
  
      if failhard and error_repos:
          raise CommandExecutionError(
              'Error getting repos: {0}'.format(', '.join(error_repos))
          )
  
      # On a non-zero exit code where no failed repos were found, raise an
      # exception because this appears to be a different kind of error.
      if call['retcode'] != 0 and not error_repos:
          raise CommandExecutionError(out)
  
      return ret