diff options
author | Elliot Smith <elliot.smith@intel.com> | 2016-04-19 17:28:42 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2016-04-19 21:10:58 +0100 |
commit | 6919a2b2e412a9e7b652a6bc191e7c1bed035222 (patch) | |
tree | ef449ed1059340374e0203734660afd095dda524 | |
parent | 9abbb46e799c06757e03addd54e3f5d3c0fe2886 (diff) | |
download | openembedded-core-contrib-6919a2b2e412a9e7b652a6bc191e7c1bed035222.tar.gz |
toaster: prevent exception when Project.release is null
Project.release can be null. This causes an exception when calling
get_all_compatible_layer_versions(), as the query to fetch
the layer versions references release.branch_name.
Add a guard to the function so that an empty queryset is returned
if the release isn't set for a project.
Signed-off-by: Elliot Smith <elliot.smith@intel.com>
Signed-off-by: Michael Wood <michael.g.wood@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r-- | lib/toaster/orm/models.py | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/lib/toaster/orm/models.py b/lib/toaster/orm/models.py index 68c3072991..f0a8786640 100644 --- a/lib/toaster/orm/models.py +++ b/lib/toaster/orm/models.py @@ -264,11 +264,17 @@ class Project(models.Model): def get_all_compatible_layer_versions(self): """ Returns Queryset of all Layer_Versions which are compatible with this project""" - queryset = Layer_Version.objects.filter( - (Q(up_branch__name=self.release.branch_name) & - Q(build=None) & - Q(project=None)) | - Q(project=self)) + queryset = None + + # guard on release, as it can be null + if self.release: + queryset = Layer_Version.objects.filter( + (Q(up_branch__name=self.release.branch_name) & + Q(build=None) & + Q(project=None)) | + Q(project=self)) + else: + queryset = Layer_Version.objects.none() return queryset |