3 def _dict_factory(cursor, row):
5 for idx,col in enumerate(cursor.description):
10 def __init__(self, filename):
11 self.db = sqlite3.connect(filename)
12 self.db.row_factory = _dict_factory
14 def load_last(self, testname, config):
16 cur = self.db.cursor()
17 cur.execute("SELECT * FROM fio_runs WHERE config = ? AND name = ?ORDER BY time DESC LIMIT 1",
19 d['global'] = cur.fetchone()
20 if d['global'] is None:
22 cur.execute("SELECT * FROM fio_jobs WHERE run_id = ?",
24 d['jobs'] = cur.fetchall()
27 def _insert_obj(self, tablename, obj):
30 cur = self.db.cursor()
31 cmd = "INSERT INTO {} ({}) VALUES ({}".format(tablename,
35 cur.execute(cmd, tuple(values))
39 def insert_result(self, result):
40 row_id = self._insert_obj('fio_runs', result['global'])
41 for job in result['jobs']:
42 job['run_id'] = row_id
43 self._insert_obj('fio_jobs', job)