Esempio n. 1
0
def query_revisions_range(repo_name, from_revision, to_revision):
    """Return a list of revisions for that range."""
    return pushlog.query_revisions_range(
        repositories.query_repo_url(repo_name),
        from_revision,
        to_revision,
    )
Esempio n. 2
0
def query_revisions_range(repo_name, from_revision, to_revision):
    """Return a list of revisions for that range."""
    return pushlog.query_revisions_range(
        query_repo_url(repo_name),
        from_revision,
        to_revision,
    )
Esempio n. 3
0
def determine_revlist(repo_url, buildername, rev, back_revisions, delta,
                      from_rev, backfill, skips, max_revisions):
    """Determine which revisions we need to trigger."""
    if back_revisions:
        revlist = query_revisions_range_from_revision_before_and_after(
            repo_url=repo_url, revision=rev, before=back_revisions, after=0)

    elif delta:
        revlist = query_revisions_range_from_revision_before_and_after(
            repo_url=repo_url, revision=rev, before=delta, after=delta)

    elif from_rev:
        revlist = query_revisions_range(repo_url,
                                        to_revision=rev,
                                        from_revision=from_rev)

    elif backfill:
        revlist = find_backfill_revlist(
            buildername=buildername,
            revision=rev,
            max_revisions=max_revisions,
        )

    else:
        revlist = [rev]

    if skips:
        revlist = revlist[::skips]

    return revlist
Esempio n. 4
0
def determine_revlist(repo_url, buildername, rev, back_revisions,
                      delta, from_rev, backfill, skips, max_revisions):
    """Determine which revisions we need to trigger."""
    if back_revisions:
        revlist = query_revisions_range_from_revision_before_and_after(
            repo_url=repo_url,
            revision=rev,
            before=back_revisions,
            after=0)

    elif delta:
        revlist = query_revisions_range_from_revision_before_and_after(
            repo_url=repo_url,
            revision=rev,
            before=delta,
            after=delta)

    elif from_rev:
        revlist = query_revisions_range(
            repo_url,
            to_revision=rev,
            from_revision=from_rev)

    elif backfill:
        revlist = find_backfill_revlist(
            repo_url=repo_url,
            revision=rev,
            max_revisions=max_revisions,
            buildername=buildername)

    else:
        revlist = [rev]

    if skips:
        revlist = revlist[::skips]

    return revlist
Esempio n. 5
0
        push_info = query_revision_info(repo_url, options.rev)
        end_id = int(push_info["pushid"])  # newest revision
        start_id = end_id - options.back_revisions
        revlist = query_pushid_range(repo_url=repo_url,
                                     start_id=start_id,
                                     end_id=end_id)

    elif options.delta:
        revlist = query_revisions_range_from_revision_and_delta(
            repo_url,
            options.rev,
            options.delta)

    elif options.from_rev:
        revlist = query_revisions_range(
            repo_url,
            to_revision=options.rev,
            from_revision=options.from_rev)

    elif options.backfill:
        push_info = query_revision_info(repo_url, options.rev)
        # A known bad revision
        end_id = int(push_info["pushid"])  # newest revision
        # The furthest we will go to find the last good job
        # We might find a good job before that
        start_id = end_id - options.max_revisions + 1
        revlist = query_pushid_range(repo_url=repo_url,
                                     start_id=start_id,
                                     end_id=end_id)

        revlist = backfill_revlist(
            options.buildername,
Esempio n. 6
0
def main():
    options = parse_args()
    validate_options(options)

    if options.debug:
        LOG.setLevel(logging.DEBUG)
        logging.getLogger("requests").setLevel(logging.DEBUG)
        LOG.info("Setting DEBUG level")
    else:
        LOG.setLevel(logging.INFO)
        # requests is too noisy and adds no value
        logging.getLogger("requests").setLevel(logging.WARNING)

    options.buildername = sanitize_buildername(options.buildername)
    repo_url = query_repo_url_from_buildername(options.buildername)

    if options.back_revisions:
        push_info = query_revision_info(repo_url, options.rev)
        end_id = int(push_info["pushid"])  # newest revision
        start_id = end_id - options.back_revisions
        revlist = query_pushid_range(repo_url=repo_url,
                                     start_id=start_id,
                                     end_id=end_id)

    elif options.delta:
        revlist = query_revisions_range_from_revision_and_delta(
            repo_url,
            options.rev,
            options.delta)

    elif options.from_rev:
        revlist = query_revisions_range(
            repo_url,
            to_revision=options.rev,
            from_revision=options.from_rev)

    elif options.backfill:
        push_info = query_revision_info(repo_url, options.rev)
        # A known bad revision
        end_id = int(push_info["pushid"])  # newest revision
        # The furthest we will go to find the last good job
        # We might find a good job before that
        start_id = end_id - options.max_revisions + 1
        revlist = query_pushid_range(repo_url=repo_url,
                                     start_id=start_id,
                                     end_id=end_id)

        revlist = backfill_revlist(
            options.buildername,
            revlist,
            options.times,
            options.dry_run
        )

    else:
        revlist = [options.rev]

    if options.skips:
        revlist = revlist[::options.skips]

    try:
        trigger_range(
            buildername=options.buildername,
            revisions=revlist,
            times=options.times,
            dry_run=options.dry_run,
            files=options.files
        )
    except Exception, e:
        LOG.exception(e)
        exit(1)