|
2 | 2 | # License, v. 2.0. If a copy of the MPL was not distributed with this
|
3 | 3 | # file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
4 | 4 |
|
| 5 | +from landoapi.models.revisions import Revision, RevisionStatus as RS |
| 6 | +from landoapi.models.landing_job import LandingJob, LandingJobStatus as LJS |
| 7 | + |
5 | 8 |
|
6 | 9 | def get():
|
7 | 10 | """Return a redirect repsonse to the swagger specification."""
|
8 | 11 | return None, 302, {"Location": "/swagger.json"}
|
| 12 | + |
| 13 | + |
| 14 | +def get_stats(): |
| 15 | + """Return some useful statistics about the Lando system.""" |
| 16 | + data = {} |
| 17 | + data["landing_jobs"] = { |
| 18 | + "SUBMITTED": LandingJob.query.filter( |
| 19 | + LandingJob.status == LJS.SUBMITTED |
| 20 | + ).count(), |
| 21 | + "DEFERRED": LandingJob.query.filter(LandingJob.status == LJS.DEFERRED).count(), |
| 22 | + "FAILED": LandingJob.query.filter(LandingJob.status == LJS.FAILED).count(), |
| 23 | + "CANCELLED": LandingJob.query.filter( |
| 24 | + LandingJob.status == LJS.CANCELLED |
| 25 | + ).count(), |
| 26 | + "IN_PROGRESS": LandingJob.query.filter( |
| 27 | + LandingJob.status == LJS.IN_PROGRESS |
| 28 | + ).count(), |
| 29 | + "LANDED": LandingJob.query.filter(LandingJob.status == LJS.LANDED).count(), |
| 30 | + } |
| 31 | + |
| 32 | + data["revisions"] = { |
| 33 | + "NEW": Revision.query.filter(Revision.status == RS.NEW).count(), |
| 34 | + "STALE": Revision.query.filter(Revision.status == RS.STALE).count(), |
| 35 | + "PICKED_UP": Revision.query.filter(Revision.status == RS.PICKED_UP).count(), |
| 36 | + "READY_FOR_PREPROCESSING": Revision.query.filter( |
| 37 | + Revision.status == RS.READY_FOR_PREPROCESSING |
| 38 | + ).count(), |
| 39 | + "PREPROCESSING": Revision.query.filter( |
| 40 | + Revision.status == RS.PREPROCESSING |
| 41 | + ).count(), |
| 42 | + "PROBLEM": Revision.query.filter(Revision.status == RS.PROBLEM).count(), |
| 43 | + "READY": Revision.query.filter(Revision.status == RS.READY).count(), |
| 44 | + "QUEUED": Revision.query.filter(Revision.status == RS.QUEUED).count(), |
| 45 | + "LANDING": Revision.query.filter(Revision.status == RS.LANDING).count(), |
| 46 | + "LANDED": Revision.query.filter(Revision.status == RS.LANDED).count(), |
| 47 | + "FAILED": Revision.query.filter(Revision.status == RS.FAILED).count(), |
| 48 | + } |
| 49 | + |
| 50 | + return data, 200 |
0 commit comments