예제 #1
0
    def batchlog(self, cursor, entries):
        logdir = os.path.join('/srv/logs', self.ident)
        if not os.path.exists(logdir):
           os.makedirs(logdir)

        logpath = os.path.join(logdir,
                               (str(self.number) +
                                (utils.format_attempt_path(self.attempt) +
                                 '_' + self.workname + '.log')))

        with open(logpath, 'a+') as f:
            sql = ('insert into work_logs(id, number, workname, worker, log, '
                   'timestamp, constraints, attempt) values ')
            values = []
            for timestamp, log in entries:
                values.append('("%s", %s, "%s", "%s", "%s", %s, "%s", %s)'
                              %(self.ident, self.number, self.workname,
                                self.worker, _mysql.escape_string(log),
                                utils.datetime_as_sql(timestamp),
                                self.constraints, self.attempt))
            f.write('%s %s\n' %(timestamp, log.rstrip()))

        sql += ', '.join(values)
        sql += ';'

        cursor.execute(sql)
        cursor.execute('commit;')

        if len(entries) > 1:
            print '%s Pushed %d log lines to server' %(datetime.datetime.now(),
                                                       len(entries))
        self.heartbeat(cursor)
예제 #2
0
    new = 0

    for i in range(FETCH_DAYS):
        try:
            new += fetch_log_day(now)
        except Exception, e:
            print e

        now -= datetime.timedelta(days=1)

    print '%s Added %d new patchsets' %(datetime.datetime.now(), new)

    while perform_git_fetches():
        process_patchsets()
    process_patchsets()

    cursor = utils.get_cursor()
    for ident, number in rechecks:
        for ts in rechecks[(ident, number)]:
            cursor.execute('insert ignore into patchset_rechecks '
                           '(id, number, timestamp) values ("%s", %s, %s);'
                           %(ident, number, utils.datetime_as_sql(ts)))
            if cursor.rowcount:
                delta = datetime.datetime.now() - ts
                if delta.days > 3:
                    print 'Recheck ignored because it is older than three days'
                else:
                    print 'Recheck'
                    workunit.recheck(cursor, ident, number)
            cursor.execute('commit;')