def __init__(self, buildername=None, platform=None, build_type=None, job_type=None, starttime=None, endtime=None, detail_level=4): """If platform, build_type or job_type are not specified, they will be parsed out of the buildername. """ Report.__init__(self) self.starttime = starttime self.endtime = endtime self.platform = platform or get_platform(buildername) self.build_type = build_type or get_build_type(buildername) # opt / debug self.job_type = job_type or get_job_type(buildername) # build / unittest / talos self.buildername = buildername self.detail_level = detail_level self.build_requests = [] self._d_min = None self._d_max = 0 self._d_sum = 0 self._total_br_results = { NO_RESULT: 0, SUCCESS: 0, WARNINGS: 0, FAILURE: 0, SKIPPED: 0, EXCEPTION: 0, RETRY: 0, } self._total_br = 0
def GetWaitTimes(pool='buildpool', mpb=15, starttime=None, endtime=None, int_size=0, maxb=0): """Get wait times and statistics for buildpool. Input: pool - name of the pool (e.g. buildpool, or trybuildpool) mpb - minutes per block, length of wait time block in minutes starttime - start time (UNIX timestamp in seconds), if not specified, endtime minus 24 hours endtime - end time (UNIX timestamp in seconds), if not specified, starttime plus 24 hours or current time (if starttime is not specified either) int_size - break down results per interval (in seconds), if specified maxb - maximum block size; for wait times larger than maxb, group into the largest block Output: wait times report """ starttime, endtime = get_time_interval(starttime, endtime) q = WaitTimesQuery(starttime, endtime, pool) q_results = q.execute() report = WaitTimesReport(pool, starttime, endtime, mpb=mpb, maxb=maxb, int_size=int_size, masters=get_masters_for_pool(pool)) for r in q_results: buildername = r['buildername'] # start time is changes.when_timestamp, or buildrequests.submitted_at # if build has no changes stime = r['when_timestamp'] or r['submitted_at'] etime = r['start_time'] platform = get_platform(buildername) has_no_changes = not bool(r['when_timestamp']) wt = WaitTime(stime, etime, platform, buildername=buildername, has_no_changes=has_no_changes) report.add(wt) return report
def __init__(self, author=None, bid=None, branch=None, brid=None, buildername=None, buildsetid=None, category=None, changeid=None, changes_revision=None, claimed_at=None, claimed_by_name=None, comments=None, complete=0, complete_at=None, finish_time=None, number=None, project=None, revlink=None, revision=None, reason=None, repository=None, results=None, submitted_at=None, ssid=None, start_time=None, when_timestamp=None): self.number = number self.brid = brid self.bid = bid # build id self.branch = branch self.branch_name = get_branch_name(branch) self.buildername = buildername self.ssid = ssid self.revision = get_revision(revision) # get at most the first 12 chars self.changes_revision = get_revision(changes_revision) self.changeid = set([changeid]) self.when_timestamp = when_timestamp self.submitted_at = submitted_at self.claimed_at = claimed_at self.start_time = start_time self.complete_at = complete_at self.finish_time = finish_time self.claimed_by_name = claimed_by_name self.complete = complete self.reason = reason self.results = results if results != None else NO_RESULT self.authors = set([author]) self.comments = comments self.revlink = revlink self.category = category self.repository = repository self.project = project self.buildsetid = buildsetid self.status = self._compute_status() self.platform = get_platform(buildername) self.build_type = get_build_type(buildername) # opt / debug self.job_type = get_job_type(buildername) # build / unittest / talos
def __init__(self, buildername=None, platform=None, build_type=None, job_type=None, starttime=None, endtime=None, detail_level=4): """If platform, build_type or job_type are not specified, they will be parsed out of the buildername. """ Report.__init__(self) self.starttime = starttime self.endtime = endtime self.platform = platform or get_platform(buildername) self.build_type = build_type or get_build_type( buildername) # opt / debug self.job_type = job_type or get_job_type( buildername) # build / unittest / talos self.buildername = buildername self.detail_level = detail_level self.build_requests = [] self._d_min = None self._d_max = 0 self._d_sum = 0 self._total_br_results = { NO_RESULT: 0, SUCCESS: 0, WARNINGS: 0, FAILURE: 0, SKIPPED: 0, EXCEPTION: 0, RETRY: 0, } self._total_br = 0
def GetWaitTimes(pool='buildpool', mpb=15, starttime=None, endtime=None, int_size=0, maxb=0): """Get wait times and statistics for buildpool. Input: pool - name of the pool (e.g. buildpool, or trybuildpool) mpb - minutes per block, length of wait time block in minutes starttime - start time (UNIX timestamp in seconds), if not specified, endtime minus 24 hours endtime - end time (UNIX timestamp in seconds), if not specified, starttime plus 24 hours or current time (if starttime is not specified either) int_size - break down results per interval (in seconds), if specified maxb - maximum block size; for wait times larger than maxb, group into the largest block Output: wait times report """ starttime, endtime = get_time_interval(starttime, endtime) q = WaitTimesQuery(starttime, endtime, pool) q_results = q.execute() report = WaitTimesReport(pool, starttime, endtime, mpb=mpb, maxb=maxb, int_size = int_size, masters=get_masters_for_pool(pool)) for r in q_results: buildername = r['buildername'] # start time is changes.when_timestamp, or buildrequests.submitted_at # if build has no changes stime = r['when_timestamp'] or r['submitted_at'] etime = r['start_time'] platform = get_platform(buildername) has_no_changes = not bool(r['when_timestamp']) wt = WaitTime(stime, etime, platform, buildername=buildername, has_no_changes=has_no_changes) report.add(wt) return report
def __init__(self, author=None, bid=None, branch=None, brid=None, buildername=None, buildsetid=None, category=None, changeid=None, changes_revision=None, claimed_at=None, claimed_by_name=None, comments=None, complete=0, complete_at=None, finish_time=None, number=None, project=None, revlink=None, revision=None, reason=None, repository=None, results=None, submitted_at=None, ssid=None, start_time=None, when_timestamp=None): self.number = number self.brid = brid self.bid = bid # build id self.branch = branch self.branch_name = get_branch_name(branch) self.buildername = buildername self.ssid = ssid self.revision = get_revision( revision) # get at most the first 12 chars self.changes_revision = get_revision(changes_revision) self.changeid = set([changeid]) self.when_timestamp = when_timestamp self.submitted_at = submitted_at self.claimed_at = claimed_at self.start_time = start_time self.complete_at = complete_at self.finish_time = finish_time self.claimed_by_name = claimed_by_name self.complete = complete self.reason = reason self.results = results if results != None else NO_RESULT self.authors = set([author]) self.comments = comments self.revlink = revlink self.category = category self.repository = repository self.project = project self.buildsetid = buildsetid self.status = self._compute_status() self.platform = get_platform(buildername) self.build_type = get_build_type(buildername) # opt / debug self.job_type = get_job_type(buildername) # build / unittest / talos