diff options
Diffstat (limited to 'bitbake/lib/toaster/orm/models.py')
-rw-r--r-- | bitbake/lib/toaster/orm/models.py | 44 |
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): | |||
592 | 592 | ||
593 | return target_labels | 593 | return target_labels |
594 | 594 | ||
595 | def get_current_status(self): | 595 | def get_buildrequest(self): |
596 | """ | 596 | buildrequest = None |
597 | get the status string from the build request if the build | 597 | if hasattr(self, 'buildrequest'): |
598 | has one, or the text for the build outcome if it doesn't | 598 | buildrequest = self.buildrequest |
599 | """ | 599 | return buildrequest |
600 | 600 | ||
601 | def is_queued(self): | ||
601 | from bldcontrol.models import BuildRequest | 602 | from bldcontrol.models import BuildRequest |
603 | buildrequest = self.get_buildrequest() | ||
604 | if buildrequest: | ||
605 | return buildrequest.state == BuildRequest.REQ_QUEUED | ||
606 | else: | ||
607 | return False | ||
602 | 608 | ||
603 | build_request = None | 609 | def is_cancelling(self): |
604 | if hasattr(self, 'buildrequest'): | 610 | from bldcontrol.models import BuildRequest |
605 | build_request = self.buildrequest | 611 | buildrequest = self.get_buildrequest() |
612 | if buildrequest: | ||
613 | return self.outcome == Build.IN_PROGRESS and \ | ||
614 | buildrequest.state == BuildRequest.REQ_CANCELLING | ||
615 | else: | ||
616 | return False | ||
606 | 617 | ||
607 | if (build_request | 618 | def get_state(self): |
608 | and build_request.state != BuildRequest.REQ_INPROGRESS | 619 | """ |
609 | and self.outcome == Build.IN_PROGRESS): | 620 | Get the state of the build; one of 'Succeeded', 'Failed', 'In Progress', |
610 | return self.buildrequest.get_state_display() | 621 | 'Cancelled' (Build outcomes); or 'Queued', 'Cancelling' (states |
622 | dependent on the BuildRequest state). | ||
623 | |||
624 | This works around the fact that we have BuildRequest states as well | ||
625 | as Build states, but really we just want to know the state of the build. | ||
626 | """ | ||
627 | if self.is_cancelling(): | ||
628 | return 'Cancelling'; | ||
629 | elif self.is_queued(): | ||
630 | return 'Queued' | ||
611 | else: | 631 | else: |
612 | return self.get_outcome_text() | 632 | return self.get_outcome_text() |
613 | 633 | ||