docs: def upgrade(refresh=True, **kwargs):  # pylint: disable=unused-argument
      '''
      Upgrades all packages via ``opkg upgrade``
  
      Returns a dictionary containing the changes:
  
      .. code-block:: python
  
          {'<package>':  {'old': '<old-version>',
                          'new': '<new-version>'}}
  
  
      CLI Example:
  
      .. code-block:: bash
  
          salt '*' pkg.upgrade
      '''
      ret = {'changes': {},
             'result': True,
             'comment': '',
             }
  
      errors = []
  
      if salt.utils.data.is_true(refresh):
          refresh_db()
  
      old = list_pkgs()
  
      cmd = ['opkg', 'upgrade']
      result = __salt__['cmd.run_all'](cmd,
                                       output_loglevel='trace',
                                       python_shell=False)
      __context__.pop('pkg.list_pkgs', None)
      new = list_pkgs()
      ret = salt.utils.data.compare_dicts(old, new)
  
      if result['retcode'] != 0:
          errors.append(result)
  
      rs_result = _get_restartcheck_result(errors)
  
      if errors:
          raise CommandExecutionError(
              'Problem encountered upgrading packages',
              info={'errors': errors, 'changes': ret}
          )
  
      _process_restartcheck_result(rs_result, **kwargs)
  
      return ret