]> rtime.felk.cvut.cz Git - linux-conf-perf.git/blob - scripts/boot.py
Fix commit ad69a1
[linux-conf-perf.git] / scripts / boot.py
1 import os
2 import sys
3 import subprocess
4 import shutil
5 import importlib
6 import traceback
7
8 import utils
9 import initialize
10 from conf import conf
11 from conf import sf
12 import exceptions
13 import database
14
15 def boot(config, to_database = True):
16         try:
17                 out = utils.callsubprocess('boot', conf.boot_command, conf.boot_output, \
18                                 True, timeout = conf.boot_timeout)
19                 result = 'nominal'
20         except exceptions.ProcessFailed as e:
21                 result = 'failed'
22                 out = e.output
23                 traceback.print_exc()
24         except exceptions.ProcessTimeout as e:
25                 result = 'timeout'
26                 out = e.output
27                 traceback.print_exc()
28
29         value = None
30         try:
31                 res = utils.callsubprocess('parse_command', conf.parse_command,
32                                 conf.parse_output, True, stdin = out)
33                 value = float(res[0])
34         except Exception as e:
35                 print("W: parse exception: " + e.__str__())
36
37         if to_database:
38                         dtb = database.database()
39                         txt = ''
40                         for ln in out:
41                                 for c in ln:
42                                         if not c.encode(sys.getdefaultencoding()) == b'\0':
43                                                 txt += c
44                                 txt += '\n'
45                         dtb.add_measure(txt, result, config.id, value)