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, )
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, )
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
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
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,
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)