Example #1
0
    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
Example #3
0
    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
Example #4
0
    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
Example #5
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