2
0

monitor.go 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. package models
  2. import (
  3. "strings"
  4. "time"
  5. "github.com/porter-dev/porter/api/types"
  6. "gorm.io/gorm"
  7. )
  8. type MonitorTestResult struct {
  9. gorm.Model
  10. ProjectID uint
  11. ClusterID uint
  12. Category string
  13. ObjectID string
  14. LastStatusChange *time.Time
  15. LastTested *time.Time
  16. LastRunResult string
  17. LastRunResultEnum uint
  18. LastRecommenderRunID string
  19. Archived bool
  20. Title string
  21. Message string
  22. Severity string
  23. SeverityEnum uint
  24. }
  25. func (m *MonitorTestResult) ToMonitorTestResultType() *types.MonitorTestResult {
  26. return &types.MonitorTestResult{
  27. ProjectID: m.ProjectID,
  28. ClusterID: m.ClusterID,
  29. Category: m.Category,
  30. ObjectID: m.ObjectID,
  31. LastStatusChange: m.LastStatusChange,
  32. LastTested: m.LastTested,
  33. LastRunResult: types.MonitorTestStatus(m.LastRunResult),
  34. Title: m.Title,
  35. Message: m.Message,
  36. Severity: types.MonitorTestSeverity(m.Severity),
  37. }
  38. }
  39. func GetSeverityEnum(severity string) uint {
  40. switch strings.ToLower(severity) {
  41. case string(types.MonitorTestSeverityCritical):
  42. return 2
  43. case string(types.MonitorTestSeverityHigh):
  44. return 1
  45. default:
  46. return 0
  47. }
  48. }
  49. func GetLastRunResultEnum(lastRunResult string) uint {
  50. switch strings.ToLower(lastRunResult) {
  51. case string(types.MonitorTestStatusFailed):
  52. return 1
  53. default:
  54. return 0
  55. }
  56. }