@@ -37,26 +37,27 @@ import (
37
37
"k8s.io/client-go/tools/record"
38
38
)
39
39
40
- func createLockObject (t * testing.T , objectType , namespace , name string , record rl.LeaderElectionRecord ) (obj runtime.Object ) {
40
+ func createLockObject (t * testing.T , objectType , namespace , name string , record * rl.LeaderElectionRecord ) (obj runtime.Object ) {
41
41
objectMeta := metav1.ObjectMeta {
42
42
Namespace : namespace ,
43
43
Name : name ,
44
44
}
45
- switch objectType {
46
- case "endpoints" :
45
+ if record != nil {
47
46
recordBytes , _ := json .Marshal (record )
48
47
objectMeta .Annotations = map [string ]string {
49
48
rl .LeaderElectionRecordAnnotationKey : string (recordBytes ),
50
49
}
50
+ }
51
+ switch objectType {
52
+ case "endpoints" :
51
53
obj = & corev1.Endpoints {ObjectMeta : objectMeta }
52
54
case "configmaps" :
53
- recordBytes , _ := json .Marshal (record )
54
- objectMeta .Annotations = map [string ]string {
55
- rl .LeaderElectionRecordAnnotationKey : string (recordBytes ),
56
- }
57
55
obj = & corev1.ConfigMap {ObjectMeta : objectMeta }
58
56
case "leases" :
59
- spec := rl .LeaderElectionRecordToLeaseSpec (& record )
57
+ var spec coordinationv1.LeaseSpec
58
+ if record != nil {
59
+ spec = rl .LeaderElectionRecordToLeaseSpec (record )
60
+ }
60
61
obj = & coordinationv1.Lease {ObjectMeta : objectMeta , Spec : spec }
61
62
default :
62
63
t .Fatal ("unexpected objType:" + objectType )
@@ -108,13 +109,33 @@ func testTryAcquireOrRenew(t *testing.T, objectType string) {
108
109
expectSuccess : true ,
109
110
outHolder : "baz" ,
110
111
},
112
+ {
113
+ name : "acquire from object without annotations" ,
114
+ reactors : []Reactor {
115
+ {
116
+ verb : "get" ,
117
+ reaction : func (action fakeclient.Action ) (handled bool , ret runtime.Object , err error ) {
118
+ return true , createLockObject (t , objectType , action .GetNamespace (), action .(fakeclient.GetAction ).GetName (), nil ), nil
119
+ },
120
+ },
121
+ {
122
+ verb : "update" ,
123
+ reaction : func (action fakeclient.Action ) (handled bool , ret runtime.Object , err error ) {
124
+ return true , action .(fakeclient.CreateAction ).GetObject (), nil
125
+ },
126
+ },
127
+ },
128
+ expectSuccess : true ,
129
+ transitionLeader : true ,
130
+ outHolder : "baz" ,
131
+ },
111
132
{
112
133
name : "acquire from unled object" ,
113
134
reactors : []Reactor {
114
135
{
115
136
verb : "get" ,
116
137
reaction : func (action fakeclient.Action ) (handled bool , ret runtime.Object , err error ) {
117
- return true , createLockObject (t , objectType , action .GetNamespace (), action .(fakeclient.GetAction ).GetName (), rl.LeaderElectionRecord {}), nil
138
+ return true , createLockObject (t , objectType , action .GetNamespace (), action .(fakeclient.GetAction ).GetName (), & rl.LeaderElectionRecord {}), nil
118
139
},
119
140
},
120
141
{
@@ -135,7 +156,7 @@ func testTryAcquireOrRenew(t *testing.T, objectType string) {
135
156
{
136
157
verb : "get" ,
137
158
reaction : func (action fakeclient.Action ) (handled bool , ret runtime.Object , err error ) {
138
- return true , createLockObject (t , objectType , action .GetNamespace (), action .(fakeclient.GetAction ).GetName (), rl.LeaderElectionRecord {HolderIdentity : "bing" }), nil
159
+ return true , createLockObject (t , objectType , action .GetNamespace (), action .(fakeclient.GetAction ).GetName (), & rl.LeaderElectionRecord {HolderIdentity : "bing" }), nil
139
160
},
140
161
},
141
162
{
@@ -158,7 +179,7 @@ func testTryAcquireOrRenew(t *testing.T, objectType string) {
158
179
{
159
180
verb : "get" ,
160
181
reaction : func (action fakeclient.Action ) (handled bool , ret runtime.Object , err error ) {
161
- return true , createLockObject (t , objectType , action .GetNamespace (), action .(fakeclient.GetAction ).GetName (), rl.LeaderElectionRecord {HolderIdentity : "" }), nil
182
+ return true , createLockObject (t , objectType , action .GetNamespace (), action .(fakeclient.GetAction ).GetName (), & rl.LeaderElectionRecord {HolderIdentity : "" }), nil
162
183
},
163
184
},
164
185
{
@@ -180,7 +201,7 @@ func testTryAcquireOrRenew(t *testing.T, objectType string) {
180
201
{
181
202
verb : "get" ,
182
203
reaction : func (action fakeclient.Action ) (handled bool , ret runtime.Object , err error ) {
183
- return true , createLockObject (t , objectType , action .GetNamespace (), action .(fakeclient.GetAction ).GetName (), rl.LeaderElectionRecord {HolderIdentity : "bing" }), nil
204
+ return true , createLockObject (t , objectType , action .GetNamespace (), action .(fakeclient.GetAction ).GetName (), & rl.LeaderElectionRecord {HolderIdentity : "bing" }), nil
184
205
},
185
206
},
186
207
},
@@ -195,7 +216,7 @@ func testTryAcquireOrRenew(t *testing.T, objectType string) {
195
216
{
196
217
verb : "get" ,
197
218
reaction : func (action fakeclient.Action ) (handled bool , ret runtime.Object , err error ) {
198
- return true , createLockObject (t , objectType , action .GetNamespace (), action .(fakeclient.GetAction ).GetName (), rl.LeaderElectionRecord {HolderIdentity : "baz" }), nil
219
+ return true , createLockObject (t , objectType , action .GetNamespace (), action .(fakeclient.GetAction ).GetName (), & rl.LeaderElectionRecord {HolderIdentity : "baz" }), nil
199
220
},
200
221
},
201
222
{
@@ -421,7 +442,7 @@ func testTryAcquireOrRenewMultiLock(t *testing.T, objectType string) {
421
442
verb : "get" ,
422
443
objectType : primaryType ,
423
444
reaction : func (action fakeclient.Action ) (handled bool , ret runtime.Object , err error ) {
424
- return true , createLockObject (t , primaryType , action .GetNamespace (), action .(fakeclient.GetAction ).GetName (), rl.LeaderElectionRecord {}), nil
445
+ return true , createLockObject (t , primaryType , action .GetNamespace (), action .(fakeclient.GetAction ).GetName (), & rl.LeaderElectionRecord {}), nil
425
446
},
426
447
},
427
448
{
@@ -464,14 +485,14 @@ func testTryAcquireOrRenewMultiLock(t *testing.T, objectType string) {
464
485
verb : "get" ,
465
486
objectType : primaryType ,
466
487
reaction : func (action fakeclient.Action ) (handled bool , ret runtime.Object , err error ) {
467
- return true , createLockObject (t , primaryType , action .GetNamespace (), action .(fakeclient.GetAction ).GetName (), rl.LeaderElectionRecord {}), nil
488
+ return true , createLockObject (t , primaryType , action .GetNamespace (), action .(fakeclient.GetAction ).GetName (), & rl.LeaderElectionRecord {}), nil
468
489
},
469
490
},
470
491
{
471
492
verb : "get" ,
472
493
objectType : secondaryType ,
473
494
reaction : func (action fakeclient.Action ) (handled bool , ret runtime.Object , err error ) {
474
- return true , createLockObject (t , secondaryType , action .GetNamespace (), action .(fakeclient.GetAction ).GetName (), rl.LeaderElectionRecord {}), nil
495
+ return true , createLockObject (t , secondaryType , action .GetNamespace (), action .(fakeclient.GetAction ).GetName (), & rl.LeaderElectionRecord {}), nil
475
496
},
476
497
},
477
498
{
@@ -485,7 +506,7 @@ func testTryAcquireOrRenewMultiLock(t *testing.T, objectType string) {
485
506
verb : "get" ,
486
507
objectType : secondaryType ,
487
508
reaction : func (action fakeclient.Action ) (handled bool , ret runtime.Object , err error ) {
488
- return true , createLockObject (t , secondaryType , action .GetNamespace (), action .(fakeclient.GetAction ).GetName (), rl.LeaderElectionRecord {}), nil
509
+ return true , createLockObject (t , secondaryType , action .GetNamespace (), action .(fakeclient.GetAction ).GetName (), & rl.LeaderElectionRecord {}), nil
489
510
},
490
511
},
491
512
{
@@ -507,7 +528,7 @@ func testTryAcquireOrRenewMultiLock(t *testing.T, objectType string) {
507
528
verb : "get" ,
508
529
objectType : primaryType ,
509
530
reaction : func (action fakeclient.Action ) (handled bool , ret runtime.Object , err error ) {
510
- return true , createLockObject (t , primaryType , action .GetNamespace (), action .(fakeclient.GetAction ).GetName (), rl.LeaderElectionRecord {HolderIdentity : "bing" }), nil
531
+ return true , createLockObject (t , primaryType , action .GetNamespace (), action .(fakeclient.GetAction ).GetName (), & rl.LeaderElectionRecord {HolderIdentity : "bing" }), nil
511
532
},
512
533
},
513
534
{
@@ -528,7 +549,7 @@ func testTryAcquireOrRenewMultiLock(t *testing.T, objectType string) {
528
549
verb : "get" ,
529
550
objectType : secondaryType ,
530
551
reaction : func (action fakeclient.Action ) (handled bool , ret runtime.Object , err error ) {
531
- return true , createLockObject (t , secondaryType , action .GetNamespace (), action .(fakeclient.GetAction ).GetName (), rl.LeaderElectionRecord {HolderIdentity : "bing" }), nil
552
+ return true , createLockObject (t , secondaryType , action .GetNamespace (), action .(fakeclient.GetAction ).GetName (), & rl.LeaderElectionRecord {HolderIdentity : "bing" }), nil
532
553
},
533
554
},
534
555
{
@@ -554,14 +575,14 @@ func testTryAcquireOrRenewMultiLock(t *testing.T, objectType string) {
554
575
verb : "get" ,
555
576
objectType : primaryType ,
556
577
reaction : func (action fakeclient.Action ) (handled bool , ret runtime.Object , err error ) {
557
- return true , createLockObject (t , primaryType , action .GetNamespace (), action .(fakeclient.GetAction ).GetName (), rl.LeaderElectionRecord {HolderIdentity : "bing" }), nil
578
+ return true , createLockObject (t , primaryType , action .GetNamespace (), action .(fakeclient.GetAction ).GetName (), & rl.LeaderElectionRecord {HolderIdentity : "bing" }), nil
558
579
},
559
580
},
560
581
{
561
582
verb : "get" ,
562
583
objectType : secondaryType ,
563
584
reaction : func (action fakeclient.Action ) (handled bool , ret runtime.Object , err error ) {
564
- return true , createLockObject (t , secondaryType , action .GetNamespace (), action .(fakeclient.GetAction ).GetName (), rl.LeaderElectionRecord {HolderIdentity : "bing" }), nil
585
+ return true , createLockObject (t , secondaryType , action .GetNamespace (), action .(fakeclient.GetAction ).GetName (), & rl.LeaderElectionRecord {HolderIdentity : "bing" }), nil
565
586
},
566
587
},
567
588
{
@@ -575,7 +596,7 @@ func testTryAcquireOrRenewMultiLock(t *testing.T, objectType string) {
575
596
verb : "get" ,
576
597
objectType : secondaryType ,
577
598
reaction : func (action fakeclient.Action ) (handled bool , ret runtime.Object , err error ) {
578
- return true , createLockObject (t , secondaryType , action .GetNamespace (), action .(fakeclient.GetAction ).GetName (), rl.LeaderElectionRecord {HolderIdentity : "bing" }), nil
599
+ return true , createLockObject (t , secondaryType , action .GetNamespace (), action .(fakeclient.GetAction ).GetName (), & rl.LeaderElectionRecord {HolderIdentity : "bing" }), nil
579
600
},
580
601
},
581
602
{
@@ -601,14 +622,14 @@ func testTryAcquireOrRenewMultiLock(t *testing.T, objectType string) {
601
622
verb : "get" ,
602
623
objectType : primaryType ,
603
624
reaction : func (action fakeclient.Action ) (handled bool , ret runtime.Object , err error ) {
604
- return true , createLockObject (t , primaryType , action .GetNamespace (), action .(fakeclient.GetAction ).GetName (), rl.LeaderElectionRecord {HolderIdentity : "bing" }), nil
625
+ return true , createLockObject (t , primaryType , action .GetNamespace (), action .(fakeclient.GetAction ).GetName (), & rl.LeaderElectionRecord {HolderIdentity : "bing" }), nil
605
626
},
606
627
},
607
628
{
608
629
verb : "get" ,
609
630
objectType : secondaryType ,
610
631
reaction : func (action fakeclient.Action ) (handled bool , ret runtime.Object , err error ) {
611
- return true , createLockObject (t , secondaryType , action .GetNamespace (), action .(fakeclient.GetAction ).GetName (), rl.LeaderElectionRecord {HolderIdentity : "baz" }), nil
632
+ return true , createLockObject (t , secondaryType , action .GetNamespace (), action .(fakeclient.GetAction ).GetName (), & rl.LeaderElectionRecord {HolderIdentity : "baz" }), nil
612
633
},
613
634
},
614
635
},
@@ -626,14 +647,14 @@ func testTryAcquireOrRenewMultiLock(t *testing.T, objectType string) {
626
647
verb : "get" ,
627
648
objectType : primaryType ,
628
649
reaction : func (action fakeclient.Action ) (handled bool , ret runtime.Object , err error ) {
629
- return true , createLockObject (t , primaryType , action .GetNamespace (), action .(fakeclient.GetAction ).GetName (), rl.LeaderElectionRecord {HolderIdentity : rl .UnknownLeader }), nil
650
+ return true , createLockObject (t , primaryType , action .GetNamespace (), action .(fakeclient.GetAction ).GetName (), & rl.LeaderElectionRecord {HolderIdentity : rl .UnknownLeader }), nil
630
651
},
631
652
},
632
653
{
633
654
verb : "get" ,
634
655
objectType : secondaryType ,
635
656
reaction : func (action fakeclient.Action ) (handled bool , ret runtime.Object , err error ) {
636
- return true , createLockObject (t , secondaryType , action .GetNamespace (), action .(fakeclient.GetAction ).GetName (), rl.LeaderElectionRecord {HolderIdentity : rl .UnknownLeader }), nil
657
+ return true , createLockObject (t , secondaryType , action .GetNamespace (), action .(fakeclient.GetAction ).GetName (), & rl.LeaderElectionRecord {HolderIdentity : rl .UnknownLeader }), nil
637
658
},
638
659
},
639
660
{
@@ -647,7 +668,7 @@ func testTryAcquireOrRenewMultiLock(t *testing.T, objectType string) {
647
668
verb : "get" ,
648
669
objectType : secondaryType ,
649
670
reaction : func (action fakeclient.Action ) (handled bool , ret runtime.Object , err error ) {
650
- return true , createLockObject (t , secondaryType , action .GetNamespace (), action .(fakeclient.GetAction ).GetName (), rl.LeaderElectionRecord {HolderIdentity : rl .UnknownLeader }), nil
671
+ return true , createLockObject (t , secondaryType , action .GetNamespace (), action .(fakeclient.GetAction ).GetName (), & rl.LeaderElectionRecord {HolderIdentity : rl .UnknownLeader }), nil
651
672
},
652
673
},
653
674
{
@@ -673,7 +694,7 @@ func testTryAcquireOrRenewMultiLock(t *testing.T, objectType string) {
673
694
verb : "get" ,
674
695
objectType : primaryType ,
675
696
reaction : func (action fakeclient.Action ) (handled bool , ret runtime.Object , err error ) {
676
- return true , createLockObject (t , primaryType , action .GetNamespace (), action .(fakeclient.GetAction ).GetName (), rl.LeaderElectionRecord {HolderIdentity : "bing" }), nil
697
+ return true , createLockObject (t , primaryType , action .GetNamespace (), action .(fakeclient.GetAction ).GetName (), & rl.LeaderElectionRecord {HolderIdentity : "bing" }), nil
677
698
},
678
699
},
679
700
{
@@ -698,14 +719,14 @@ func testTryAcquireOrRenewMultiLock(t *testing.T, objectType string) {
698
719
verb : "get" ,
699
720
objectType : primaryType ,
700
721
reaction : func (action fakeclient.Action ) (handled bool , ret runtime.Object , err error ) {
701
- return true , createLockObject (t , primaryType , action .GetNamespace (), action .(fakeclient.GetAction ).GetName (), rl.LeaderElectionRecord {HolderIdentity : "baz" }), nil
722
+ return true , createLockObject (t , primaryType , action .GetNamespace (), action .(fakeclient.GetAction ).GetName (), & rl.LeaderElectionRecord {HolderIdentity : "baz" }), nil
702
723
},
703
724
},
704
725
{
705
726
verb : "get" ,
706
727
objectType : secondaryType ,
707
728
reaction : func (action fakeclient.Action ) (handled bool , ret runtime.Object , err error ) {
708
- return true , createLockObject (t , secondaryType , action .GetNamespace (), action .(fakeclient.GetAction ).GetName (), rl.LeaderElectionRecord {HolderIdentity : "bing" }), nil
729
+ return true , createLockObject (t , secondaryType , action .GetNamespace (), action .(fakeclient.GetAction ).GetName (), & rl.LeaderElectionRecord {HolderIdentity : "bing" }), nil
709
730
},
710
731
},
711
732
},
@@ -723,14 +744,14 @@ func testTryAcquireOrRenewMultiLock(t *testing.T, objectType string) {
723
744
verb : "get" ,
724
745
objectType : primaryType ,
725
746
reaction : func (action fakeclient.Action ) (handled bool , ret runtime.Object , err error ) {
726
- return true , createLockObject (t , primaryType , action .GetNamespace (), action .(fakeclient.GetAction ).GetName (), rl.LeaderElectionRecord {HolderIdentity : "bing" }), nil
747
+ return true , createLockObject (t , primaryType , action .GetNamespace (), action .(fakeclient.GetAction ).GetName (), & rl.LeaderElectionRecord {HolderIdentity : "bing" }), nil
727
748
},
728
749
},
729
750
{
730
751
verb : "get" ,
731
752
objectType : secondaryType ,
732
753
reaction : func (action fakeclient.Action ) (handled bool , ret runtime.Object , err error ) {
733
- return true , createLockObject (t , secondaryType , action .GetNamespace (), action .(fakeclient.GetAction ).GetName (), rl.LeaderElectionRecord {HolderIdentity : "bing" }), nil
754
+ return true , createLockObject (t , secondaryType , action .GetNamespace (), action .(fakeclient.GetAction ).GetName (), & rl.LeaderElectionRecord {HolderIdentity : "bing" }), nil
734
755
},
735
756
},
736
757
},
@@ -748,14 +769,14 @@ func testTryAcquireOrRenewMultiLock(t *testing.T, objectType string) {
748
769
verb : "get" ,
749
770
objectType : primaryType ,
750
771
reaction : func (action fakeclient.Action ) (handled bool , ret runtime.Object , err error ) {
751
- return true , createLockObject (t , primaryType , action .GetNamespace (), action .(fakeclient.GetAction ).GetName (), rl.LeaderElectionRecord {HolderIdentity : "baz" }), nil
772
+ return true , createLockObject (t , primaryType , action .GetNamespace (), action .(fakeclient.GetAction ).GetName (), & rl.LeaderElectionRecord {HolderIdentity : "baz" }), nil
752
773
},
753
774
},
754
775
{
755
776
verb : "get" ,
756
777
objectType : secondaryType ,
757
778
reaction : func (action fakeclient.Action ) (handled bool , ret runtime.Object , err error ) {
758
- return true , createLockObject (t , secondaryType , action .GetNamespace (), action .(fakeclient.GetAction ).GetName (), rl.LeaderElectionRecord {HolderIdentity : "baz" }), nil
779
+ return true , createLockObject (t , secondaryType , action .GetNamespace (), action .(fakeclient.GetAction ).GetName (), & rl.LeaderElectionRecord {HolderIdentity : "baz" }), nil
759
780
},
760
781
},
761
782
{
@@ -769,7 +790,7 @@ func testTryAcquireOrRenewMultiLock(t *testing.T, objectType string) {
769
790
verb : "get" ,
770
791
objectType : secondaryType ,
771
792
reaction : func (action fakeclient.Action ) (handled bool , ret runtime.Object , err error ) {
772
- return true , createLockObject (t , secondaryType , action .GetNamespace (), action .(fakeclient.GetAction ).GetName (), rl.LeaderElectionRecord {HolderIdentity : "baz" }), nil
793
+ return true , createLockObject (t , secondaryType , action .GetNamespace (), action .(fakeclient.GetAction ).GetName (), & rl.LeaderElectionRecord {HolderIdentity : "baz" }), nil
773
794
},
774
795
},
775
796
{
0 commit comments