| Index: scripts/master/gerrit_poller.py
 | 
| diff --git a/scripts/master/gerrit_poller.py b/scripts/master/gerrit_poller.py
 | 
| index 57425fd740afd0da300c1fee9e55b9569cbcf26d..7b40849a2711f6bf018a500cc0e78f9cf9712f04 100644
 | 
| --- a/scripts/master/gerrit_poller.py
 | 
| +++ b/scripts/master/gerrit_poller.py
 | 
| @@ -15,6 +15,8 @@ from common.gerrit_agent import GerritAgent
 | 
|  class GerritPoller(base.PollingChangeSource):
 | 
|    """A poller which queries a gerrit server for new changes and patchsets."""
 | 
|  
 | 
| +  change_category = 'patchset-created'
 | 
| +
 | 
|    def __init__(self, gerrit_host, gerrit_projects=None, pollInterval=None):
 | 
|      if isinstance(gerrit_projects, basestring):
 | 
|        gerrit_projects = [gerrit_projects]
 | 
| @@ -34,10 +36,13 @@ class GerritPoller(base.PollingChangeSource):
 | 
|      self.initLastTimeStamp()
 | 
|      base.PollingChangeSource.startService(self)
 | 
|  
 | 
| +  def getChangeQuery(self):  # pylint: disable=R0201
 | 
| +    return 'status:open'
 | 
| +
 | 
|    @deferredLocked('initLock')
 | 
|    def initLastTimeStamp(self):
 | 
|      log.msg('GerritPoller: Getting latest timestamp from gerrit server.')
 | 
| -    path = '/changes/?q=status:open&n=1'
 | 
| +    path = '/changes/?q=%s&n=1' % self.getChangeQuery()
 | 
|      d = self.agent.request('GET', path)
 | 
|      def _get_timestamp(j):
 | 
|        if len(j) == 0:
 | 
| @@ -48,11 +53,14 @@ class GerritPoller(base.PollingChangeSource):
 | 
|      return d
 | 
|  
 | 
|    def getChanges(self, sortkey=None):
 | 
| -    path = '/changes/?q=status:open&n=10'
 | 
| +    path = '/changes/?q=%s&n=10' % self.getChangeQuery()
 | 
|      if sortkey:
 | 
|        path += '&N=%s' % sortkey
 | 
|      return self.agent.request('GET', path)
 | 
|  
 | 
| +  def _is_interesting_message(self, message):  # pylint: disable=R0201
 | 
| +    return message['message'].startswith('Uploaded patch set ')
 | 
| +
 | 
|    def checkForNewPatchset(self, change, since):
 | 
|      o_params = '&'.join('o=%s' % x for x in (
 | 
|          'MESSAGES', 'CURRENT_REVISION', 'CURRENT_COMMIT', 'ALL_FILES'))
 | 
| @@ -64,12 +72,12 @@ class GerritPoller(base.PollingChangeSource):
 | 
|        for m in reversed(j['messages']):
 | 
|          if self._parse_timestamp(m['date']) <= since:
 | 
|            break
 | 
| -        if m['message'].startswith('Uploaded patch set '):
 | 
| -          return j
 | 
| +        if self._is_interesting_message(m):
 | 
| +          return j, m
 | 
|      d.addCallback(_parse_messages)
 | 
|      return d
 | 
|  
 | 
| -  def createBuildbotChange(self, change):
 | 
| +  def addBuildbotChange(self, change, message):
 | 
|      revision = change['revisions'].values()[0]
 | 
|      commit = revision['commit']
 | 
|      properties = {'event.change.number': change['_number']}
 | 
| @@ -87,7 +95,7 @@ class GerritPoller(base.PollingChangeSource):
 | 
|          'revision': change['current_revision'],
 | 
|          'comments': commit['subject'],
 | 
|          'files': commit['files'].keys() if 'files' in commit else ['UNKNOWN'],
 | 
| -        'category': 'patchset-created',
 | 
| +        'category': self.change_category,
 | 
|          'when_timestamp': self._parse_timestamp(commit['committer']['date']),
 | 
|          'revlink': '%s://%s/#/c/%s' % (
 | 
|              self.agent.gerrit_protocol, self.agent.gerrit_host,
 | 
| @@ -95,12 +103,16 @@ class GerritPoller(base.PollingChangeSource):
 | 
|          'repository': '%s://%s/%s' % (
 | 
|              self.agent.gerrit_protocol, self.agent.gerrit_host,
 | 
|              change['project']),
 | 
| -        'properties': properties}
 | 
| +        'properties': properties,
 | 
| +    }
 | 
|      d = self.master.addChange(**chdict)
 | 
|      d.addErrback(log.err, 'GerritPoller: Could not add buildbot change for '
 | 
|                   'gerrit change %s.' % revision['_number'])
 | 
|      return d
 | 
|  
 | 
| +  def addChange(self, change, message):
 | 
| +    return self.addBuildbotChange(change, message)
 | 
| +
 | 
|    def processChanges(self, j, since):
 | 
|      need_more = bool(j)
 | 
|      for change in j:
 | 
| @@ -111,7 +123,7 @@ class GerritPoller(base.PollingChangeSource):
 | 
|        if self.gerrit_projects and change['project'] not in self.gerrit_projects:
 | 
|          continue
 | 
|        d = self.checkForNewPatchset(change, since)
 | 
| -      d.addCallback(lambda x: self.createBuildbotChange(x) if x else None)
 | 
| +      d.addCallback(lambda x: self.addChange(*x) if x else None)
 | 
|      if need_more and j[-1].get('_more_changes'):
 | 
|        d = self.getChanges(sortkey=j[-1]['_sortkey'])
 | 
|        d.addCallback(self.processChanges, since=since)
 | 
| 
 |