aboutsummaryrefslogtreecommitdiffstats
path: root/bitbake/lib/toaster/orm/models.py
diff options
context:
space:
mode:
Diffstat (limited to 'bitbake/lib/toaster/orm/models.py')
-rw-r--r--bitbake/lib/toaster/orm/models.py44
1 files changed, 32 insertions, 12 deletions
diff --git a/bitbake/lib/toaster/orm/models.py b/bitbake/lib/toaster/orm/models.py
index caacc2a544..2df6d4910a 100644
--- a/bitbake/lib/toaster/orm/models.py
+++ b/bitbake/lib/toaster/orm/models.py
@@ -592,22 +592,42 @@ class Build(models.Model):
return target_labels
- def get_current_status(self):
- """
- get the status string from the build request if the build
- has one, or the text for the build outcome if it doesn't
- """
+ def get_buildrequest(self):
+ buildrequest = None
+ if hasattr(self, 'buildrequest'):
+ buildrequest = self.buildrequest
+ return buildrequest
+ def is_queued(self):
from bldcontrol.models import BuildRequest
+ buildrequest = self.get_buildrequest()
+ if buildrequest:
+ return buildrequest.state == BuildRequest.REQ_QUEUED
+ else:
+ return False
- build_request = None
- if hasattr(self, 'buildrequest'):
- build_request = self.buildrequest
+ def is_cancelling(self):
+ from bldcontrol.models import BuildRequest
+ buildrequest = self.get_buildrequest()
+ if buildrequest:
+ return self.outcome == Build.IN_PROGRESS and \
+ buildrequest.state == BuildRequest.REQ_CANCELLING
+ else:
+ return False
- if (build_request
- and build_request.state != BuildRequest.REQ_INPROGRESS
- and self.outcome == Build.IN_PROGRESS):
- return self.buildrequest.get_state_display()
+ def get_state(self):
+ """
+ Get the state of the build; one of 'Succeeded', 'Failed', 'In Progress',
+ 'Cancelled' (Build outcomes); or 'Queued', 'Cancelling' (states
+ dependent on the BuildRequest state).
+
+ This works around the fact that we have BuildRequest states as well
+ as Build states, but really we just want to know the state of the build.
+ """
+ if self.is_cancelling():
+ return 'Cancelling';
+ elif self.is_queued():
+ return 'Queued'
else:
return self.get_outcome_text()