예제 #1
0
  def GetChangeDetail(self, change_num):
    """Return detailed information about a gerrit change.

    Args:
      change_num: A gerrit change number.
    """
    return gob_util.GetChangeDetail(
        self.host, change_num, o_params=('CURRENT_REVISION', 'CURRENT_COMMIT'))
예제 #2
0
파일: gerrit.py 프로젝트: msisov/chromium68
  def GetChangeDetail(self, change_num, verbose=False):
    """Return detailed information about a gerrit change.

    Args:
      change_num: A gerrit change number.
      verbose: (optional) Whether to print more properties of the change
    """
    if verbose:
      o_params = ('ALL_REVISIONS', 'ALL_FILES', 'ALL_COMMITS',
                  'DETAILED_LABELS', 'MESSAGES', 'DOWNLOAD_COMMANDS', 'CHECK')
    else:
      o_params = ('CURRENT_REVISION', 'CURRENT_COMMIT')

    return gob_util.GetChangeDetail(
        self.host, change_num, o_params=o_params)
예제 #3
0
    def Query(self,
              change=None,
              sort=None,
              current_patch=True,
              options=(),
              dryrun=False,
              raw=False,
              _resume_sortkey=None,
              **query_kwds):
        if options:
            raise GerritException(
                '"options" argument unsupported on gerrit-on-borg.')
        url_prefix = gob_util.GetGerritFetchUrl(self.host)
        o_params = ['DETAILED_ACCOUNTS']
        if current_patch:
            o_params.extend(
                ['CURRENT_COMMIT', 'CURRENT_REVISION', 'DETAILED_LABELS'])

        if change and change.isdigit() and not query_kwds:
            if dryrun:
                logging.info(
                    'Would have run gob_util.GetChangeDetail(%s, %s, %s)',
                    self.host, change, o_params)
                return []
            patch_dict = cros_patch.GerritPatch.ConvertQueryResults(
                gob_util.GetChangeDetail(self.host, change, o_params=o_params),
                self.host)
            if raw:
                return [patch_dict]
            return [
                cros_patch.GerritPatch(patch_dict, self.remote, url_prefix)
            ]

        if change and query_kwds.get('change'):
            raise GerritException(
                'Bad query params: provided a change-id-like query,'
                ' and a "change" search parameter')

        if _resume_sortkey:
            query_kwds['resume_sortkey'] = _resume_sortkey

        if dryrun:
            logging.info(
                'Would have run gob_util.QueryChanges(%s, %s, '
                'first_param=%s, limit=%d)', self.host, repr(query_kwds),
                change, self._GERRIT_MAX_QUERY_RETURN)
            return []

        moar = gob_util.QueryChanges(self.host,
                                     query_kwds,
                                     first_param=change,
                                     limit=self._GERRIT_MAX_QUERY_RETURN,
                                     o_params=o_params)
        result = list(moar)
        while moar and moar[-1].get('_more_changes'):
            query_kwds['resume_sortkey'] = result[-1].get['_sortkey']
            moar = gob_util.QueryChanges(self.host,
                                         query_kwds,
                                         first_param=change,
                                         limit=self._GERRIT_MAX_QUERY_RETURN)
            result.extend(moar)
        result = [
            cros_patch.GerritPatch.ConvertQueryResults(x, self.host)
            for x in result
        ]
        if sort:
            result = sorted(result, key=operator.itemgetter(sort))
        if raw:
            return result
        return [
            cros_patch.GerritPatch(x, self.remote, url_prefix) for x in result
        ]