Skip to content
This repository has been archived by the owner on May 24, 2018. It is now read-only.

Commit

Permalink
Fix elapsed time calculation
Browse files Browse the repository at this point in the history
  • Loading branch information
Maria Marcano committed Jul 31, 2015
1 parent e646327 commit c69baeb
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 32 deletions.
22 changes: 5 additions & 17 deletions master/buildbot/status/build.py
Expand Up @@ -168,21 +168,8 @@ def getSteps(self):
be complete (asking again later may give you more of them)."""
return self.steps

def getTimes(self, include_raw_build_time=False):
if not include_raw_build_time:
return (self.started, self.finished)
else:
rawBuildTime = self.finished
if rawBuildTime is None:
rawBuildTime = 0

for s in self.steps:
step_type = s.getStepType()
if step_type == AcquireBuildLocksType or step_type == TriggerType:
times = s.getTimes()
if times[0] is not None and times[1] is not None:
rawBuildTime -= (times[1] - times[0])
return self.started, self.finished, rawBuildTime
def getTimes(self):
return (self.started, self.finished)

_sentinel = [] # used as a sentinel to indicate unspecified initial_value
def getSummaryStatistic(self, name, summary_fn, initial_value=_sentinel):
Expand Down Expand Up @@ -349,13 +336,14 @@ def buildFinished(self):
self.finished = util.now()

if self.results == RESUME:
build_data = {'start' : self.started,
build_data = {'start': self.started,
'finished': self.finished,
'startTime': time.ctime(self.started),
'finishedTime': time.ctime(self.finished),
'slavename': self.slavename,
'lastStepName': self.currentStep.name,
'lastStepNumber': self.currentStep.step_number+1,
'elapsed': util.formatInterval(self.finished - self.started),
'resumeSlavepool': self.resumeSlavepool}

self.resume.append(build_data)
Expand Down Expand Up @@ -622,7 +610,7 @@ def asBaseDict(self, request=None, include_current_step=False, include_artifacts
result['artifacts'] = self.get_artifacts()

# Transient
result['times'] = self.getTimes(include_raw_build_time=True)
result['times'] = self.getTimes()
result['text'] = self.getText()
result['results'] = self.getResults()
result['slave'] = self.getSlavename()
Expand Down
7 changes: 3 additions & 4 deletions master/buildbot/status/web/build.py
Expand Up @@ -383,14 +383,13 @@ def content(self, req, cxt):
ps.append(p)


(start, end, raw_end_time) = b.getTimes(include_raw_build_time=True)
(start, end) = b.getTimes()
cxt['start'] = time.ctime(start)
cxt['elapsed'] = None
if end and start:
if end:
cxt['end'] = time.ctime(end)
cxt['elapsed'] = util.formatInterval(end - start)
cxt['raw_elapsed'] = util.formatInterval(raw_end_time - start)
if start:
elif start:
now = util.now()
cxt['elapsed'] = util.formatInterval(now - start)

Expand Down
7 changes: 4 additions & 3 deletions master/buildbot/test/unit/test_status_web_status_json.py
Expand Up @@ -115,6 +115,7 @@ def setUpFakeMasterStatus(fakemaster):

def fakeBuildStatus(master, builder, num):
build_status = BuildStatus(builder.builder_status, master, num)
build_status.started = 1422441500
build_status.finished = 1422441501.21
build_status.reason = 'A build was forced by user@localhost'
build_status.slavename = 'build-slave-01'
Expand Down Expand Up @@ -163,7 +164,7 @@ def test_getBuildJsonResource(self):
'revision': 'abcdef123456789',
'url': u'https://github.com/test/repo/commit/abcdef123456789'}],
'results': 0, 'number': 1, 'currentStep': None,
'times': (None, 1422441501.21, 1422441501.21),
'times': (1422441500, 1422441501.21),
'buildChainID': None, 'owners': None, 'submittedTime': None,
'blame': [],
'builder_url': 'http://localhost:8080/projects/Katana/builders/builder-01' +
Expand Down Expand Up @@ -266,7 +267,7 @@ def expectedDict(num):
'slave_friendly_name': 'build-slave-01', 'slave_url': None,
'sourceStamps': [], 'steps': [], 'buildChainID': None, 'owners': None,
'submittedTime': None,
'text': [], 'times': (None, 1422441501.21, 1422441501.21),
'text': [], 'times': (1422441500, 1422441501.21),
'url': {
'path':
'http://localhost:8080/builders/builder-01/builds/%d?katana-buildbot_branch=katana' % num,
Expand Down Expand Up @@ -393,7 +394,7 @@ def mockFinishedBuildsAsync(branches=[], codebases={},
'reason': 'A build was forced by user@localhost',
'eta': None, 'builderFriendlyName': 'builder-01',
'failure_url': None, 'slave_friendly_name': 'build-slave-01',
'times': (None, 1422441501.21, 1422441501.21)},
'times': (1422441500, 1422441501.21)},
'name': 'builder-01', 'tags': ['tag1', 'tag2'],
'url': 'http://localhost:8080/projects/Katana/builders/builder-01?katana-buildbot_branch=katana',
'description': 'Describing my builder',
Expand Down
18 changes: 10 additions & 8 deletions www/templates/build.html
Expand Up @@ -108,12 +108,6 @@ <h2 class="head-2">
{{ elapsed }}
</td>
</tr>
{% if raw_elapsed %}
<tr>
<td>Timing</td>
<td>{{ raw_elapsed }}</td>
</tr>
{% endif %}
</table>
</div>
<h2 class="head-2">
Expand Down Expand Up @@ -231,10 +225,18 @@ <h2 class="head-2">
<td>
Last Step
</td>
<td >
{{rb.lastStepNumber }} {{ rb.lastStepName }}
<td > {{ rb.lastStepName }}
</td>
</tr>
{% if rb.elapsed %}
<tr>
<td>
Elapsed
</td>
<td> {{ rb.elapsed}}
</td>
</tr>
{% endif %}
</table>
</div>
{% endfor %}
Expand Down

0 comments on commit c69baeb

Please sign in to comment.