From c7382dbd8bb273062164e7cdb7233b60874c91d3 Mon Sep 17 00:00:00 2001 From: Alexandru DAMIAN Date: Tue, 30 Sep 2014 13:45:51 +0100 Subject: bitbake: toastergui: protect variable value reads We make sure we don't throw an exception when reading non-existent variables from the database, and we return empty data that can be displayed without ill effects. This fixes the Configuration page on empty builds. (Bitbake rev: 5b13eabdec1e8a052d343fd67654d7fe8974224f) Signed-off-by: Alexandru DAMIAN Signed-off-by: Richard Purdie --- bitbake/lib/toaster/toastergui/views.py | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/bitbake/lib/toaster/toastergui/views.py b/bitbake/lib/toaster/toastergui/views.py index 6a13a99bae..66113cfdf3 100755 --- a/bitbake/lib/toaster/toastergui/views.py +++ b/bitbake/lib/toaster/toastergui/views.py @@ -1249,15 +1249,23 @@ def configuration(request, build_id): template = 'configuration.html' variables = Variable.objects.filter(build=build_id) - BB_VERSION=variables.get(variable_name='BB_VERSION').variable_value - BUILD_SYS=variables.get(variable_name='BUILD_SYS').variable_value - NATIVELSBSTRING=variables.get(variable_name='NATIVELSBSTRING').variable_value - TARGET_SYS=variables.get(variable_name='TARGET_SYS').variable_value - MACHINE=variables.get(variable_name='MACHINE').variable_value - DISTRO=variables.get(variable_name='DISTRO').variable_value - DISTRO_VERSION=variables.get(variable_name='DISTRO_VERSION').variable_value - TUNE_FEATURES=variables.get(variable_name='TUNE_FEATURES').variable_value - TARGET_FPU=variables.get(variable_name='TARGET_FPU').variable_value + + def _get_variable_or_empty(variable_name): + from django.core.exceptions import ObjectDoesNotExist + try: + return variables.get(variable_name=variable_name).variable_value + except ObjectDoesNotExist: + return '' + + BB_VERSION=_get_variable_or_empty(variable_name='BB_VERSION') + BUILD_SYS=_get_variable_or_empty(variable_name='BUILD_SYS') + NATIVELSBSTRING=_get_variable_or_empty(variable_name='NATIVELSBSTRING') + TARGET_SYS=_get_variable_or_empty(variable_name='TARGET_SYS') + MACHINE=_get_variable_or_empty(variable_name='MACHINE') + DISTRO=_get_variable_or_empty(variable_name='DISTRO') + DISTRO_VERSION=_get_variable_or_empty(variable_name='DISTRO_VERSION') + TUNE_FEATURES=_get_variable_or_empty(variable_name='TUNE_FEATURES') + TARGET_FPU=_get_variable_or_empty(variable_name='TARGET_FPU') targets = Target.objects.filter(build=build_id) -- cgit v1.2.3-54-g00ecf