monitor.go 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  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. Title string
  19. Message string
  20. Severity string
  21. SeverityEnum uint
  22. }
  23. func (m *MonitorTestResult) ToMonitorTestResultType() *types.MonitorTestResult {
  24. return &types.MonitorTestResult{
  25. ProjectID: m.ProjectID,
  26. ClusterID: m.ClusterID,
  27. Category: m.Category,
  28. ObjectID: m.ObjectID,
  29. LastStatusChange: m.LastStatusChange,
  30. LastTested: m.LastTested,
  31. LastRunResult: types.MonitorTestStatus(m.LastRunResult),
  32. Title: m.Title,
  33. Message: m.Message,
  34. Severity: types.MonitorTestSeverity(m.Severity),
  35. }
  36. }
  37. func GetSeverityEnum(severity string) uint {
  38. switch strings.ToLower(severity) {
  39. case string(types.MonitorTestSeverityCritical):
  40. return 2
  41. case string(types.MonitorTestSeverityHigh):
  42. return 1
  43. default:
  44. return 0
  45. }
  46. }
  47. func GetLastRunResultEnum(lastRunResult string) uint {
  48. switch strings.ToLower(lastRunResult) {
  49. case string(types.MonitorTestStatusFailed):
  50. return 1
  51. default:
  52. return 0
  53. }
  54. }