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

Side by Side Diff: pylibs/buildbot/status/builder.py

Issue 809001: Rename a few variables and greatly reduce the amount of data sent for steps* events (Closed)
Patch Set: Rebase against trunk and fix the unit test again Created 10 years, 9 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 unified diff | Download patch
« no previous file with comments | « no previous file | pylibs/buildbot/status/status_push.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # -*- test-case-name: buildbot.test.test_status -*- 1 # -*- test-case-name: buildbot.test.test_status -*-
2 2
3 from zope.interface import implements 3 from zope.interface import implements
4 from twisted.python import log 4 from twisted.python import log
5 from twisted.persisted import styles 5 from twisted.persisted import styles
6 from twisted.internet import reactor, defer, threads 6 from twisted.internet import reactor, defer, threads
7 from twisted.protocols import basic 7 from twisted.protocols import basic
8 from buildbot.process.properties import Properties 8 from buildbot.process.properties import Properties
9 9
10 import weakref 10 import weakref
(...skipping 720 matching lines...) Expand 10 before | Expand all | Expand 10 after
731 return self.results 731 return self.results
732 def getID(self): 732 def getID(self):
733 return self.id 733 return self.id
734 734
735 def getBuilderNames(self): 735 def getBuilderNames(self):
736 return self.builderNames 736 return self.builderNames
737 def getBuildRequests(self): 737 def getBuildRequests(self):
738 return self.buildRequests 738 return self.buildRequests
739 def isFinished(self): 739 def isFinished(self):
740 return self.finished 740 return self.finished
741 741
742 def waitUntilSuccess(self): 742 def waitUntilSuccess(self):
743 if self.finished or not self.stillHopeful: 743 if self.finished or not self.stillHopeful:
744 # the deferreds have already fired 744 # the deferreds have already fired
745 return defer.succeed(self) 745 return defer.succeed(self)
746 d = defer.Deferred() 746 d = defer.Deferred()
747 self.successWatchers.append(d) 747 self.successWatchers.append(d)
748 return d 748 return d
749 749
750 def waitUntilFinished(self): 750 def waitUntilFinished(self):
751 if self.finished: 751 if self.finished:
(...skipping 359 matching lines...) Expand 10 before | Expand all | Expand 10 after
1111 self.statistics = {} 1111 self.statistics = {}
1112 1112
1113 def asDict(self): 1113 def asDict(self):
1114 result = {} 1114 result = {}
1115 # Constant 1115 # Constant
1116 result['name'] = self.getName() 1116 result['name'] = self.getName()
1117 1117
1118 # Transient 1118 # Transient
1119 result['text'] = self.getText() 1119 result['text'] = self.getText()
1120 result['results'] = self.getResults() 1120 result['results'] = self.getResults()
1121 result['is_started'] = self.isStarted() 1121 result['isStarted'] = self.isStarted()
1122 result['is_finished'] = self.isFinished() 1122 result['isFinished'] = self.isFinished()
1123 result['statistics'] = self.statistics 1123 result['statistics'] = self.statistics
1124 result['times'] = self.getTimes() 1124 result['times'] = self.getTimes()
1125 result['expectations'] = self.getExpectations() 1125 result['expectations'] = self.getExpectations()
1126 result['eta'] = self.getETA() 1126 result['eta'] = self.getETA()
1127 result['urls'] = self.getURLs() 1127 result['urls'] = self.getURLs()
1128 # TODO(maruel): Move that to a sub-url or just publish the log_url 1128 # TODO(maruel): Move that to a sub-url or just publish the log_url
1129 # instead. 1129 # instead.
1130 #result['logs'] = self.getLogs() 1130 #result['logs'] = self.getLogs()
1131 return result 1131 return result
1132 1132
(...skipping 402 matching lines...) Expand 10 before | Expand all | Expand 10 after
1535 os.unlink(filename) 1535 os.unlink(filename)
1536 os.rename(tmpfilename, filename) 1536 os.rename(tmpfilename, filename)
1537 except: 1537 except:
1538 log.msg("unable to save build %s-#%d" % (self.builder.name, 1538 log.msg("unable to save build %s-#%d" % (self.builder.name,
1539 self.number)) 1539 self.number))
1540 log.err() 1540 log.err()
1541 1541
1542 def asDict(self): 1542 def asDict(self):
1543 result = {} 1543 result = {}
1544 # Constant 1544 # Constant
1545 result['builderName'] = self.builder.name
1545 result['number'] = self.getNumber() 1546 result['number'] = self.getNumber()
1546 result['source_stamp'] = self.getSourceStamp().asDict() 1547 result['sourceStamp'] = self.getSourceStamp().asDict()
1547 result['reason'] = self.getReason() 1548 result['reason'] = self.getReason()
1548 result['requests'] = [r.asDict() for r in self.getRequests()] 1549 result['requests'] = [r.asDict() for r in self.getRequests()]
1549 result['blame'] = self.getResponsibleUsers() 1550 result['blame'] = self.getResponsibleUsers()
1550 result['changes'] = [c.asText() for c in self.getChanges()] 1551 result['changes'] = [c.asText() for c in self.getChanges()]
1551 1552
1552 # Transient 1553 # Transient
1553 result['properties'] = self.getProperties().asList() 1554 result['properties'] = self.getProperties().asList()
1554 result['times'] = self.getTimes() 1555 result['times'] = self.getTimes()
1555 result['text'] = self.getText() 1556 result['text'] = self.getText()
1556 result['results'] = self.getResults() 1557 result['results'] = self.getResults()
1557 result['slave'] = self.getSlavename() 1558 result['slave'] = self.getSlavename()
1558 # TODO(maruel): Add. 1559 # TODO(maruel): Add.
1559 #result['test_results'] = self.getTestResults() 1560 #result['test_results'] = self.getTestResults()
1560 # TODO(maruel): Include the url? It's too heavy otherwise. 1561 # TODO(maruel): Include the url? It's too heavy otherwise.
1561 #result['logs'] = self.getLogs() 1562 #result['logs'] = self.getLogs()
1562 result['eta'] = self.getETA() 1563 result['eta'] = self.getETA()
1563 result['steps'] = [bss.asDict() for bss in self.steps] 1564 result['steps'] = [bss.asDict() for bss in self.steps]
1564 if self.getCurrentStep(): 1565 if self.getCurrentStep():
1565 result['current_step'] = self.getCurrentStep().asDict() 1566 result['currentStep'] = self.getCurrentStep().asDict()
1566 else: 1567 else:
1567 result['current_step'] = None 1568 result['currentStep'] = None
1568 return result 1569 return result
1569 1570
1570 1571
1571 1572
1572 class BuilderStatus(styles.Versioned): 1573 class BuilderStatus(styles.Versioned):
1573 """I handle status information for a single process.base.Builder object. 1574 """I handle status information for a single process.base.Builder object.
1574 That object sends status changes to me (frequently as Events), and I 1575 That object sends status changes to me (frequently as Events), and I
1575 provide them on demand to the various status recipients, like the HTML 1576 provide them on demand to the various status recipients, like the HTML
1576 waterfall display and the live status clients. It also sends build 1577 waterfall display and the live status clients. It also sends build
1577 summaries to me, which I log and provide to status clients who aren't 1578 summaries to me, which I log and provide to status clients who aren't
(...skipping 575 matching lines...) Expand 10 before | Expand all | Expand 10 after
2153 result['slaves'] = self.slavenames 2154 result['slaves'] = self.slavenames
2154 #result['url'] = self.parent.getURLForThing(self) 2155 #result['url'] = self.parent.getURLForThing(self)
2155 # TODO(maruel): Add cache settings? Do we care? 2156 # TODO(maruel): Add cache settings? Do we care?
2156 2157
2157 # Transient 2158 # Transient
2158 # Collect build numbers. 2159 # Collect build numbers.
2159 # Important: Only grab the *cached* builds numbers to reduce I/O. 2160 # Important: Only grab the *cached* builds numbers to reduce I/O.
2160 current_builds = [b.getNumber() for b in self.currentBuilds] 2161 current_builds = [b.getNumber() for b in self.currentBuilds]
2161 cached_builds = list(set(self.buildCache.keys() + current_builds)) 2162 cached_builds = list(set(self.buildCache.keys() + current_builds))
2162 cached_builds.sort() 2163 cached_builds.sort()
2163 result['cached_builds'] = cached_builds 2164 result['cachedBuilds'] = cached_builds
2164 result['current_builds'] = current_builds 2165 result['currentBuilds'] = current_builds
2165 result['state'] = self.getState()[0] 2166 result['state'] = self.getState()[0]
2166 # BuildRequestStatus doesn't have a number so display the SourceStamp. 2167 # BuildRequestStatus doesn't have a number so display the SourceStamp.
2167 result['pending_builds'] = [ 2168 result['pendingBuilds'] = [
2168 b.getSourceStamp().asDict() for b in self.getPendingBuilds() 2169 b.getSourceStamp().asDict() for b in self.getPendingBuilds()
2169 ] 2170 ]
2170 return result 2171 return result
2171 2172
2172 2173
2173 class SlaveStatus: 2174 class SlaveStatus:
2174 implements(interfaces.ISlaveStatus) 2175 implements(interfaces.ISlaveStatus)
2175 2176
2176 admin = None 2177 admin = None
2177 host = None 2178 host = None
(...skipping 356 matching lines...) Expand 10 before | Expand all | Expand 10 after
2534 result = {} 2535 result = {}
2535 # Constant 2536 # Constant
2536 result['projectName'] = self.getProjectName() 2537 result['projectName'] = self.getProjectName()
2537 result['projectURL'] = self.getProjectURL() 2538 result['projectURL'] = self.getProjectURL()
2538 result['buildbotURL'] = self.getBuildbotURL() 2539 result['buildbotURL'] = self.getBuildbotURL()
2539 # TODO: self.getSchedulers() 2540 # TODO: self.getSchedulers()
2540 # self.getChangeSources() 2541 # self.getChangeSources()
2541 return result 2542 return result
2542 2543
2543 # vim: set ts=4 sts=4 sw=4 et: 2544 # vim: set ts=4 sts=4 sw=4 et:
OLDNEW
« no previous file with comments | « no previous file | pylibs/buildbot/status/status_push.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698