docs: def __hash_and_stat_file(self, path, saltenv='base'):
          '''
          Common code for hashing and stating files
          '''
          try:
              path = self._check_proto(path)
          except MinionError as err:
              if not os.path.isfile(path):
                  log.warning(
                      'specified file %s is not present to generate hash: %s',
                      path, err
                  )
                  return {}, None
              else:
                  ret = {}
                  hash_type = self.opts.get('hash_type', 'md5')
                  ret['hsum'] = salt.utils.hashutils.get_hash(path, form=hash_type)
                  ret['hash_type'] = hash_type
                  return ret
          load = {'path': path,
                  'saltenv': saltenv,
                  'cmd': '_file_hash'}
          return self.channel.send(load)