Explorar el Código

update monitor results with enums for queries

Alexander Belanger hace 3 años
padre
commit
8227a40b51
Se han modificado 2 ficheros con 41 adiciones y 14 borrados
  1. 27 4
      internal/models/monitor.go
  2. 14 10
      workers/jobs/recommender.go

+ 27 - 4
internal/models/monitor.go

@@ -1,6 +1,7 @@
 package models
 
 import (
+	"strings"
 	"time"
 
 	"github.com/porter-dev/porter/api/types"
@@ -15,14 +16,16 @@ type MonitorTestResult struct {
 	Category  string
 	ObjectID  string
 
-	LastStatusChange *time.Time
-	LastTested       *time.Time
-	LastRunResult    string
+	LastStatusChange  *time.Time
+	LastTested        *time.Time
+	LastRunResult     string
+	LastRunResultEnum uint
 
 	Title   string
 	Message string
 
-	Severity string
+	Severity     string
+	SeverityEnum uint
 }
 
 func (m *MonitorTestResult) ToMonitorTestResultType() *types.MonitorTestResult {
@@ -39,3 +42,23 @@ func (m *MonitorTestResult) ToMonitorTestResultType() *types.MonitorTestResult {
 		Severity:         types.MonitorTestSeverity(m.Severity),
 	}
 }
+
+func GetSeverityEnum(severity string) uint {
+	switch strings.ToLower(severity) {
+	case string(types.MonitorTestSeverityCritical):
+		return 2
+	case string(types.MonitorTestSeverityHigh):
+		return 1
+	default:
+		return 0
+	}
+}
+
+func GetLastRunResultEnum(lastRunResult string) uint {
+	switch strings.ToLower(lastRunResult) {
+	case string(types.MonitorTestStatusFailed):
+		return 1
+	default:
+		return 0
+	}
+}

+ 14 - 10
workers/jobs/recommender.go

@@ -207,16 +207,18 @@ func (n *recommender) getMonitorTestResultFromQueryResult(queryRes *opa.OPARecom
 	currTime := time.Now()
 
 	return &models.MonitorTestResult{
-		ProjectID:        n.projectID,
-		ClusterID:        n.clusterID,
-		Category:         queryRes.CategoryName,
-		ObjectID:         queryRes.ObjectID,
-		LastStatusChange: &currTime,
-		LastTested:       &currTime,
-		LastRunResult:    string(runResult),
-		Title:            queryRes.PolicyTitle,
-		Message:          queryRes.PolicyMessage,
-		Severity:         queryRes.PolicySeverity,
+		ProjectID:         n.projectID,
+		ClusterID:         n.clusterID,
+		Category:          queryRes.CategoryName,
+		ObjectID:          queryRes.ObjectID,
+		LastStatusChange:  &currTime,
+		LastTested:        &currTime,
+		LastRunResult:     string(runResult),
+		LastRunResultEnum: models.GetLastRunResultEnum(string(runResult)),
+		Title:             queryRes.PolicyTitle,
+		Message:           queryRes.PolicyMessage,
+		Severity:          queryRes.PolicySeverity,
+		SeverityEnum:      models.GetSeverityEnum(queryRes.PolicySeverity),
 	}
 }
 
@@ -238,6 +240,8 @@ func mergeMonitorTestResultFromQueryResult(monitor *models.MonitorTestResult, qu
 	monitor.Title = queryRes.PolicyTitle
 	monitor.Message = queryRes.PolicyMessage
 	monitor.Severity = queryRes.PolicySeverity
+	monitor.SeverityEnum = models.GetSeverityEnum(queryRes.PolicySeverity)
+	monitor.LastRunResultEnum = models.GetLastRunResultEnum(string(runResult))
 
 	return monitor
 }