docs: def _get_repo_metadata(self):
          '''
          Return cached repo metadata
          '''
          cache = salt.cache.Cache(self.opts, self.opts['spm_cache_dir'])
          metadata = {}
  
          def _read_metadata(repo, repo_info):
              if cache.updated('.', repo) is None:
                  log.warning('Updating repo metadata')
                  self._download_repo_metadata({})
  
              metadata[repo] = {
                  'info': repo_info,
                  'packages': cache.fetch('.', repo),
              }
  
          self._traverse_repos(_read_metadata)
          return metadata