mirror of
https://github.com/FairwindsOps/polaris.git
synced 2026-05-19 07:37:44 +00:00
add cv.messages func to sort failures/successes
This commit is contained in:
@@ -12,6 +12,8 @@ import (
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
)
|
||||
|
||||
// DashboardData stores validation results organized by namespace and also
|
||||
// tracks the total cluster count of failed/successed validation checks.
|
||||
type DashboardData struct {
|
||||
ClusterSummary *validator.ResultSummary
|
||||
NamespacedResults validator.NamespacedResults
|
||||
@@ -19,6 +21,7 @@ type DashboardData struct {
|
||||
|
||||
var tmpl = template.Must(template.ParseFiles("pkg/dashboard/templates/dashboard.gohtml"))
|
||||
|
||||
// Render populates the dashboard template with validation data.
|
||||
func Render(w http.ResponseWriter, r *http.Request, c conf.Configuration) {
|
||||
dashboardData, err := getDashboardData(c)
|
||||
if err != nil {
|
||||
@@ -29,6 +32,7 @@ func Render(w http.ResponseWriter, r *http.Request, c conf.Configuration) {
|
||||
tmpl.Execute(w, dashboardData)
|
||||
}
|
||||
|
||||
// RenderJSON returns pod validation data in JSON format.
|
||||
func RenderJSON(w http.ResponseWriter, r *http.Request, c conf.Configuration) {
|
||||
var clientset = kube.CreateClientset()
|
||||
pods, err := clientset.CoreV1().Pods("").List(metav1.ListOptions{})
|
||||
@@ -54,24 +58,22 @@ func getDashboardData(c conf.Configuration) (DashboardData, error) {
|
||||
// from each validation.
|
||||
nsResults, _ := validator.ValidateDeploys(c)
|
||||
|
||||
var clusterSuccesses uint
|
||||
var clusterFailures uint
|
||||
var clusterWarnings uint
|
||||
var clusterSuccesses, clusterFailures, clusterWarnings uint
|
||||
|
||||
// Aggregate all summary counts to get a clusterwide count.
|
||||
for _, nsRes := range nsResults {
|
||||
for _, rr := range nsRes.Results {
|
||||
clusterSuccesses += rr.Summary.Successes
|
||||
clusterFailures += rr.Summary.Failures
|
||||
clusterWarnings += rr.Summary.Warnings
|
||||
clusterSuccesses += rr.Summary.Successes
|
||||
}
|
||||
}
|
||||
|
||||
dashboardData := DashboardData{
|
||||
ClusterSummary: &validator.ResultSummary{
|
||||
Successes: clusterSuccesses,
|
||||
Warnings: clusterWarnings,
|
||||
Failures: clusterFailures,
|
||||
Warnings: clusterWarnings,
|
||||
Successes: clusterSuccesses,
|
||||
},
|
||||
NamespacedResults: nsResults,
|
||||
}
|
||||
|
||||
@@ -27,7 +27,17 @@ import (
|
||||
type ContainerValidation struct {
|
||||
Container corev1.Container
|
||||
Summary ResultSummary
|
||||
Messages []ResultMessage
|
||||
Failures []ResultMessage
|
||||
Warnings []ResultMessage
|
||||
Successes []ResultMessage
|
||||
}
|
||||
|
||||
func (cv *ContainerValidation) messages() []ResultMessage {
|
||||
mssgs := []ResultMessage{}
|
||||
mssgs = append(mssgs, cv.Failures...)
|
||||
mssgs = append(mssgs, cv.Warnings...)
|
||||
mssgs = append(mssgs, cv.Successes...)
|
||||
return mssgs
|
||||
}
|
||||
|
||||
func validateContainer(conf conf.Configuration, container corev1.Container) (ContainerResult, ResultSummary) {
|
||||
@@ -42,33 +52,33 @@ func validateContainer(conf conf.Configuration, container corev1.Container) (Con
|
||||
|
||||
cRes := ContainerResult{
|
||||
Name: container.Name,
|
||||
Messages: cv.Messages,
|
||||
Messages: cv.messages(),
|
||||
}
|
||||
|
||||
return cRes, cv.Summary
|
||||
}
|
||||
|
||||
func (cv *ContainerValidation) addSuccess(message string) {
|
||||
cv.Summary.Successes++
|
||||
cv.Messages = append(cv.Messages, ResultMessage{
|
||||
func (cv *ContainerValidation) addFailure(message string) {
|
||||
cv.Summary.Failures++
|
||||
cv.Failures = append(cv.Failures, ResultMessage{
|
||||
Message: message,
|
||||
Type: "success",
|
||||
Type: "failure",
|
||||
})
|
||||
}
|
||||
|
||||
func (cv *ContainerValidation) addWarning(message string) {
|
||||
cv.Summary.Warnings++
|
||||
cv.Messages = append(cv.Messages, ResultMessage{
|
||||
cv.Warnings = append(cv.Warnings, ResultMessage{
|
||||
Message: message,
|
||||
Type: "warning",
|
||||
})
|
||||
}
|
||||
|
||||
func (cv *ContainerValidation) addFailure(message string) {
|
||||
cv.Summary.Failures++
|
||||
cv.Messages = append(cv.Messages, ResultMessage{
|
||||
func (cv *ContainerValidation) addSuccess(message string) {
|
||||
cv.Summary.Successes++
|
||||
cv.Successes = append(cv.Successes, ResultMessage{
|
||||
Message: message,
|
||||
Type: "failure",
|
||||
Type: "success",
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user