def main(): parser = argparse.ArgumentParser(description='Updates user header metadata from bugzilla') parser.add_argument('-a', action="store_true", default=False) parser.add_argument('-e', action="store", dest='email') parser.add_argument('-m', action="store", dest="starting_epoch", default=None) parser.add_argument('-v', action="store_true", default=False) args = parser.parse_args() pmig = phabdb.phdb(db=config.rtmigrate_db, user=config.rtmigrate_user, passwd=config.rtmigrate_passwd) if args.a: starting_epoch = phabdb.get_user_relations_last_finish(pmig) users, finish_epoch = phabdb.get_verified_users(starting_epoch, config.bz_updatelimit) elif args.email: users = phabdb.get_verified_user(args.email) starting_epoch = 0 finish_epoch = 0 elif args.starting_epoch: users, finish_epoch = phabdb.get_verified_users(args.starting_epoch) starting_epoch = args.starting_epoch else: parser.print_help() sys.exit(1) if not any(users): log("Existing as there are no new verified users") sys.exit() histories = get_user_histories(filter(bool, users)) user_count = len(histories) icounts = [] for u in histories: c = 0 if u['cc']: c += len(u['cc']) if u['author']: c += len(u['author']) if u['assigned']: c += len(u['assigned']) icounts.append(c) issue_count = sum(icounts) log("User Count %s" % (str(user_count))) log("Issue Count %s" % (str(issue_count))) pid = os.getpid() source = util.source_name(sys.argv[0]) phabdb.user_relations_start(pid, source, int(time.time()), ipriority['na'], starting_epoch, user_count, issue_count, pmig) from multiprocessing import Pool pool = Pool(processes=int(config.bz_updatemulti)) _ = pool.map(run_update, histories) complete = len(filter(bool, _)) failed = len(_) - complete phabdb.user_relations_finish(pid, int(time.time()), ipriority['update_success'], finish_epoch, complete, failed, pmig) pmig.close() pm = phabmacros(config.phab_user, config.phab_cert, config.phab_host) vlog(util.update_blog(source, complete, failed, user_count, issue_count, pm)) print '%s completed %s, failed %s' % (sys.argv[0], complete, failed)
def main(): parser = argparse.ArgumentParser(description='Updates user header metadata from bugzilla') parser.add_argument('-a', action="store_true", default=False) parser.add_argument('-e', action="store", dest='email') parser.add_argument('-m', action="store", dest="backlog", default=None) parser.add_argument('-v', action="store_true", default=False) args = parser.parse_args() pmig = phabdb.phdb(db=config.bzmigrate_db, user=config.bzmigrate_user, passwd=config.bzmigrate_passwd) if args.a: backlog = time.time() - config.bz_update_lookback log("Backlog since %d" % (backlog),) users, finish_epoch = phabdb.get_verified_users(backlog, config.bz_updatelimit) elif args.email: users = phabdb.get_verified_user(args.email) backlog = 0 finish_epoch = 0 elif args.backlog: users, finish_epoch = phabdb.get_verified_users(args.backlog) backlog = args.backlog else: parser.print_help() sys.exit(1) if not any(users): log("Existing as there are no new verified users") sys.exit() histories = get_user_histories(filter(bool, users)) user_count = len(histories) icounts = [] for u in histories: c = 0 if u['issues']: c += len(u['issues']) icounts.append(c) issue_count = sum(icounts) log("User Count %s" % (str(user_count))) log("Issue Count %s" % (str(issue_count))) pid = os.getpid() source = util.source_name(sys.argv[0]) phabdb.user_relations_start(pid, source, int(time.time()), ipriority['na'], backlog, user_count, issue_count, pmig) results = [] for h in histories: results.append(run_update(h)) complete = len(filter(bool, results)) failed = len(results) - complete phabdb.user_relations_finish(pid, int(time.time()), ipriority['update_success'], finish_epoch, complete, failed, pmig) pm = phabmacros(config.phab_user, config.phab_cert, config.phab_host) #vlog(util.update_blog(source, complete, failed, user_count, issue_count, pm)) pmig.close() print '%s completed %s, failed %s' % (sys.argv[0], complete, failed)