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)
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;')