Ticket #61: bp-async.patch

File bp-async.patch, 1.7 KB (added by Pike, 5 years ago)

use twisted.web.client.getPage instead of urllib.urlopen

  • buildbot/changes/bonsaipoller.py

    RCS file: /cvsroot/mozilla/tools/buildbot/buildbot/changes/bonsaipoller.py,v
    retrieving revision 1.5
    diff -u -r1.5 bonsaipoller.py
     
    11import time 
    2 from urllib import urlopen 
    32from xml.dom import minidom, Node 
    43 
    54from twisted.python import log, failure 
    65from twisted.internet import defer, reactor 
    76from twisted.internet.task import LoopingCall 
     7from twisted.web.client import getPage 
    88 
    99from buildbot.changes import base, changes 
    1010 
     
    6464class BonsaiParser: 
    6565    """I parse the XML result from a bonsai cvsquery.""" 
    6666 
    67     def __init__(self, bonsaiQuery): 
     67    def __init__(self, data): 
    6868        try: 
    6969        # this is a fix for non-ascii characters 
    70         # readlines() + join is being used because read() is not guaranteed 
    71         # to work. because bonsai does not give us an encoding to work with 
     70        # because bonsai does not give us an encoding to work with 
    7271        # it impossible to be 100% sure what to decode it as but latin1 covers 
    7372        # the broadest base 
    74             data = "".join(bonsaiQuery.readlines()) 
    7573            data = data.decode("latin1") 
    7674            data = data.encode("ascii", "replace") 
    7775            self.dom = minidom.parseString(data) 
     
    290288 
    291289        self.lastPoll = time.time() 
    292290        # get the page, in XML format 
    293         return defer.maybeDeferred(urlopen, url) 
     291        return getPage(url, timeout=self.pollInterval) 
    294292 
    295293    def _process_changes(self, query): 
    296294        try: