mirror of
https://github.com/kyverno/kyverno.git
synced 2025-03-09 09:26:54 +00:00
* fix nil pointer when generating events Signed-off-by: ShutingZhao <shuting@nirmata.com> * rename error message of form ErrFoo Signed-off-by: ShutingZhao <shuting@nirmata.com>
47 lines
1.5 KiB
Go
47 lines
1.5 KiB
Go
package common
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/go-logr/logr"
|
|
"github.com/kyverno/kyverno/pkg/event"
|
|
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
|
|
)
|
|
|
|
var ErrEmptyPatch error = fmt.Errorf("empty resource to patch")
|
|
|
|
func FailedEvents(err error, policy, rule string, source event.Source, resource *unstructured.Unstructured, logger logr.Logger) []event.Info {
|
|
if resource == nil {
|
|
logger.WithName("FailedEvents").Error(ErrEmptyPatch, "", "rule", rule)
|
|
return nil
|
|
}
|
|
|
|
re := newEvent(policy, rule, source, *resource)
|
|
|
|
re.Reason = event.PolicyFailed.String()
|
|
re.Message = fmt.Sprintf("policy %s/%s failed to apply to %s/%s/%s: %v", policy, rule, resource.GetKind(), resource.GetNamespace(), resource.GetName(), err)
|
|
|
|
return []event.Info{re}
|
|
}
|
|
|
|
func SucceedEvents(policy, rule string, source event.Source, resource *unstructured.Unstructured, logger logr.Logger) []event.Info {
|
|
if resource == nil {
|
|
logger.WithName("SucceedEvents").Error(ErrEmptyPatch, "", "rule", rule)
|
|
return nil
|
|
}
|
|
|
|
re := newEvent(policy, rule, source, *resource)
|
|
|
|
re.Reason = event.PolicyApplied.String()
|
|
re.Message = fmt.Sprintf("policy %s/%s applied to %s/%s/%s successfully", policy, rule, resource.GetKind(), resource.GetNamespace(), resource.GetName())
|
|
|
|
return []event.Info{re}
|
|
}
|
|
|
|
func newEvent(policy, rule string, source event.Source, resource unstructured.Unstructured) (re event.Info) {
|
|
re.Kind = resource.GetKind()
|
|
re.Namespace = resource.GetNamespace()
|
|
re.Name = resource.GetName()
|
|
re.Source = source
|
|
return
|
|
}
|