diff options
author | Ed Bartosh <ed.bartosh@linux.intel.com> | 2015-12-02 10:02:51 -0800 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2015-12-07 17:37:10 +0000 |
commit | 57e5f24e57caf40007459015bb47801561c779ce (patch) | |
tree | 51512c1728db73ec06612f80cff4ad9ca90b89ea | |
parent | 4c1e5ec29ace325d03a5a1386e384201a00f15cf (diff) | |
download | poky-57e5f24e57caf40007459015bb47801561c779ce.tar.gz |
bitbake: toaster: do not create duplicate HelpText objects
buildinfohelper code expects only one HelpText object per
build/variable/description.
Current code creates more than one such an object, which causes
toastergui to crash with this exception:
MultipleObjectsReturned: get() returned more than one HelpText -- it returned 2!
Used git_or_create API to ensure that only one HelpText object is
created.
(Bitbake rev: e9b46803eb6f1f4044919abf90c8aeb3536e73ed)
Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: brian avery <avery.brian@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r-- | bitbake/lib/bb/ui/buildinfohelper.py | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/bitbake/lib/bb/ui/buildinfohelper.py b/bitbake/lib/bb/ui/buildinfohelper.py index 43c243e827..2b9302d108 100644 --- a/bitbake/lib/bb/ui/buildinfohelper.py +++ b/bitbake/lib/bb/ui/buildinfohelper.py | |||
@@ -700,7 +700,6 @@ class ORMWrapper(object): | |||
700 | def save_build_variables(self, build_obj, vardump): | 700 | def save_build_variables(self, build_obj, vardump): |
701 | assert isinstance(build_obj, Build) | 701 | assert isinstance(build_obj, Build) |
702 | 702 | ||
703 | helptext_objects = [] | ||
704 | for k in vardump: | 703 | for k in vardump: |
705 | desc = vardump[k]['doc'] | 704 | desc = vardump[k]['doc'] |
706 | if desc is None: | 705 | if desc is None: |
@@ -711,10 +710,9 @@ class ORMWrapper(object): | |||
711 | if desc is None: | 710 | if desc is None: |
712 | desc = '' | 711 | desc = '' |
713 | if len(desc): | 712 | if len(desc): |
714 | helptext_objects.append(HelpText(build=build_obj, | 713 | HelpText.objects.get_or_create(build=build_obj, |
715 | area=HelpText.VARIABLE, | 714 | area=HelpText.VARIABLE, |
716 | key=k, | 715 | key=k, text=desc) |
717 | text=desc)) | ||
718 | if not bool(vardump[k]['func']): | 716 | if not bool(vardump[k]['func']): |
719 | value = vardump[k]['v'] | 717 | value = vardump[k]['v'] |
720 | if value is None: | 718 | if value is None: |
@@ -734,8 +732,6 @@ class ORMWrapper(object): | |||
734 | if len(varhist_objects): | 732 | if len(varhist_objects): |
735 | VariableHistory.objects.bulk_create(varhist_objects) | 733 | VariableHistory.objects.bulk_create(varhist_objects) |
736 | 734 | ||
737 | HelpText.objects.bulk_create(helptext_objects) | ||
738 | |||
739 | 735 | ||
740 | class MockEvent(object): | 736 | class MockEvent(object): |
741 | """ This object is used to create event, for which normal event-processing methods can | 737 | """ This object is used to create event, for which normal event-processing methods can |