summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Barker <paul.barker@commagility.com>2015-10-22 15:21:49 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2015-10-24 12:01:07 +0100
commitfa55b8e5050c6d7a47ef8e9bc213d0cc9471b43a (patch)
treedfc402dd37a7647fc79f6d43903083623b14bc69
parent6b421cd7fee71aa7e01288b8b1ab3bfd348c741d (diff)
downloadpoky-fa55b8e5050c6d7a47ef8e9bc213d0cc9471b43a.tar.gz
bitbake: toaster: buildinfohelper Skip packages we have no build info about
If there are more packages listed as installed than we know about from bitbake, and therefore have insufficient information to be able to create a Toaster Package object then skip it. Also handle the case where a dependency references such a package. Also clarify the error logging. (Bitbake rev: a9e23e0066ea4dc16806ed3d269587ad1c895353) Signed-off-by: Paul Barker <paul.barker@commagility.com> Cc: Michael Wood <michael.g.wood@intel.com> Cc: Elliot Smith <elliot.smith@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--bitbake/lib/bb/ui/buildinfohelper.py40
1 files changed, 28 insertions, 12 deletions
diff --git a/bitbake/lib/bb/ui/buildinfohelper.py b/bitbake/lib/bb/ui/buildinfohelper.py
index 64bd94e5e8..f7e0bfb5c5 100644
--- a/bitbake/lib/bb/ui/buildinfohelper.py
+++ b/bitbake/lib/bb/ui/buildinfohelper.py
@@ -419,6 +419,11 @@ class ORMWrapper(object):
419 errormsg = "" 419 errormsg = ""
420 for p in packagedict: 420 for p in packagedict:
421 searchname = p 421 searchname = p
422 if p not in pkgpnmap:
423 logger.warning("Image packages list contains %p, but is"
424 " missing from all packages list where the"
425 " metadata comes from. Skipping...", p)
426 continue
422 if 'OPKGN' in pkgpnmap[p].keys(): 427 if 'OPKGN' in pkgpnmap[p].keys():
423 searchname = pkgpnmap[p]['OPKGN'] 428 searchname = pkgpnmap[p]['OPKGN']
424 429
@@ -462,13 +467,20 @@ class ORMWrapper(object):
462 elif deptype == 'recommends': 467 elif deptype == 'recommends':
463 tdeptype = Package_Dependency.TYPE_TRECOMMENDS 468 tdeptype = Package_Dependency.TYPE_TRECOMMENDS
464 469
465 packagedeps_objs.append(Package_Dependency( package = packagedict[p]['object'], 470 try:
466 depends_on = packagedict[px]['object'], 471 packagedeps_objs.append(Package_Dependency(
467 dep_type = tdeptype, 472 package = packagedict[p]['object'],
468 target = target_obj)) 473 depends_on = packagedict[px]['object'],
474 dep_type = tdeptype,
475 target = target_obj))
476 except KeyError as e:
477 logger.warn("Could not add dependency to the package %s "
478 "because %s is an unknown package", p, px)
469 479
470 if len(packagedeps_objs) > 0: 480 if len(packagedeps_objs) > 0:
471 Package_Dependency.objects.bulk_create(packagedeps_objs) 481 Package_Dependency.objects.bulk_create(packagedeps_objs)
482 else:
483 logger.info("No package dependencies created")
472 484
473 if (len(errormsg) > 0): 485 if (len(errormsg) > 0):
474 logger.warn("buildinfohelper: target_package_info could not identify recipes: \n%s" % errormsg) 486 logger.warn("buildinfohelper: target_package_info could not identify recipes: \n%s" % errormsg)
@@ -1015,17 +1027,21 @@ class BuildInfoHelper(object):
1015 # for all image targets 1027 # for all image targets
1016 for target in self.internal_state['targets']: 1028 for target in self.internal_state['targets']:
1017 if target.is_image: 1029 if target.is_image:
1030 pkgdata = BuildInfoHelper._get_data_from_event(event)['pkgdata']
1031 imgdata = BuildInfoHelper._get_data_from_event(event)['imgdata'][target.target]
1032 filedata = BuildInfoHelper._get_data_from_event(event)['filedata'][target.target]
1033
1018 try: 1034 try:
1019 pkgdata = BuildInfoHelper._get_data_from_event(event)['pkgdata']
1020 imgdata = BuildInfoHelper._get_data_from_event(event)['imgdata'][target.target]
1021 self.orm_wrapper.save_target_package_information(self.internal_state['build'], target, imgdata, pkgdata, self.internal_state['recipes']) 1035 self.orm_wrapper.save_target_package_information(self.internal_state['build'], target, imgdata, pkgdata, self.internal_state['recipes'])
1022 filedata = BuildInfoHelper._get_data_from_event(event)['filedata'][target.target] 1036 except KeyError as e:
1023 self.orm_wrapper.save_target_file_information(self.internal_state['build'], target, filedata) 1037 logger.warn("KeyError in save_target_package_information"
1024 except KeyError: 1038 "%s ", e)
1025 # we must have not got the data for this image, nothing to save
1026 pass
1027
1028 1039
1040 try:
1041 self.orm_wrapper.save_target_file_information(self.internal_state['build'], target, filedata)
1042 except KeyError as e:
1043 logger.warn("KeyError in save_target_file_information"
1044 "%s ", e)
1029 1045
1030 def store_dependency_information(self, event): 1046 def store_dependency_information(self, event):
1031 assert '_depgraph' in vars(event) 1047 assert '_depgraph' in vars(event)