add cv.messages func to sort failures/successes

This commit is contained in:
jessicagreben
2019-02-06 14:53:26 -08:00
parent 26b01299cc
commit 93871e2bc4
2 changed files with 29 additions and 17 deletions

View File

@@ -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,
}

View File

@@ -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",
})
}