Skip to content

Commit c23e1f7

Browse files
committed
client-go: event support label
Signed-off-by: acejilam <[email protected]>
1 parent 5f34f92 commit c23e1f7

File tree

7 files changed

+54
-12
lines changed

7 files changed

+54
-12
lines changed

pkg/controller/statefulset/stateful_set_utils_test.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,8 @@ func (r *noopRecorder) Eventf(object runtime.Object, eventtype, reason, messageF
5151
}
5252
func (r *noopRecorder) AnnotatedEventf(object runtime.Object, annotations map[string]string, eventtype, reason, messageFmt string, args ...interface{}) {
5353
}
54+
func (r *noopRecorder) LabeledAnnotatedEventf(object runtime.Object, labels, annotations map[string]string, eventtype, reason, messageFmt string, args ...interface{}) {
55+
}
5456

5557
// getClaimPodName gets the name of the Pod associated with the Claim, or an empty string if this doesn't look matching.
5658
func getClaimPodName(set *apps.StatefulSet, claim *v1.PersistentVolumeClaim) string {

pkg/controller/testutil/test_utils.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -417,6 +417,11 @@ func (f *FakeRecorder) AnnotatedEventf(obj runtime.Object, annotations map[strin
417417
f.Eventf(obj, eventtype, reason, messageFmt, args...)
418418
}
419419

420+
// LabeledAnnotatedEventf emits a fake formatted event to the fake recorder
421+
func (f *FakeRecorder) LabeledAnnotatedEventf(obj runtime.Object, labels, annotations map[string]string, eventtype, reason, messageFmt string, args ...interface{}) {
422+
f.Eventf(obj, eventtype, reason, messageFmt, args...)
423+
}
424+
420425
func (f *FakeRecorder) generateEvent(obj runtime.Object, timestamp metav1.Time, eventtype, reason, message string) {
421426
f.Lock()
422427
defer f.Unlock()

pkg/kubelet/container/helpers.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -243,7 +243,12 @@ func (irecorder *innerEventRecorder) AnnotatedEventf(object runtime.Object, anno
243243
if ref, ok := irecorder.shouldRecordEvent(object); ok {
244244
irecorder.recorder.AnnotatedEventf(ref, annotations, eventtype, reason, messageFmt, args...)
245245
}
246+
}
246247

248+
func (irecorder *innerEventRecorder) LabeledAnnotatedEventf(object runtime.Object, labels, annotations map[string]string, eventtype, reason, messageFmt string, args ...interface{}) {
249+
if ref, ok := irecorder.shouldRecordEvent(object); ok {
250+
irecorder.recorder.LabeledAnnotatedEventf(ref, labels, annotations, eventtype, reason, messageFmt, args...)
251+
}
247252
}
248253

249254
// IsHostNetworkPod returns whether the host networking requested for the given Pod.

pkg/kubelet/container/helpers_test.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1187,6 +1187,10 @@ func (f *fakeRecorder) AnnotatedEventf(object runtime.Object, annotations map[st
11871187
f.aEvents = append(f.aEvents, eventtype+":"+reason+":"+messageFmt)
11881188
}
11891189

1190+
func (f *fakeRecorder) LabeledAnnotatedEventf(object runtime.Object, labels, annotations map[string]string, eventtype, reason, messageFmt string, args ...interface{}) {
1191+
f.aEvents = append(f.aEvents, eventtype+":"+reason+":"+messageFmt)
1192+
}
1193+
11901194
func TestFilterEventRecorder(t *testing.T) {
11911195
recorder := &fakeRecorder{}
11921196
filtered := FilterEventRecorder(recorder)

staging/src/k8s.io/client-go/tools/leaderelection/resourcelock/leaselock_test.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,10 @@ func (r *mockRecorder) AnnotatedEventf(object runtime.Object, annotations map[st
4646
r.events = append(r.events, fmt.Sprintf(messageFmt, args...))
4747
}
4848

49+
func (r *mockRecorder) LabeledAnnotatedEventf(object runtime.Object, labels, annotations map[string]string, eventtype, reason, messageFmt string, args ...interface{}) {
50+
r.events = append(r.events, fmt.Sprintf(messageFmt, args...))
51+
}
52+
4953
const (
5054
testNamespace = "test-namespace"
5155
testName = "test-name"

staging/src/k8s.io/client-go/tools/record/event.go

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,9 @@ type EventRecorder interface {
109109

110110
// AnnotatedEventf is just like eventf, but with annotations attached
111111
AnnotatedEventf(object runtime.Object, annotations map[string]string, eventtype, reason, messageFmt string, args ...interface{})
112+
113+
// LabeledAnnotatedEventf is just like eventf, but with labelsannotations、 attached
114+
LabeledAnnotatedEventf(object runtime.Object, labels, annotations map[string]string, eventtype, reason, messageFmt string, args ...interface{})
112115
}
113116

114117
// EventRecorderLogger extends EventRecorder such that a logger can
@@ -436,7 +439,7 @@ type recorderImpl struct {
436439

437440
var _ EventRecorder = &recorderImpl{}
438441

439-
func (recorder *recorderImpl) generateEvent(logger klog.Logger, object runtime.Object, annotations map[string]string, eventtype, reason, message string) {
442+
func (recorder *recorderImpl) generateEvent(logger klog.Logger, object runtime.Object, labels, annotations map[string]string, eventtype, reason, message string) {
440443
ref, err := ref.GetReference(recorder.scheme, object)
441444
if err != nil {
442445
logger.Error(err, "Could not construct reference, will not report event", "object", object, "eventType", eventtype, "reason", reason, "message", message)
@@ -448,7 +451,7 @@ func (recorder *recorderImpl) generateEvent(logger klog.Logger, object runtime.O
448451
return
449452
}
450453

451-
event := recorder.makeEvent(ref, annotations, eventtype, reason, message)
454+
event := recorder.makeEvent(ref, labels, annotations, eventtype, reason, message)
452455
event.Source = recorder.source
453456

454457
event.ReportingInstance = recorder.source.Host
@@ -470,18 +473,22 @@ func (recorder *recorderImpl) generateEvent(logger klog.Logger, object runtime.O
470473
}
471474

472475
func (recorder *recorderImpl) Event(object runtime.Object, eventtype, reason, message string) {
473-
recorder.generateEvent(klog.Background(), object, nil, eventtype, reason, message)
476+
recorder.generateEvent(klog.Background(), object, nil, nil, eventtype, reason, message)
474477
}
475478

476479
func (recorder *recorderImpl) Eventf(object runtime.Object, eventtype, reason, messageFmt string, args ...interface{}) {
477480
recorder.Event(object, eventtype, reason, fmt.Sprintf(messageFmt, args...))
478481
}
479482

480483
func (recorder *recorderImpl) AnnotatedEventf(object runtime.Object, annotations map[string]string, eventtype, reason, messageFmt string, args ...interface{}) {
481-
recorder.generateEvent(klog.Background(), object, annotations, eventtype, reason, fmt.Sprintf(messageFmt, args...))
484+
recorder.generateEvent(klog.Background(), object, nil, annotations, eventtype, reason, fmt.Sprintf(messageFmt, args...))
485+
}
486+
487+
func (recorder *recorderImpl) LabeledAnnotatedEventf(object runtime.Object, labels, annotations map[string]string, eventtype, reason, messageFmt string, args ...interface{}) {
488+
recorder.generateEvent(klog.Background(), object, labels, annotations, eventtype, reason, fmt.Sprintf(messageFmt, args...))
482489
}
483490

484-
func (recorder *recorderImpl) makeEvent(ref *v1.ObjectReference, annotations map[string]string, eventtype, reason, message string) *v1.Event {
491+
func (recorder *recorderImpl) makeEvent(ref *v1.ObjectReference, labels, annotations map[string]string, eventtype, reason, message string) *v1.Event {
485492
t := metav1.Time{Time: recorder.clock.Now()}
486493
namespace := ref.Namespace
487494
if namespace == "" {
@@ -491,6 +498,7 @@ func (recorder *recorderImpl) makeEvent(ref *v1.ObjectReference, annotations map
491498
ObjectMeta: metav1.ObjectMeta{
492499
Name: util.GenerateEventName(ref.Name, t.UnixNano()),
493500
Namespace: namespace,
501+
Labels: labels,
494502
Annotations: annotations,
495503
},
496504
InvolvedObject: *ref,
@@ -511,15 +519,18 @@ type recorderImplLogger struct {
511519
var _ EventRecorderLogger = &recorderImplLogger{}
512520

513521
func (recorder recorderImplLogger) Event(object runtime.Object, eventtype, reason, message string) {
514-
recorder.recorderImpl.generateEvent(recorder.logger, object, nil, eventtype, reason, message)
522+
recorder.recorderImpl.generateEvent(recorder.logger, object, nil, nil, eventtype, reason, message)
515523
}
516524

517525
func (recorder recorderImplLogger) Eventf(object runtime.Object, eventtype, reason, messageFmt string, args ...interface{}) {
518526
recorder.Event(object, eventtype, reason, fmt.Sprintf(messageFmt, args...))
519527
}
520528

521529
func (recorder recorderImplLogger) AnnotatedEventf(object runtime.Object, annotations map[string]string, eventtype, reason, messageFmt string, args ...interface{}) {
522-
recorder.generateEvent(recorder.logger, object, annotations, eventtype, reason, fmt.Sprintf(messageFmt, args...))
530+
recorder.generateEvent(recorder.logger, object, nil, annotations, eventtype, reason, fmt.Sprintf(messageFmt, args...))
531+
}
532+
func (recorder recorderImplLogger) LabeledAnnotatedEventf(object runtime.Object, labels, annotations map[string]string, eventtype, reason, messageFmt string, args ...interface{}) {
533+
recorder.generateEvent(recorder.logger, object, labels, annotations, eventtype, reason, fmt.Sprintf(messageFmt, args...))
523534
}
524535

525536
func (recorder recorderImplLogger) WithLogger(logger klog.Logger) EventRecorderLogger {

staging/src/k8s.io/client-go/tools/record/fake.go

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -51,24 +51,35 @@ func annotationsString(annotations map[string]string) string {
5151
return " " + fmt.Sprint(annotations)
5252
}
5353
}
54+
func labelsString(labels map[string]string) string {
55+
if len(labels) == 0 {
56+
return ""
57+
} else {
58+
return " " + fmt.Sprint(labels)
59+
}
60+
}
5461

55-
func (f *FakeRecorder) writeEvent(object runtime.Object, annotations map[string]string, eventtype, reason, messageFmt string, args ...interface{}) {
62+
func (f *FakeRecorder) writeEvent(object runtime.Object, labels, annotations map[string]string, eventtype, reason, messageFmt string, args ...interface{}) {
5663
if f.Events != nil {
5764
f.Events <- fmt.Sprintf(eventtype+" "+reason+" "+messageFmt, args...) +
58-
objectString(object, f.IncludeObject) + annotationsString(annotations)
65+
objectString(object, f.IncludeObject) + annotationsString(annotations) + labelsString(labels)
5966
}
6067
}
6168

6269
func (f *FakeRecorder) Event(object runtime.Object, eventtype, reason, message string) {
63-
f.writeEvent(object, nil, eventtype, reason, "%s", message)
70+
f.writeEvent(object, nil, nil, eventtype, reason, "%s", message)
6471
}
6572

6673
func (f *FakeRecorder) Eventf(object runtime.Object, eventtype, reason, messageFmt string, args ...interface{}) {
67-
f.writeEvent(object, nil, eventtype, reason, messageFmt, args...)
74+
f.writeEvent(object, nil, nil, eventtype, reason, messageFmt, args...)
6875
}
6976

7077
func (f *FakeRecorder) AnnotatedEventf(object runtime.Object, annotations map[string]string, eventtype, reason, messageFmt string, args ...interface{}) {
71-
f.writeEvent(object, annotations, eventtype, reason, messageFmt, args...)
78+
f.writeEvent(object, nil, annotations, eventtype, reason, messageFmt, args...)
79+
}
80+
81+
func (f *FakeRecorder) LabeledAnnotatedEventf(object runtime.Object, labels, annotations map[string]string, eventtype, reason, messageFmt string, args ...interface{}) {
82+
f.writeEvent(object, labels, annotations, eventtype, reason, messageFmt, args...)
7283
}
7384

7485
func (f *FakeRecorder) WithLogger(logger klog.Logger) EventRecorderLogger {

0 commit comments

Comments
 (0)