status.go 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. package api
  2. // StatusKind indicates the severity of a status
  3. type StatusKind int32
  4. const (
  5. // StatusSeverityLow indicates an OK status
  6. StatusSeverityLow StatusKind = iota
  7. // StatusSeverityMedium indicates a status which is in transition from OK to BAD or vice versa
  8. StatusSeverityMedium
  9. // StatusSeverityHigh indicates a BAD status
  10. StatusSeverityHigh
  11. )
  12. var statusToStatusKind = map[Status]StatusKind{
  13. Status_STATUS_NONE: StatusSeverityHigh,
  14. Status_STATUS_INIT: StatusSeverityMedium,
  15. Status_STATUS_OK: StatusSeverityLow,
  16. Status_STATUS_OFFLINE: StatusSeverityHigh,
  17. Status_STATUS_ERROR: StatusSeverityHigh,
  18. Status_STATUS_NOT_IN_QUORUM: StatusSeverityHigh,
  19. Status_STATUS_DECOMMISSION: StatusSeverityHigh,
  20. Status_STATUS_MAINTENANCE: StatusSeverityHigh,
  21. Status_STATUS_STORAGE_DOWN: StatusSeverityHigh,
  22. Status_STATUS_STORAGE_DEGRADED: StatusSeverityHigh,
  23. Status_STATUS_NEEDS_REBOOT: StatusSeverityHigh,
  24. Status_STATUS_STORAGE_REBALANCE: StatusSeverityMedium,
  25. Status_STATUS_STORAGE_DRIVE_REPLACE: StatusSeverityMedium,
  26. // Add statuses before MAX
  27. Status_STATUS_MAX: StatusSeverityHigh,
  28. }
  29. // StatusSimpleValueOf returns the string format of Status
  30. func StatusSimpleValueOf(s string) (Status, error) {
  31. obj, err := simpleValueOf("status", Status_value, s)
  32. return Status(obj), err
  33. }
  34. // SimpleString returns the string format of Status
  35. func (x Status) SimpleString() string {
  36. return simpleString("status", Status_name, int32(x))
  37. }
  38. // StatusKind returns the king of status
  39. func (x Status) StatusKind() StatusKind {
  40. statusType, _ := statusToStatusKind[x]
  41. return statusType
  42. }
  43. // StatusKindMapLength used only for unit testing
  44. func StatusKindMapLength() int {
  45. return len(statusToStatusKind)
  46. }