Skip to content

Commit

Permalink
Merge branch '9/use-data-api-3' of git://github.com/djmitche/buildbot…
Browse files Browse the repository at this point in the history
… into nine
  • Loading branch information
djmitche committed Dec 29, 2013
2 parents bcefe17 + 8170e2f commit 2c8391d
Show file tree
Hide file tree
Showing 10 changed files with 49 additions and 315 deletions.
19 changes: 19 additions & 0 deletions master/buildbot/process/logobserver.py
Expand Up @@ -34,6 +34,8 @@ def gotData(self, stream, data):
self.outReceived(data)
elif stream == 'e':
self.errReceived(data)
elif stream == 'h':
self.headerReceived(data)

# TODO: document / test
def finishReceived(self):
Expand All @@ -45,6 +47,9 @@ def outReceived(self, data):
def errReceived(self, data):
pass

def headerReceived(self, data):
pass


class LogLineObserver(LogObserver):

Expand All @@ -61,6 +66,11 @@ def __init__(self):
self.stderrParser.lineReceived = self.errLineReceived
self.stderrParser.transport = self

self.headerParser = basic.LineOnlyReceiver()
self.headerParser.delimiter = "\n"
self.headerParser.lineReceived = self.headerLineReceived
self.headerParser.transport = self

def setMaxLineLength(self, max_length):
"""
Set the maximum line length: lines longer than max_length are
Expand All @@ -69,13 +79,17 @@ def setMaxLineLength(self, max_length):
"""
self.stdoutParser.MAX_LENGTH = max_length
self.stderrParser.MAX_LENGTH = max_length
self.headerParser.MAX_LENGTH = max_length

def outReceived(self, data):
self.stdoutParser.dataReceived(data)

def errReceived(self, data):
self.stderrParser.dataReceived(data)

def headerReceived(self, data):
self.headerParser.dataReceived(data)

def outLineReceived(self, line):
"""This will be called with complete stdout lines (not including the
delimiter). Override this in your observer."""
Expand All @@ -86,6 +100,11 @@ def errLineReceived(self, line):
the delimiter). Override this in your observer."""
pass

def headerLineReceived(self, line):
"""This will be called with complete lines of stderr (not including
the delimiter). Override this in your observer."""
pass


class OutputProgressObserver(LogObserver):
length = 0
Expand Down
6 changes: 0 additions & 6 deletions master/buildbot/status/logfile.py
Expand Up @@ -327,9 +327,6 @@ def old_getText(self):
# this produces one ginormous string
return "".join(self.old_getChunks([STDOUT, STDERR], onlyText=True))

def old_getTextWithHeaders(self):
return "".join(self.old_getChunks(onlyText=True))

def old_getChunks(self, channels=[], onlyText=False):
# generate chunks for everything that was logged at the time we were
# first called, so remember how long the file was when we started.
Expand Down Expand Up @@ -668,9 +665,6 @@ def old_hasContents(self):
def old_getText(self):
return self.html # looks kinda like text

def old_getTextWithHeaders(self):
return self.html

def old_getChunks(self):
return [(STDERR, self.html)]

Expand Down
289 changes: 0 additions & 289 deletions master/buildbot/status/tinderbox.py

This file was deleted.

7 changes: 3 additions & 4 deletions master/buildbot/test/fake/logfile.py
Expand Up @@ -45,6 +45,9 @@ def subscribe(self, callback):
def addHeader(self, text):
self.header += text
self.chunks.append((HEADER, text))
if self.name in self.step.logobservers:
for obs in self.step.logobservers[self.name]:
obs.headerReceived(text)

def addStdout(self, text):
self.stdout += text
Expand Down Expand Up @@ -93,10 +96,6 @@ def getText(self):
return ''.join([c for str, c in self.chunks
if str in (STDOUT, STDERR)])

def getTextWithHeaders(self):
warnings.warn("step uses removed LogFile method `getTextWithHeaders`")
return ''.join([c for str, c in self.chunks])

def getChunks(self, channels=[], onlyText=False):
warnings.warn("step uses removed LogFile method `getChunks`")
if onlyText:
Expand Down

0 comments on commit 2c8391d

Please sign in to comment.