Skip to content

Commit ff4ec69

Browse files
committed
fix UT and revert some changes
1 parent d3804ea commit ff4ec69

File tree

8 files changed

+24
-138
lines changed

8 files changed

+24
-138
lines changed

apis/cluster/v1beta1/zz_generated.deepcopy.go

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

apis/placement/v1alpha1/zz_generated.deepcopy.go

Lines changed: 3 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

apis/placement/v1beta1/zz_generated.deepcopy.go

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

apis/v1alpha1/zz_generated.deepcopy.go

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pkg/controllers/workgenerator/controller.go

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,8 @@ func (r *Reconciler) Reconcile(ctx context.Context, req controllerruntime.Reques
151151
resourceBinding.RemoveCondition(string(i.ResourceBindingConditionType()))
152152
}
153153
resourceBinding.Status.FailedPlacements = nil
154+
resourceBinding.Status.DriftedPlacements = nil
155+
resourceBinding.Status.DiffedPlacements = nil
154156
if overrideSucceeded {
155157
overrideReason := condition.OverriddenSucceededReason
156158
overrideMessage := "Successfully applied the override rules on the resources"
@@ -1182,21 +1184,6 @@ func (r *Reconciler) SetupWithManager(mgr controllerruntime.Manager) error {
11821184
}
11831185
}
11841186
}
1185-
// we need to compare the drift placement
1186-
oldDriftedPlacements := extractDriftedResourcePlacementsFromWork(oldWork)
1187-
newDriftedPlacements := extractDriftedResourcePlacementsFromWork(newWork)
1188-
if utils.IsDriftedResourcePlacementsEqual(oldDriftedPlacements, newDriftedPlacements) {
1189-
klog.V(2).InfoS("The drifted placement list didn't change, no need to reconcile", "oldWork", klog.KObj(oldWork), "newWork", klog.KObj(newWork))
1190-
return
1191-
}
1192-
1193-
// we need to compare the diffed placement
1194-
oldDiffedPlacements := extractDiffedResourcePlacementsFromWork(oldWork)
1195-
newDiffedPlacements := extractDiffedResourcePlacementsFromWork(newWork)
1196-
if utils.IsDiffedResourcePlacementsEqual(oldDiffedPlacements, newDiffedPlacements) {
1197-
klog.V(2).InfoS("The diffed placement list didn't change, no need to reconcile", "oldWork", klog.KObj(oldWork), "newWork", klog.KObj(newWork))
1198-
return
1199-
}
12001187
// We need to update the binding status in this case
12011188
klog.V(2).InfoS("Received a work update event that we need to handle", "work", klog.KObj(newWork), "parentBindingName", parentBindingName)
12021189
queue.Add(reconcile.Request{NamespacedName: types.NamespacedName{

pkg/controllers/workgenerator/controller_test.go

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1238,7 +1238,7 @@ func TestSetBindingStatus(t *testing.T) {
12381238
FirstDriftedObservedTime: metav1.NewTime(timeNow.Add(-time.Hour)),
12391239
ObservedDrifts: []fleetv1beta1.PatchDetail{
12401240
{
1241-
Path: "/spec/ports/1/port",
1241+
Path: "/spec/ports/0/port",
12421242
ValueInHub: "80",
12431243
ValueInMember: "90",
12441244
},
@@ -1339,7 +1339,7 @@ func TestSetBindingStatus(t *testing.T) {
13391339
FirstDriftedObservedTime: metav1.NewTime(timeNow.Add(-time.Hour)),
13401340
ObservedDrifts: []fleetv1beta1.PatchDetail{
13411341
{
1342-
Path: "/spec/ports/1/port",
1342+
Path: "/spec/ports/0/port",
13431343
ValueInHub: "80",
13441344
ValueInMember: "90",
13451345
},
@@ -1442,7 +1442,7 @@ func TestSetBindingStatus(t *testing.T) {
14421442
FirstDiffedObservedTime: metav1.NewTime(timeNow.Add(-time.Second)),
14431443
ObservedDiffs: []fleetv1beta1.PatchDetail{
14441444
{
1445-
Path: "/spec/ports/1/port",
1445+
Path: "/spec/ports/0/port",
14461446
ValueInHub: "80",
14471447
ValueInMember: "90",
14481448
},
@@ -1472,12 +1472,12 @@ func TestSetBindingStatus(t *testing.T) {
14721472
Group: "",
14731473
Version: "v1",
14741474
Kind: "Service",
1475-
Name: "svc-name-1",
1475+
Name: "svc-name",
14761476
Namespace: "svc-namespace",
14771477
},
14781478
ObservationTime: metav1.NewTime(timeNow),
14791479
TargetClusterObservedGeneration: 2,
1480-
FirstDiffedObservedTime: metav1.NewTime(timeNow.Add(-time.Second)),
1480+
FirstDiffedObservedTime: metav1.NewTime(timeNow.Add(-time.Hour)),
14811481
ObservedDiffs: []fleetv1beta1.PatchDetail{
14821482
{
14831483
Path: "/spec/ports/1/port",
@@ -1694,9 +1694,9 @@ func TestSetBindingStatus(t *testing.T) {
16941694
binding := &fleetv1beta1.ClusterResourceBinding{}
16951695
setBindingStatus(tt.works, binding)
16961696
got := binding.Status.FailedPlacements
1697-
// setBindingStatus is using map to populate the failedResourcePlacement.
1697+
// setBindingStatus is using map to populate the placements.
16981698
// There is no default order in traversing the map.
1699-
// When the result of failedResourcePlacement exceeds the limit, the result will be truncated and cannot be
1699+
// When the result of Placements exceeds the limit, the result will be truncated and cannot be
17001700
// guaranteed.
17011701
if maxFailedResourcePlacementLimit == len(tt.wantFailedResourcePlacements) {
17021702
opt := cmp.Comparer(func(x, y fleetv1beta1.FailedResourcePlacement) bool {
@@ -1735,8 +1735,8 @@ func TestSetBindingStatus(t *testing.T) {
17351735
}
17361736
return n1.Namespace < n2.Namespace
17371737
}),
1738-
cmpopts.SortSlices(func(f1, f2 fleetv1beta1.DriftedResourcePlacement) bool {
1739-
return f1.ResourceIdentifier.Kind < f2.ResourceIdentifier.Kind
1738+
cmp.Comparer(func(f1, f2 fleetv1beta1.DriftedResourcePlacement) bool {
1739+
return f1.ResourceIdentifier.Kind == f2.ResourceIdentifier.Kind
17401740
}),
17411741
cmp.Comparer(func(t1, t2 metav1.Time) bool {
17421742
if t1.Time.IsZero() || t2.Time.IsZero() {
@@ -1757,13 +1757,13 @@ func TestSetBindingStatus(t *testing.T) {
17571757

17581758
resourceCmpOptions := []cmp.Option{
17591759
cmpopts.SortSlices(func(i, j fleetv1beta1.DriftedResourcePlacement) bool {
1760-
if i.ResourceIdentifier.Group < j.ResourceIdentifier.Group {
1760+
if i.Group < j.Group {
17611761
return true
17621762
}
1763-
if i.ResourceIdentifier.Kind < j.ResourceIdentifier.Kind {
1763+
if i.Kind < j.Kind {
17641764
return true
17651765
}
1766-
return i.ResourceIdentifier.Name < j.ResourceIdentifier.Name
1766+
return i.Name < j.Name
17671767
}),
17681768
}
17691769
if diff := cmp.Diff(gotDrifted, tt.wantDriftedResourcePlacements, resourceCmpOptions...); diff != "" {
@@ -1804,13 +1804,13 @@ func TestSetBindingStatus(t *testing.T) {
18041804

18051805
resourceCmpOptions = []cmp.Option{
18061806
cmpopts.SortSlices(func(i, j fleetv1beta1.DiffedResourcePlacement) bool {
1807-
if i.ResourceIdentifier.Group < j.ResourceIdentifier.Group {
1807+
if i.Group < j.Group {
18081808
return true
18091809
}
1810-
if i.ResourceIdentifier.Kind < j.ResourceIdentifier.Kind {
1810+
if i.Kind < j.Kind {
18111811
return true
18121812
}
1813-
return i.ResourceIdentifier.Name < j.ResourceIdentifier.Name
1813+
return i.Name < j.Name
18141814
}),
18151815
}
18161816
if diff := cmp.Diff(gotDiffed, tt.wantDiffedResourcePlacements, resourceCmpOptions...); diff != "" {

pkg/utils/common.go

Lines changed: 0 additions & 102 deletions
Original file line numberDiff line numberDiff line change
@@ -556,108 +556,6 @@ func IsFailedResourcePlacementsEqual(oldFailedResourcePlacements, newFailedResou
556556
return true
557557
}
558558

559-
// LessFuncDriftedResourcePlacements is a less function for sorting drifted resource placements
560-
var LessFuncDriftedResourcePlacements = func(a, b placementv1beta1.DriftedResourcePlacement) bool {
561-
var aStr, bStr string
562-
if a.Envelope != nil {
563-
aStr = fmt.Sprintf(ResourceIdentifierWithEnvelopeIdentifierStringFormat, a.Group, a.Version, a.Kind, a.Namespace, a.Name, a.Envelope.Type, a.Envelope.Namespace, a.Envelope.Name)
564-
} else {
565-
aStr = fmt.Sprintf(ResourceIdentifierStringFormat, a.Group, a.Version, a.Kind, a.Namespace, a.Name)
566-
}
567-
if b.Envelope != nil {
568-
bStr = fmt.Sprintf(ResourceIdentifierWithEnvelopeIdentifierStringFormat, b.Group, b.Version, b.Kind, b.Namespace, b.Name, b.Envelope.Type, b.Envelope.Namespace, b.Envelope.Name)
569-
} else {
570-
bStr = fmt.Sprintf(ResourceIdentifierStringFormat, b.Group, b.Version, b.Kind, b.Namespace, b.Name)
571-
572-
}
573-
return aStr < bStr
574-
}
575-
576-
func IsDriftedResourcePlacementsEqual(oldDriftedResourcePlacements, newDriftedResourcePlacements []placementv1beta1.DriftedResourcePlacement) bool {
577-
if len(oldDriftedResourcePlacements) != len(newDriftedResourcePlacements) {
578-
return false
579-
}
580-
sort.Slice(oldDriftedResourcePlacements, func(i, j int) bool {
581-
return LessFuncDriftedResourcePlacements(oldDriftedResourcePlacements[i], oldDriftedResourcePlacements[j])
582-
})
583-
sort.Slice(newDriftedResourcePlacements, func(i, j int) bool {
584-
return LessFuncDriftedResourcePlacements(newDriftedResourcePlacements[i], newDriftedResourcePlacements[j])
585-
})
586-
for i := range oldDriftedResourcePlacements {
587-
oldDriftedResourcePlacement := oldDriftedResourcePlacements[i]
588-
newDriftedResourcePlacement := newDriftedResourcePlacements[i]
589-
if !equality.Semantic.DeepEqual(oldDriftedResourcePlacement.ResourceIdentifier, newDriftedResourcePlacement.ResourceIdentifier) {
590-
return false
591-
}
592-
if !equality.Semantic.DeepEqual(oldDriftedResourcePlacement.ObservationTime, newDriftedResourcePlacement.ObservationTime) {
593-
return false
594-
}
595-
if oldDriftedResourcePlacement.TargetClusterObservedGeneration != newDriftedResourcePlacement.TargetClusterObservedGeneration {
596-
return false
597-
}
598-
if !equality.Semantic.DeepEqual(oldDriftedResourcePlacement.FirstDriftedObservedTime, newDriftedResourcePlacement.FirstDriftedObservedTime) {
599-
return false
600-
}
601-
for j := range oldDriftedResourcePlacement.ObservedDrifts {
602-
if !equality.Semantic.DeepEqual(oldDriftedResourcePlacement.ObservedDrifts[j], newDriftedResourcePlacement.ObservedDrifts[j]) {
603-
return false
604-
}
605-
}
606-
}
607-
return true
608-
}
609-
610-
// LessFuncDiffedResourcePlacements is a less function for sorting diffed resource placements
611-
var LessFuncDiffedResourcePlacements = func(a, b placementv1beta1.DiffedResourcePlacement) bool {
612-
var aStr, bStr string
613-
if a.Envelope != nil {
614-
aStr = fmt.Sprintf(ResourceIdentifierWithEnvelopeIdentifierStringFormat, a.Group, a.Version, a.Kind, a.Namespace, a.Name, a.Envelope.Type, a.Envelope.Namespace, a.Envelope.Name)
615-
} else {
616-
aStr = fmt.Sprintf(ResourceIdentifierStringFormat, a.Group, a.Version, a.Kind, a.Namespace, a.Name)
617-
}
618-
if b.Envelope != nil {
619-
bStr = fmt.Sprintf(ResourceIdentifierWithEnvelopeIdentifierStringFormat, b.Group, b.Version, b.Kind, b.Namespace, b.Name, b.Envelope.Type, b.Envelope.Namespace, b.Envelope.Name)
620-
} else {
621-
bStr = fmt.Sprintf(ResourceIdentifierStringFormat, b.Group, b.Version, b.Kind, b.Namespace, b.Name)
622-
623-
}
624-
return aStr < bStr
625-
}
626-
627-
func IsDiffedResourcePlacementsEqual(oldDiffedResourcePlacements, newDiffedResourcePlacements []placementv1beta1.DiffedResourcePlacement) bool {
628-
if len(oldDiffedResourcePlacements) != len(newDiffedResourcePlacements) {
629-
return false
630-
}
631-
sort.Slice(oldDiffedResourcePlacements, func(i, j int) bool {
632-
return LessFuncDiffedResourcePlacements(oldDiffedResourcePlacements[i], oldDiffedResourcePlacements[j])
633-
})
634-
sort.Slice(newDiffedResourcePlacements, func(i, j int) bool {
635-
return LessFuncDiffedResourcePlacements(newDiffedResourcePlacements[i], newDiffedResourcePlacements[j])
636-
})
637-
for i := range oldDiffedResourcePlacements {
638-
oldDiffedResourcePlacement := oldDiffedResourcePlacements[i]
639-
newDiffedResourcePlacement := newDiffedResourcePlacements[i]
640-
if !equality.Semantic.DeepEqual(oldDiffedResourcePlacement.ResourceIdentifier, newDiffedResourcePlacement.ResourceIdentifier) {
641-
return false
642-
}
643-
if !equality.Semantic.DeepEqual(oldDiffedResourcePlacement.ObservationTime, newDiffedResourcePlacement.ObservationTime) {
644-
return false
645-
}
646-
if oldDiffedResourcePlacement.TargetClusterObservedGeneration != newDiffedResourcePlacement.TargetClusterObservedGeneration {
647-
return false
648-
}
649-
if !equality.Semantic.DeepEqual(oldDiffedResourcePlacement.FirstDiffedObservedTime, newDiffedResourcePlacement.FirstDiffedObservedTime) {
650-
return false
651-
}
652-
for j := range oldDiffedResourcePlacement.ObservedDiffs {
653-
if !equality.Semantic.DeepEqual(oldDiffedResourcePlacement.ObservedDiffs[j], newDiffedResourcePlacement.ObservedDiffs[j]) {
654-
return false
655-
}
656-
}
657-
}
658-
return true
659-
}
660-
661559
// IsFleetAnnotationPresent returns true if a key with fleet prefix is present in the annotations map.
662560
func IsFleetAnnotationPresent(annotations map[string]string) bool {
663561
for k := range annotations {

test/apis/v1alpha1/zz_generated.deepcopy.go

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)