|
|
|
@ -29,27 +29,8 @@ func getCheck(obj resource.Object, checkMap map[string]checks.Check) (checks.Che |
|
|
|
|
return c, nil |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func getStatusAnnotation(obj resource.Object) string { |
|
|
|
|
return obj.GetAnnotations()[checks.StatusAnnotation] |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func setStatusAnnotation(ctx context.Context, client resource.Client, obj resource.Object, status string) error { |
|
|
|
|
annotations := obj.GetAnnotations() |
|
|
|
|
if annotations == nil { |
|
|
|
|
annotations = map[string]string{} |
|
|
|
|
} |
|
|
|
|
annotations[checks.StatusAnnotation] = status |
|
|
|
|
return client.PatchInto(ctx, obj.GetStaticMetadata().Identifier(), resource.PatchRequest{ |
|
|
|
|
Operations: []resource.PatchOperation{{ |
|
|
|
|
Operation: resource.PatchOpAdd, |
|
|
|
|
Path: "/metadata/annotations", |
|
|
|
|
Value: annotations, |
|
|
|
|
}}, |
|
|
|
|
}, resource.PatchOptions{}, obj) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func processCheck(ctx context.Context, client resource.Client, obj resource.Object, check checks.Check) error { |
|
|
|
|
status := getStatusAnnotation(obj) |
|
|
|
|
status := checks.GetStatusAnnotation(obj) |
|
|
|
|
if status != "" { |
|
|
|
|
// Check already processed
|
|
|
|
|
return nil |
|
|
|
@ -61,7 +42,7 @@ func processCheck(ctx context.Context, client resource.Client, obj resource.Obje |
|
|
|
|
// Get the items to check
|
|
|
|
|
items, err := check.Items(ctx) |
|
|
|
|
if err != nil { |
|
|
|
|
setErr := setStatusAnnotation(ctx, client, obj, "error") |
|
|
|
|
setErr := checks.SetStatusAnnotation(ctx, client, obj, checks.StatusAnnotationError) |
|
|
|
|
if setErr != nil { |
|
|
|
|
return setErr |
|
|
|
|
} |
|
|
|
@ -71,7 +52,7 @@ func processCheck(ctx context.Context, client resource.Client, obj resource.Obje |
|
|
|
|
steps := check.Steps() |
|
|
|
|
failures, err := runStepsInParallel(ctx, &c.Spec, steps, items) |
|
|
|
|
if err != nil { |
|
|
|
|
setErr := setStatusAnnotation(ctx, client, obj, "error") |
|
|
|
|
setErr := checks.SetStatusAnnotation(ctx, client, obj, checks.StatusAnnotationError) |
|
|
|
|
if setErr != nil { |
|
|
|
|
return setErr |
|
|
|
|
} |
|
|
|
@ -82,7 +63,7 @@ func processCheck(ctx context.Context, client resource.Client, obj resource.Obje |
|
|
|
|
Failures: failures, |
|
|
|
|
Count: int64(len(items)), |
|
|
|
|
} |
|
|
|
|
err = setStatusAnnotation(ctx, client, obj, "processed") |
|
|
|
|
err = checks.SetStatusAnnotation(ctx, client, obj, checks.StatusAnnotationProcessed) |
|
|
|
|
if err != nil { |
|
|
|
|
return err |
|
|
|
|
} |
|
|
|
|