| OLD | NEW |
| (Empty) | |
| 1 // Copyright 2017 The LUCI Authors. All rights reserved. |
| 2 // Use of this source code is governed under the Apache License, Version 2.0 |
| 3 // that can be found in the LICENSE file. |
| 4 |
| 5 //go:generate stringer -type=Status |
| 6 |
| 7 package model |
| 8 |
| 9 import "encoding/json" |
| 10 |
| 11 // Status is a discrete status for the purpose of colorizing a component. |
| 12 // These are based off the Material Design Bootstrap color palettes. |
| 13 type Status int |
| 14 |
| 15 const ( |
| 16 // NotRun if the component has not yet been run. |
| 17 NotRun Status = iota // 100 Gray |
| 18 |
| 19 // Running if the component is currently running. |
| 20 Running // 100 Teal |
| 21 |
| 22 // Success if the component has finished executing and is not noteworthy
. |
| 23 Success // A200 Green |
| 24 |
| 25 // Failure if the component has finished executing and contains a failur
e. |
| 26 Failure // A200 Red |
| 27 |
| 28 // Warning just like from the buildbot days. |
| 29 Warning // 200 Yellow |
| 30 |
| 31 // InfraFailure if the component has finished incompletely due to a fail
ure in infra. |
| 32 InfraFailure // A100 Purple |
| 33 |
| 34 // Exception if the component has finished incompletely and unexpectedly
. This |
| 35 // is used for buildbot builds. |
| 36 Exception // A100 Purple |
| 37 |
| 38 // Expired if the component was never scheduled due to resource exhausti
on. |
| 39 Expired // A200 Purple |
| 40 |
| 41 // DependencyFailure if the component has finished incompletely due to a
failure in a |
| 42 // dependency. |
| 43 DependencyFailure // 100 Amber |
| 44 |
| 45 // WaitingDependency if the component has finished or paused execution d
ue to an |
| 46 // incomplete dep. |
| 47 WaitingDependency // 100 Brown |
| 48 ) |
| 49 |
| 50 // Terminal returns true if the step status won't change. |
| 51 func (s Status) Terminal() bool { |
| 52 switch s { |
| 53 case Success, Failure, InfraFailure, Warning, DependencyFailure, Expired
: |
| 54 return true |
| 55 default: |
| 56 return false |
| 57 } |
| 58 } |
| 59 |
| 60 // MarshalJSON renders enums into String rather than an int when marshalling. |
| 61 func (s Status) MarshalJSON() ([]byte, error) { |
| 62 return json.Marshal(s.String()) |
| 63 } |
| OLD | NEW |