Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(597)

Unified Diff: third_party/WebKit/Tools/Scripts/webkitpy/common/net/rietveld.py

Issue 2718503004: Remove Rietveld class and all dependencies on it. (Closed)
Patch Set: Rebased Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Tools/Scripts/webkitpy/common/net/rietveld.py
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/common/net/rietveld.py b/third_party/WebKit/Tools/Scripts/webkitpy/common/net/rietveld.py
deleted file mode 100644
index c1438faf5f7ba0f1a39bea8c8bf647258b2d6f87..0000000000000000000000000000000000000000
--- a/third_party/WebKit/Tools/Scripts/webkitpy/common/net/rietveld.py
+++ /dev/null
@@ -1,100 +0,0 @@
-# Copyright 2016 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-"""Utility functions to communicate with Rietveld."""
-
-import json
-import logging
-import urllib2
-
-from webkitpy.common.net.buildbot import Build, filter_latest_builds
-
-_log = logging.getLogger(__name__)
-
-BASE_CODEREVIEW_URL = 'https://codereview.chromium.org/api'
-
-
-class Rietveld(object):
-
- def __init__(self, web):
- self.web = web
-
- def latest_try_jobs(self, issue_number, builder_names=None, patchset_number=None):
- """Returns a list of Build objects for builds on the latest patchset.
-
- Args:
- issue_number: A Rietveld issue number.
- builder_names: A collection of builder names. If specified, only results
- from the given list of builders will be kept.
- patchset_number: If given, a specific patchset will be used instead of the latest one.
-
- Returns:
- A list of Build objects, where Build objects for completed jobs have a build number,
- and Build objects for pending jobs have no build number.
- """
- try:
- if patchset_number:
- url = self._patchset_url(issue_number, patchset_number)
- else:
- url = self._latest_patchset_url(issue_number)
- patchset_data = self._get_json(url)
- except (urllib2.URLError, ValueError):
- return []
-
- builds = []
- for result_dict in patchset_data['try_job_results']:
- build = Build(result_dict['builder'], result_dict['buildnumber'])
- # Normally, a value of -1 or 6 in the "result" field indicates the job is
- # started or pending, and the "buildnumber" field is null.
- if build.build_number and result_dict['result'] in (-1, 6):
- _log.warning('Build %s has result %d, but unexpectedly has a build number.', build, result_dict['result'])
- build.build_number = None
- builds.append(build)
-
- if builder_names is not None:
- builds = [b for b in builds if b.builder_name in builder_names]
-
- return filter_latest_builds(builds)
-
- def changed_files(self, issue_number):
- """Lists the files included in a CL that are changed but not deleted.
-
- File paths are sorted and relative to the repository root.
- """
- try:
- url = self._latest_patchset_url(issue_number)
- issue_data = self._get_json(url)
- return sorted(path for path, file_change in issue_data['files'].iteritems() if file_change['status'] != 'D')
- except (urllib2.URLError, ValueError, KeyError):
- _log.warning('Failed to list changed files for issue %s.', issue_number)
- return None
-
- def _latest_patchset_url(self, issue_number):
- issue_data = self._get_json(self._issue_url(issue_number))
- latest_patchset_number = issue_data["patchsets"][-1]
- return self._patchset_url(issue_number, latest_patchset_number)
-
- def _get_json(self, url):
- """Fetches JSON from a URL, and logs errors if the request was unsuccessful.
-
- Raises:
- urllib2.URLError: Something went wrong with the request.
- ValueError: The response wasn't valid JSON.
- """
- try:
- contents = self.web.get_binary(url)
- except urllib2.URLError:
- _log.error('Request failed to URL: %s', url)
- raise
- try:
- return json.loads(contents)
- except ValueError:
- _log.error('Invalid JSON: %s', contents)
- raise
-
- def _issue_url(self, issue_number):
- return '%s/%s' % (BASE_CODEREVIEW_URL, issue_number)
-
- def _patchset_url(self, issue_number, patchset_number):
- return '%s/%s' % (self._issue_url(issue_number), patchset_number)

Powered by Google App Engine
This is Rietveld 408576698