summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb/ui/buildinfohelper.py
diff options
context:
space:
mode:
authorAlexandru DAMIAN <alexandru.damian@intel.com>2015-08-18 17:28:58 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2015-08-19 18:05:55 +0100
commit25d4a35b034820c536599e88dc057a5a04517b2a (patch)
tree6b1174c13026307e728eff971a76940747ccab1c /bitbake/lib/bb/ui/buildinfohelper.py
parentc9455a7484fa5ead1a90e40b78512867b4285020 (diff)
downloadpoky-25d4a35b034820c536599e88dc057a5a04517b2a.tar.gz
bitbake: toaster logger: fix pylint issues
This patch fixes pylint issues in the toaster build data logger, toasterui. The following types of warnings are touched here: * fixing imports * unused variables are set to _ * logger calls now use lazy evaluation instead of formatting the string * correct whitespace identation * removes unneeded "pass" statements, and extra parantheses * disable specific pylint warnings when decideing to override them (Bitbake rev: 947d47f15048baa967f88e03d80014e88ce152aa) Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com> Signed-off-by: Michael Wood <michael.g.wood@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib/bb/ui/buildinfohelper.py')
-rw-r--r--bitbake/lib/bb/ui/buildinfohelper.py130
1 files changed, 71 insertions, 59 deletions
diff --git a/bitbake/lib/bb/ui/buildinfohelper.py b/bitbake/lib/bb/ui/buildinfohelper.py
index cce6da5fad..09e8853338 100644
--- a/bitbake/lib/bb/ui/buildinfohelper.py
+++ b/bitbake/lib/bb/ui/buildinfohelper.py
@@ -19,12 +19,20 @@
19import sys 19import sys
20import bb 20import bb
21import re 21import re
22import ast 22import os
23 23
24os.environ["DJANGO_SETTINGS_MODULE"] = "toaster.toastermain.settings" 24os.environ["DJANGO_SETTINGS_MODULE"] = "toaster.toastermain.settings"
25 25
26
26from django.utils import timezone 27from django.utils import timezone
27import toaster.toastermain.settings as toaster_django_settings 28
29
30def _configure_toaster():
31 """ Add toaster to sys path for importing modules
32 """
33 sys.path.append(os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(__file__))), 'toaster'))
34_configure_toaster()
35
28from toaster.orm.models import Build, Task, Recipe, Layer_Version, Layer, Target, LogMessage, HelpText 36from toaster.orm.models import Build, Task, Recipe, Layer_Version, Layer, Target, LogMessage, HelpText
29from toaster.orm.models import Target_Image_File, BuildArtifact 37from toaster.orm.models import Target_Image_File, BuildArtifact
30from toaster.orm.models import Variable, VariableHistory 38from toaster.orm.models import Variable, VariableHistory
@@ -33,14 +41,17 @@ from toaster.orm.models import Task_Dependency, Package_Dependency
33from toaster.orm.models import Recipe_Dependency 41from toaster.orm.models import Recipe_Dependency
34 42
35from toaster.orm.models import Project 43from toaster.orm.models import Project
44from bldcontrol.models import BuildEnvironment, BuildRequest
36 45
37from bb.msg import BBLogFormatter as format 46from bb.msg import BBLogFormatter as formatter
38from django.db import models 47from django.db import models
39from pprint import pformat 48from pprint import pformat
40import logging 49import logging
41 50
42from django.db import transaction, connection 51from django.db import transaction, connection
43 52
53# pylint: disable=invalid-name
54# the logger name is standard throughout BitBake
44logger = logging.getLogger("ToasterLogger") 55logger = logging.getLogger("ToasterLogger")
45 56
46 57
@@ -57,7 +68,6 @@ class ORMWrapper(object):
57 self.layer_version_objects = [] 68 self.layer_version_objects = []
58 self.task_objects = {} 69 self.task_objects = {}
59 self.recipe_objects = {} 70 self.recipe_objects = {}
60 pass
61 71
62 @staticmethod 72 @staticmethod
63 def _build_key(**kwargs): 73 def _build_key(**kwargs):
@@ -106,6 +116,13 @@ class ORMWrapper(object):
106 116
107 return vars(self)[dictname][key] 117 return vars(self)[dictname][key]
108 118
119 # pylint: disable=no-self-use
120 # we disable detection of no self use in functions because the methods actually work on the object
121 # even if they don't touch self anywhere
122
123 # pylint: disable=bad-continuation
124 # we do not follow the python conventions for continuation indentation due to long lines here
125
109 def create_build_object(self, build_info, brbe, project_id): 126 def create_build_object(self, build_info, brbe, project_id):
110 assert 'machine' in build_info 127 assert 'machine' in build_info
111 assert 'distro' in build_info 128 assert 'distro' in build_info
@@ -119,8 +136,7 @@ class ORMWrapper(object):
119 buildrequest = None 136 buildrequest = None
120 if brbe is not None: # this build was triggered by a request from a user 137 if brbe is not None: # this build was triggered by a request from a user
121 logger.debug(1, "buildinfohelper: brbe is %s" % brbe) 138 logger.debug(1, "buildinfohelper: brbe is %s" % brbe)
122 from bldcontrol.models import BuildEnvironment, BuildRequest 139 br, _ = brbe.split(":")
123 br, be = brbe.split(":")
124 buildrequest = BuildRequest.objects.get(pk = br) 140 buildrequest = BuildRequest.objects.get(pk = br)
125 prj = buildrequest.project 141 prj = buildrequest.project
126 142
@@ -129,18 +145,16 @@ class ORMWrapper(object):
129 prj = Project.objects.get(pk = project_id) 145 prj = Project.objects.get(pk = project_id)
130 146
131 else: # this build was triggered by a legacy system, or command line interactive mode 147 else: # this build was triggered by a legacy system, or command line interactive mode
132 prj, created = Project.objects.get_or_create(pk=0, name="Default Project") 148 prj, _ = Project.objects.get_or_create(pk=0, name="Default Project")
133 logger.debug(1, "buildinfohelper: project is not specified, defaulting to %s" % prj) 149 logger.debug(1, "buildinfohelper: project is not specified, defaulting to %s" % prj)
134 150
135 151
136 if buildrequest is not None: 152 if buildrequest is not None:
137 build = buildrequest.build 153 build = buildrequest.build
138 logger.info("Updating existing build, with %s" % build_info) 154 logger.info("Updating existing build, with %s", build_info)
139 build.machine=build_info['machine'] 155 build.machine=build_info['machine']
140 build.distro=build_info['distro'] 156 build.distro=build_info['distro']
141 build.distro_version=build_info['distro_version'] 157 build.distro_version=build_info['distro_version']
142 started_on=build_info['started_on']
143 completed_on=build_info['started_on']
144 build.cooker_log_path=build_info['cooker_log_path'] 158 build.cooker_log_path=build_info['cooker_log_path']
145 build.build_name=build_info['build_name'] 159 build.build_name=build_info['build_name']
146 build.bitbake_version=build_info['bitbake_version'] 160 build.bitbake_version=build_info['bitbake_version']
@@ -210,8 +224,8 @@ class ORMWrapper(object):
210 task_name=task_information['task_name'] 224 task_name=task_information['task_name']
211 ) 225 )
212 if created and must_exist: 226 if created and must_exist:
213 task_information['debug'] = "build id %d, recipe id %d" % (task_information['build'].pk, task_information['recipe'].pk) 227 task_information['debug'] = "build id %d, recipe id %d" % (task_information['build'].pk, task_information['recipe'].pk)
214 raise NotExisting("Task object created when expected to exist", task_information) 228 raise NotExisting("Task object created when expected to exist", task_information)
215 229
216 object_changed = False 230 object_changed = False
217 for v in vars(task_object): 231 for v in vars(task_object):
@@ -278,7 +292,7 @@ class ORMWrapper(object):
278 assert 'priority' in layer_version_information 292 assert 'priority' in layer_version_information
279 assert 'local_path' in layer_version_information 293 assert 'local_path' in layer_version_information
280 294
281 layer_version_object, created = Layer_Version.objects.get_or_create( 295 layer_version_object, _ = Layer_Version.objects.get_or_create(
282 build = build_obj, 296 build = build_obj,
283 layer = layer_obj, 297 layer = layer_obj,
284 branch = layer_version_information['branch'], 298 branch = layer_version_information['branch'],
@@ -296,13 +310,12 @@ class ORMWrapper(object):
296 assert 'layer_index_url' in layer_information 310 assert 'layer_index_url' in layer_information
297 311
298 if brbe is None: 312 if brbe is None:
299 layer_object, created = Layer.objects.get_or_create( 313 layer_object, _ = Layer.objects.get_or_create(
300 name=layer_information['name'], 314 name=layer_information['name'],
301 layer_index_url=layer_information['layer_index_url']) 315 layer_index_url=layer_information['layer_index_url'])
302 return layer_object 316 return layer_object
303 else: 317 else:
304 # we are under managed mode; we must match the layer used in the Project Layer 318 # we are under managed mode; we must match the layer used in the Project Layer
305 from bldcontrol.models import BuildEnvironment, BuildRequest
306 br_id, be_id = brbe.split(":") 319 br_id, be_id = brbe.split(":")
307 320
308 # find layer by checkout path; 321 # find layer by checkout path;
@@ -422,7 +435,7 @@ class ORMWrapper(object):
422 435
423 try: 436 try:
424 filetarget_obj = Target_File.objects.get(target = target_obj, path = filetarget_path) 437 filetarget_obj = Target_File.objects.get(target = target_obj, path = filetarget_path)
425 except Exception as e: 438 except Target_File.DoesNotExist:
426 # we might have an invalid link; no way to detect this. just set it to None 439 # we might have an invalid link; no way to detect this. just set it to None
427 filetarget_obj = None 440 filetarget_obj = None
428 441
@@ -498,11 +511,11 @@ class ORMWrapper(object):
498 if len(packagedeps_objs) > 0: 511 if len(packagedeps_objs) > 0:
499 Package_Dependency.objects.bulk_create(packagedeps_objs) 512 Package_Dependency.objects.bulk_create(packagedeps_objs)
500 513
501 if (len(errormsg) > 0): 514 if len(errormsg) > 0:
502 logger.warn("buildinfohelper: target_package_info could not identify recipes: \n%s" % errormsg) 515 logger.warn("buildinfohelper: target_package_info could not identify recipes: \n%s", errormsg)
503 516
504 def save_target_image_file_information(self, target_obj, file_name, file_size): 517 def save_target_image_file_information(self, target_obj, file_name, file_size):
505 target_image_file = Target_Image_File.objects.create( target = target_obj, 518 Target_Image_File.objects.create( target = target_obj,
506 file_name = file_name, 519 file_name = file_name,
507 file_size = file_size) 520 file_size = file_size)
508 521
@@ -542,7 +555,7 @@ class ORMWrapper(object):
542 if 'OPKGN' in package_info.keys(): 555 if 'OPKGN' in package_info.keys():
543 pname = package_info['OPKGN'] 556 pname = package_info['OPKGN']
544 557
545 bp_object, created = Package.objects.get_or_create( build = build_obj, 558 bp_object, _ = Package.objects.get_or_create( build = build_obj,
546 name = pname ) 559 name = pname )
547 560
548 bp_object.installed_name = package_info['PKG'] 561 bp_object.installed_name = package_info['PKG']
@@ -559,7 +572,7 @@ class ORMWrapper(object):
559 # save any attached file information 572 # save any attached file information
560 packagefile_objects = [] 573 packagefile_objects = []
561 for path in package_info['FILES_INFO']: 574 for path in package_info['FILES_INFO']:
562 packagefile_objects.append(Package_File( package = bp_object, 575 packagefile_objects.append(Package_File( package = bp_object,
563 path = path, 576 path = path,
564 size = package_info['FILES_INFO'][path] )) 577 size = package_info['FILES_INFO'][path] ))
565 if len(packagefile_objects): 578 if len(packagefile_objects):
@@ -643,7 +656,19 @@ class ORMWrapper(object):
643 656
644 HelpText.objects.bulk_create(helptext_objects) 657 HelpText.objects.bulk_create(helptext_objects)
645 658
646class MockEvent: pass # sometimes we mock an event, declare it here 659
660class MockEvent(object):
661 """ This object is used to create event, for which normal event-processing methods can
662 be used, out of data that is not coming via an actual event
663 """
664 def __init__(self):
665 self.msg = None
666 self.levelno = None
667 self.taskname = None
668 self.taskhash = None
669 self.pathname = None
670 self.lineno = None
671
647 672
648class BuildInfoHelper(object): 673class BuildInfoHelper(object):
649 """ This class gathers the build information from the server and sends it 674 """ This class gathers the build information from the server and sends it
@@ -652,9 +677,12 @@ class BuildInfoHelper(object):
652 Keeps in memory all data that needs matching before writing it to the database 677 Keeps in memory all data that needs matching before writing it to the database
653 """ 678 """
654 679
680 # pylint: disable=protected-access
681 # the code will look into the protected variables of the event; no easy way around this
682 # pylint: disable=bad-continuation
683 # we do not follow the python conventions for continuation indentation due to long lines here
655 684
656 def __init__(self, server, has_build_history = False): 685 def __init__(self, server, has_build_history = False):
657 self._configure_django()
658 self.internal_state = {} 686 self.internal_state = {}
659 self.internal_state['taskdata'] = {} 687 self.internal_state['taskdata'] = {}
660 self.task_order = 0 688 self.task_order = 0
@@ -671,10 +699,6 @@ class BuildInfoHelper(object):
671 logger.debug(1, "buildinfohelper: Build info helper inited %s" % vars(self)) 699 logger.debug(1, "buildinfohelper: Build info helper inited %s" % vars(self))
672 700
673 701
674 def _configure_django(self):
675 # Add toaster to sys path for importing modules
676 sys.path.append(os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(__file__))), 'toaster'))
677
678 ################### 702 ###################
679 ## methods to convert event/external info into objects that the ORM layer uses 703 ## methods to convert event/external info into objects that the ORM layer uses
680 704
@@ -727,7 +751,6 @@ class BuildInfoHelper(object):
727 else: 751 else:
728 br_id, be_id = self.brbe.split(":") 752 br_id, be_id = self.brbe.split(":")
729 from bldcontrol.bbcontroller import getBuildEnvironmentController 753 from bldcontrol.bbcontroller import getBuildEnvironmentController
730 from bldcontrol.models import BuildRequest
731 bc = getBuildEnvironmentController(pk = be_id) 754 bc = getBuildEnvironmentController(pk = be_id)
732 755
733 def _slkey_managed(layer_version): 756 def _slkey_managed(layer_version):
@@ -747,11 +770,11 @@ class BuildInfoHelper(object):
747 return lvo 770 return lvo
748 771
749 #if we get here, we didn't read layers correctly; dump whatever information we have on the error log 772 #if we get here, we didn't read layers correctly; dump whatever information we have on the error log
750 logger.warn("Could not match layer version for recipe path %s : %s" % (path, self.orm_wrapper.layer_version_objects)) 773 logger.warn("Could not match layer version for recipe path %s : %s", path, self.orm_wrapper.layer_version_objects)
751 774
752 #mockup the new layer 775 #mockup the new layer
753 unknown_layer, created = Layer.objects.get_or_create(name="__FIXME__unidentified_layer", layer_index_url="") 776 unknown_layer, _ = Layer.objects.get_or_create(name="__FIXME__unidentified_layer", layer_index_url="")
754 unknown_layer_version_obj, created = Layer_Version.objects.get_or_create(layer = unknown_layer, build = self.internal_state['build']) 777 unknown_layer_version_obj, _ = Layer_Version.objects.get_or_create(layer = unknown_layer, build = self.internal_state['build'])
755 778
756 # append it so we don't run into this error again and again 779 # append it so we don't run into this error again and again
757 self.orm_wrapper.layer_version_objects.append(unknown_layer_version_obj) 780 self.orm_wrapper.layer_version_objects.append(unknown_layer_version_obj)
@@ -798,13 +821,6 @@ class BuildInfoHelper(object):
798 821
799 return build_stats_path 822 return build_stats_path
800 823
801 def _remove_redundant(self, string):
802 ret = []
803 for i in string.split():
804 if i not in ret:
805 ret.append(i)
806 return " ".join(sorted(ret))
807
808 824
809 ################################ 825 ################################
810 ## external available methods to store information 826 ## external available methods to store information
@@ -827,7 +843,7 @@ class BuildInfoHelper(object):
827 self.internal_state['lvs'][self.orm_wrapper.get_update_layer_object(layerinfos[layer], self.brbe)] = layerinfos[layer]['version'] 843 self.internal_state['lvs'][self.orm_wrapper.get_update_layer_object(layerinfos[layer], self.brbe)] = layerinfos[layer]['version']
828 self.internal_state['lvs'][self.orm_wrapper.get_update_layer_object(layerinfos[layer], self.brbe)]['local_path'] = layerinfos[layer]['local_path'] 844 self.internal_state['lvs'][self.orm_wrapper.get_update_layer_object(layerinfos[layer], self.brbe)]['local_path'] = layerinfos[layer]['local_path']
829 except NotExisting as nee: 845 except NotExisting as nee:
830 logger.warn("buildinfohelper: cannot identify layer exception:%s " % nee) 846 logger.warn("buildinfohelper: cannot identify layer exception:%s ", nee)
831 847
832 848
833 def store_started_build(self, event): 849 def store_started_build(self, event):
@@ -861,8 +877,7 @@ class BuildInfoHelper(object):
861 path_prefixes = [] 877 path_prefixes = []
862 878
863 if self.brbe is not None: 879 if self.brbe is not None:
864 br_id, be_id = self.brbe.split(":") 880 _, be_id = self.brbe.split(":")
865 from bldcontrol.models import BuildEnvironment, BuildRequest
866 be = BuildEnvironment.objects.get(pk = be_id) 881 be = BuildEnvironment.objects.get(pk = be_id)
867 path_prefixes.append(be.builddir) 882 path_prefixes.append(be.builddir)
868 883
@@ -887,7 +902,6 @@ class BuildInfoHelper(object):
887 902
888 903
889 def update_target_image_file(self, event): 904 def update_target_image_file(self, event):
890 image_fstypes = self.server.runCommand(["getVariable", "IMAGE_FSTYPES"])[0]
891 evdata = BuildInfoHelper._get_data_from_event(event) 905 evdata = BuildInfoHelper._get_data_from_event(event)
892 906
893 for t in self.internal_state['targets']: 907 for t in self.internal_state['targets']:
@@ -949,7 +963,7 @@ class BuildInfoHelper(object):
949 self.task_order += 1 963 self.task_order += 1
950 task_information['order'] = self.task_order 964 task_information['order'] = self.task_order
951 965
952 task_obj = self.orm_wrapper.get_update_task_object(task_information) 966 self.orm_wrapper.get_update_task_object(task_information)
953 967
954 self.internal_state['taskdata'][identifier] = { 968 self.internal_state['taskdata'][identifier] = {
955 'outcome': task_information['outcome'], 969 'outcome': task_information['outcome'],
@@ -970,7 +984,7 @@ class BuildInfoHelper(object):
970 file_path__endswith = recipe_information['file_path'], 984 file_path__endswith = recipe_information['file_path'],
971 name = recipename) 985 name = recipename)
972 except Recipe.DoesNotExist: 986 except Recipe.DoesNotExist:
973 logger.error("Could not find recipe for recipe_information %s name %s" % (pformat(recipe_information), recipename)) 987 logger.error("Could not find recipe for recipe_information %s name %s" , pformat(recipe_information), recipename)
974 raise 988 raise
975 989
976 task_information = {} 990 task_information = {}
@@ -981,7 +995,7 @@ class BuildInfoHelper(object):
981 task_information['disk_io'] = taskstats['disk_io'] 995 task_information['disk_io'] = taskstats['disk_io']
982 if 'elapsed_time' in taskstats: 996 if 'elapsed_time' in taskstats:
983 task_information['elapsed_time'] = taskstats['elapsed_time'] 997 task_information['elapsed_time'] = taskstats['elapsed_time']
984 task_obj = self.orm_wrapper.get_update_task_object(task_information, True) # must exist 998 self.orm_wrapper.get_update_task_object(task_information, True) # must exist
985 999
986 def update_and_store_task(self, event): 1000 def update_and_store_task(self, event):
987 assert 'taskfile' in vars(event) 1001 assert 'taskfile' in vars(event)
@@ -1047,7 +1061,7 @@ class BuildInfoHelper(object):
1047 def store_missed_state_tasks(self, event): 1061 def store_missed_state_tasks(self, event):
1048 for (fn, taskname, taskhash, sstatefile) in BuildInfoHelper._get_data_from_event(event)['missed']: 1062 for (fn, taskname, taskhash, sstatefile) in BuildInfoHelper._get_data_from_event(event)['missed']:
1049 1063
1050 identifier = fn + taskname + "_setscene" 1064 # identifier = fn + taskname + "_setscene"
1051 recipe_information = self._get_recipe_information_from_taskfile(fn) 1065 recipe_information = self._get_recipe_information_from_taskfile(fn)
1052 recipe = self.orm_wrapper.get_update_recipe_object(recipe_information) 1066 recipe = self.orm_wrapper.get_update_recipe_object(recipe_information)
1053 mevent = MockEvent() 1067 mevent = MockEvent()
@@ -1065,7 +1079,7 @@ class BuildInfoHelper(object):
1065 1079
1066 for (fn, taskname, taskhash, sstatefile) in BuildInfoHelper._get_data_from_event(event)['found']: 1080 for (fn, taskname, taskhash, sstatefile) in BuildInfoHelper._get_data_from_event(event)['found']:
1067 1081
1068 identifier = fn + taskname + "_setscene" 1082 # identifier = fn + taskname + "_setscene"
1069 recipe_information = self._get_recipe_information_from_taskfile(fn) 1083 recipe_information = self._get_recipe_information_from_taskfile(fn)
1070 recipe = self.orm_wrapper.get_update_recipe_object(recipe_information) 1084 recipe = self.orm_wrapper.get_update_recipe_object(recipe_information)
1071 mevent = MockEvent() 1085 mevent = MockEvent()
@@ -1105,7 +1119,7 @@ class BuildInfoHelper(object):
1105 # save layer version priorities 1119 # save layer version priorities
1106 if 'layer-priorities' in event._depgraph.keys(): 1120 if 'layer-priorities' in event._depgraph.keys():
1107 for lv in event._depgraph['layer-priorities']: 1121 for lv in event._depgraph['layer-priorities']:
1108 (name, path, regexp, priority) = lv 1122 (_, path, _, priority) = lv
1109 layer_version_obj = self._get_layer_version_for_path(path[1:]) # paths start with a ^ 1123 layer_version_obj = self._get_layer_version_for_path(path[1:]) # paths start with a ^
1110 assert layer_version_obj is not None 1124 assert layer_version_obj is not None
1111 layer_version_obj.priority = priority 1125 layer_version_obj.priority = priority
@@ -1218,8 +1232,8 @@ class BuildInfoHelper(object):
1218 taskdeps_objects.append(Task_Dependency( task = target, depends_on = dep )) 1232 taskdeps_objects.append(Task_Dependency( task = target, depends_on = dep ))
1219 Task_Dependency.objects.bulk_create(taskdeps_objects) 1233 Task_Dependency.objects.bulk_create(taskdeps_objects)
1220 1234
1221 if (len(errormsg) > 0): 1235 if len(errormsg) > 0:
1222 logger.warn("buildinfohelper: dependency info not identify recipes: \n%s" % errormsg) 1236 logger.warn("buildinfohelper: dependency info not identify recipes: \n%s", errormsg)
1223 1237
1224 1238
1225 def store_build_package_information(self, event): 1239 def store_build_package_information(self, event):
@@ -1232,7 +1246,6 @@ class BuildInfoHelper(object):
1232 def _store_build_done(self, errorcode): 1246 def _store_build_done(self, errorcode):
1233 logger.info("Build exited with errorcode %d", errorcode) 1247 logger.info("Build exited with errorcode %d", errorcode)
1234 br_id, be_id = self.brbe.split(":") 1248 br_id, be_id = self.brbe.split(":")
1235 from bldcontrol.models import BuildEnvironment, BuildRequest
1236 be = BuildEnvironment.objects.get(pk = be_id) 1249 be = BuildEnvironment.objects.get(pk = be_id)
1237 be.lock = BuildEnvironment.LOCK_LOCK 1250 be.lock = BuildEnvironment.LOCK_LOCK
1238 be.save() 1251 be.save()
@@ -1247,7 +1260,7 @@ class BuildInfoHelper(object):
1247 1260
1248 def store_log_error(self, text): 1261 def store_log_error(self, text):
1249 mockevent = MockEvent() 1262 mockevent = MockEvent()
1250 mockevent.levelno = format.ERROR 1263 mockevent.levelno = formatter.ERROR
1251 mockevent.msg = text 1264 mockevent.msg = text
1252 mockevent.pathname = '-- None' 1265 mockevent.pathname = '-- None'
1253 mockevent.lineno = LogMessage.ERROR 1266 mockevent.lineno = LogMessage.ERROR
@@ -1263,7 +1276,7 @@ class BuildInfoHelper(object):
1263 1276
1264 1277
1265 def store_log_event(self, event): 1278 def store_log_event(self, event):
1266 if event.levelno < format.WARNING: 1279 if event.levelno < formatter.WARNING:
1267 return 1280 return
1268 1281
1269 if 'args' in vars(event): 1282 if 'args' in vars(event):
@@ -1276,8 +1289,7 @@ class BuildInfoHelper(object):
1276 self.internal_state['backlog'].append(event) 1289 self.internal_state['backlog'].append(event)
1277 return 1290 return
1278 else: # we're under Toaster control, the build is already created 1291 else: # we're under Toaster control, the build is already created
1279 from bldcontrol.models import BuildRequest, BRError 1292 br, _ = self.brbe.split(":")
1280 br, be = self.brbe.split(":")
1281 buildrequest = BuildRequest.objects.get(pk = br) 1293 buildrequest = BuildRequest.objects.get(pk = br)
1282 self.internal_state['build'] = buildrequest.build 1294 self.internal_state['build'] = buildrequest.build
1283 1295
@@ -1293,9 +1305,9 @@ class BuildInfoHelper(object):
1293 1305
1294 log_information = {} 1306 log_information = {}
1295 log_information['build'] = self.internal_state['build'] 1307 log_information['build'] = self.internal_state['build']
1296 if event.levelno == format.ERROR: 1308 if event.levelno == formatter.ERROR:
1297 log_information['level'] = LogMessage.ERROR 1309 log_information['level'] = LogMessage.ERROR
1298 elif event.levelno == format.WARNING: 1310 elif event.levelno == formatter.WARNING:
1299 log_information['level'] = LogMessage.WARNING 1311 log_information['level'] = LogMessage.WARNING
1300 elif event.levelno == -2: # toaster self-logging 1312 elif event.levelno == -2: # toaster self-logging
1301 log_information['level'] = -2 1313 log_information['level'] = -2
@@ -1305,7 +1317,7 @@ class BuildInfoHelper(object):
1305 log_information['message'] = event.msg 1317 log_information['message'] = event.msg
1306 log_information['pathname'] = event.pathname 1318 log_information['pathname'] = event.pathname
1307 log_information['lineno'] = event.lineno 1319 log_information['lineno'] = event.lineno
1308 logger.info("Logging error 2: %s" % log_information) 1320 logger.info("Logging error 2: %s", log_information)
1309 self.orm_wrapper.create_logmessage(log_information) 1321 self.orm_wrapper.create_logmessage(log_information)
1310 1322
1311 def close(self, errorcode): 1323 def close(self, errorcode):
@@ -1320,7 +1332,7 @@ class BuildInfoHelper(object):
1320 else: 1332 else:
1321 # we have no build, and we still have events; something amazingly wrong happend 1333 # we have no build, and we still have events; something amazingly wrong happend
1322 for event in self.internal_state['backlog']: 1334 for event in self.internal_state['backlog']:
1323 logger.error("UNSAVED log: %s", event.msg) 1335 logger.error("UNSAVED log: %s", event.msg)
1324 1336
1325 if not connection.features.autocommits_when_autocommit_is_off: 1337 if not connection.features.autocommits_when_autocommit_is_off:
1326 transaction.set_autocommit(True) 1338 transaction.set_autocommit(True)