| Index: scripts/master/try_job_rietveld.py
|
| diff --git a/scripts/master/try_job_rietveld.py b/scripts/master/try_job_rietveld.py
|
| index e7bb9bde2ca39897c58b7fdfa8ec6a438912fe16..a4128f40bd9398a07f90645782d8612d62db4dcf 100644
|
| --- a/scripts/master/try_job_rietveld.py
|
| +++ b/scripts/master/try_job_rietveld.py
|
| @@ -104,100 +104,6 @@ class _ValidUserPoller(internet.TimerService):
|
| log.msg('Found %d users' % len(self._users))
|
|
|
|
|
| -class _RietveldPoller(base.PollingChangeSource):
|
| - """Polls Rietveld for any pending patch sets to build.
|
| -
|
| - Periodically polls Rietveld to see if any patch sets have been marked by
|
| - users to be tried. If so, send them to the trybots.
|
| - """
|
| -
|
| - def __init__(self, get_pending_endpoint, interval, cachepath=None):
|
| - """
|
| - Args:
|
| - get_pending_endpoint: Rietveld URL string used to retrieve jobs to try.
|
| - interval: Interval used to poll Rietveld, in seconds.
|
| - cachepath: Path to file where state to persist between master restarts
|
| - will be stored.
|
| - """
|
| - # Set interval time in base class.
|
| - self.pollInterval = interval
|
| -
|
| - # A string URL for the Rietveld endpoint to query for pending try jobs.
|
| - self._get_pending_endpoint = get_pending_endpoint
|
| -
|
| - # Cursor used to keep track of next patchset(s) to try. If the cursor
|
| - # is None, then try from the beginning.
|
| - self._cursor = None
|
| -
|
| - # Try job parent of this poller.
|
| - self._try_job_rietveld = None
|
| -
|
| - self._cachepath = cachepath
|
| -
|
| - if self._cachepath:
|
| - if os.path.exists(self._cachepath):
|
| - with open(self._cachepath) as f:
|
| - # Using JSON allows us to be flexible and extend the format
|
| - # in a compatible way.
|
| - data = json.load(f)
|
| - self._cursor = data.get('cursor').encode('utf-8')
|
| -
|
| - # base.PollingChangeSource overrides:
|
| - def poll(self):
|
| - """Polls Rietveld for any pending try jobs and submit them.
|
| -
|
| - Returns:
|
| - A deferred objects to be called once the operation completes.
|
| - """
|
| - log.msg('RietveldPoller.poll')
|
| - d = defer.succeed(None)
|
| - d.addCallback(self._OpenUrl)
|
| - d.addCallback(self._ParseJson)
|
| - d.addErrback(log.err, 'error in RietveldPoller') # eat errors
|
| - return d
|
| -
|
| - def setServiceParent(self, parent):
|
| - base.PollingChangeSource.setServiceParent(self, parent)
|
| - self._try_job_rietveld = parent
|
| -
|
| - def _OpenUrl(self, _):
|
| - """Downloads pending patch sets from Rietveld.
|
| -
|
| - Returns: A string containing the pending patchsets from Rietveld
|
| - encoded as JSON.
|
| - """
|
| - endpoint = self._get_pending_endpoint
|
| - if self._cursor:
|
| - sep = '&' if '?' in endpoint else '?'
|
| - endpoint = endpoint + '%scursor=%s' % (sep, self._cursor)
|
| -
|
| - log.msg('RietveldPoller._OpenUrl: %s' % endpoint)
|
| - return client.getPage(endpoint, agent='buildbot', timeout=2*60)
|
| -
|
| - def _ParseJson(self, json_string):
|
| - """Parses the JSON pending patch set information.
|
| -
|
| - Args:
|
| - json_string: A string containing the serialized JSON jobs.
|
| -
|
| - Returns: A list of pending try jobs. This is the list of all jobs returned
|
| - by Rietveld, not simply the ones we tried this time.
|
| - """
|
| - data = json.loads(json_string)
|
| - d = self._try_job_rietveld.SubmitJobs(data['jobs'])
|
| - def success_callback(value):
|
| - self._cursor = str(data['cursor'])
|
| - self._try_job_rietveld.processed_keys.clear()
|
| -
|
| - if self._cachepath:
|
| - with open(self._cachepath, 'w') as f:
|
| - json.dump({'cursor': self._cursor}, f)
|
| -
|
| - return value
|
| - d.addCallback(success_callback)
|
| - return d
|
| -
|
| -
|
| class _RietveldPollerWithCache(base.PollingChangeSource):
|
| """Polls Rietveld for any pending patch sets to build.
|
|
|
| @@ -209,7 +115,7 @@ class _RietveldPollerWithCache(base.PollingChangeSource):
|
| this cache is initialized with jobs currently pending on the Buildbot.
|
| """
|
|
|
| - def __init__(self, pending_jobs_url, interval, cachepath=None):
|
| + def __init__(self, pending_jobs_url, interval):
|
| """
|
| Args:
|
| pending_jobs_url: Rietveld URL string used to retrieve jobs to try.
|
| @@ -218,7 +124,6 @@ class _RietveldPollerWithCache(base.PollingChangeSource):
|
| self.pollInterval = interval
|
| self._try_job_rietveld = None
|
| self._pending_jobs_url = pending_jobs_url
|
| - self._cachepath = cachepath
|
| self._processed_keys = None
|
|
|
| # base.PollingChangeSource overrides:
|
| @@ -350,8 +255,7 @@ class TryJobRietveld(TryJobBase):
|
| """A try job source that gets jobs from pending Rietveld patch sets."""
|
|
|
| def __init__(self, name, pools, properties=None, last_good_urls=None,
|
| - code_review_sites=None, project=None, filter_master=False,
|
| - cachepath=None, cache_processed_jobs=False):
|
| + code_review_sites=None, project=None, filter_master=False):
|
| """Creates a try job source for Rietveld patch sets.
|
|
|
| Args:
|
| @@ -372,10 +276,7 @@ class TryJobRietveld(TryJobBase):
|
| endpoint = self._GetRietveldEndPointForProject(
|
| code_review_sites, project, filter_master)
|
|
|
| - if cache_processed_jobs:
|
| - self._poller = _RietveldPollerWithCache(endpoint, interval=10)
|
| - else:
|
| - self._poller = _RietveldPoller(endpoint, interval=10, cachepath=cachepath)
|
| + self._poller = _RietveldPollerWithCache(endpoint, interval=10)
|
| self._valid_users = _ValidUserPoller(interval=12 * 60 * 60)
|
| self._project = project
|
|
|
|
|