Skip to content

Commit 35036ae

Browse files
committed
add unit tests
1 parent 30e90de commit 35036ae

File tree

2 files changed

+1414
-285
lines changed

2 files changed

+1414
-285
lines changed

pkg/controllers/workgenerator/controller.go

Lines changed: 23 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -781,42 +781,35 @@ func setBindingStatus(works map[string]*fleetv1beta1.Work, resourceBinding *flee
781781
}
782782

783783
resourceBinding.Status.DriftedPlacements = nil
784-
// collect and set the drifted resource placements to the binding
784+
resourceBinding.Status.DiffedPlacements = nil
785785
driftedResourcePlacements := make([]fleetv1beta1.DriftedResourcePlacement, 0, maxDriftedResourcePlacementLimit) // preallocate the memory
786+
diffedResourcePlacements := make([]fleetv1beta1.DiffedResourcePlacement, 0, maxDiffedResourcePlacementLimit) // preallocate the memory
786787
for _, w := range works {
787788
if w.DeletionTimestamp != nil {
788789
klog.V(2).InfoS("Ignoring the deleting work", "clusterResourceBinding", bindingRef, "work", klog.KObj(w))
789790
continue // ignore the deleting work
790791
}
791792
driftedManifests := extractDriftedResourcePlacementsFromWork(w)
792793
driftedResourcePlacements = append(driftedResourcePlacements, driftedManifests...)
794+
795+
diffedManifests := extractDiffedResourcePlacementsFromWork(w)
796+
diffedResourcePlacements = append(diffedResourcePlacements, diffedManifests...)
793797
}
794798
// cut the list to keep only the max limit
795799
if len(driftedResourcePlacements) > maxDriftedResourcePlacementLimit {
796800
driftedResourcePlacements = driftedResourcePlacements[0:maxDriftedResourcePlacementLimit]
797801
}
798-
resourceBinding.Status.DriftedPlacements = driftedResourcePlacements
799802
if len(driftedResourcePlacements) > 0 {
803+
resourceBinding.Status.DriftedPlacements = driftedResourcePlacements
800804
klog.V(2).InfoS("Populated drifted manifests", "clusterResourceBinding", bindingRef, "numberOfDriftedPlacements", len(driftedResourcePlacements))
801805
}
802806

803-
resourceBinding.Status.DiffedPlacements = nil
804-
// collect and set the diffed resource placements to the binding
805-
diffedResourcePlacements := make([]fleetv1beta1.DiffedResourcePlacement, 0, maxDiffedResourcePlacementLimit) // preallocate the memory
806-
for _, w := range works {
807-
if w.DeletionTimestamp != nil {
808-
klog.V(2).InfoS("Ignoring the deleting work", "clusterResourceBinding", bindingRef, "work", klog.KObj(w))
809-
continue // ignore the deleting work
810-
}
811-
diffedManifests := extractDiffedResourcePlacementsFromWork(w)
812-
diffedResourcePlacements = append(diffedResourcePlacements, diffedManifests...)
813-
}
814807
// cut the list to keep only the max limit
815808
if len(diffedResourcePlacements) > maxDiffedResourcePlacementLimit {
816809
diffedResourcePlacements = diffedResourcePlacements[0:maxDiffedResourcePlacementLimit]
817810
}
818-
resourceBinding.Status.DiffedPlacements = diffedResourcePlacements
819811
if len(diffedResourcePlacements) > 0 {
812+
resourceBinding.Status.DiffedPlacements = diffedResourcePlacements
820813
klog.V(2).InfoS("Populated diffed manifests", "clusterResourceBinding", bindingRef, "numberOfDiffedPlacements", len(diffedResourcePlacements))
821814
}
822815
}
@@ -1011,6 +1004,9 @@ func extractDriftedResourcePlacementsFromWork(work *fleetv1beta1.Work) []fleetv1
10111004
}
10121005
res := make([]fleetv1beta1.DriftedResourcePlacement, 0, len(work.Status.ManifestConditions))
10131006
for _, manifestCondition := range work.Status.ManifestConditions {
1007+
if manifestCondition.DriftDetails == nil {
1008+
continue
1009+
}
10141010
driftedManifest := fleetv1beta1.DriftedResourcePlacement{
10151011
ResourceIdentifier: fleetv1beta1.ResourceIdentifier{
10161012
Group: manifestCondition.Identifier.Group,
@@ -1026,6 +1022,11 @@ func extractDriftedResourcePlacementsFromWork(work *fleetv1beta1.Work) []fleetv1
10261022
}
10271023

10281024
if isEnveloped {
1025+
driftedManifest.ResourceIdentifier.Envelope = &fleetv1beta1.EnvelopeIdentifier{
1026+
Name: envelopObjName,
1027+
Namespace: envelopObjNamespace,
1028+
Type: fleetv1beta1.EnvelopeType(envelopeType),
1029+
}
10291030
klog.V(2).InfoS("Found a drifted enveloped manifest",
10301031
"manifestName", manifestCondition.Identifier.Name,
10311032
"group", manifestCondition.Identifier.Group,
@@ -1037,7 +1038,6 @@ func extractDriftedResourcePlacementsFromWork(work *fleetv1beta1.Work) []fleetv1
10371038
"version", manifestCondition.Identifier.Version, "kind", manifestCondition.Identifier.Kind)
10381039
}
10391040
res = append(res, driftedManifest)
1040-
continue //jump to the next manifest
10411041
}
10421042
return res
10431043
}
@@ -1054,6 +1054,9 @@ func extractDiffedResourcePlacementsFromWork(work *fleetv1beta1.Work) []fleetv1b
10541054
}
10551055
res := make([]fleetv1beta1.DiffedResourcePlacement, 0, len(work.Status.ManifestConditions))
10561056
for _, manifestCondition := range work.Status.ManifestConditions {
1057+
if manifestCondition.DiffDetails == nil {
1058+
continue
1059+
}
10571060
diffedManifest := fleetv1beta1.DiffedResourcePlacement{
10581061
ResourceIdentifier: fleetv1beta1.ResourceIdentifier{
10591062
Group: manifestCondition.Identifier.Group,
@@ -1069,6 +1072,11 @@ func extractDiffedResourcePlacementsFromWork(work *fleetv1beta1.Work) []fleetv1b
10691072
}
10701073

10711074
if isEnveloped {
1075+
diffedManifest.ResourceIdentifier.Envelope = &fleetv1beta1.EnvelopeIdentifier{
1076+
Name: envelopObjName,
1077+
Namespace: envelopObjNamespace,
1078+
Type: fleetv1beta1.EnvelopeType(envelopeType),
1079+
}
10721080
klog.V(2).InfoS("Found a diffed enveloped manifest",
10731081
"manifestName", manifestCondition.Identifier.Name,
10741082
"group", manifestCondition.Identifier.Group,
@@ -1080,7 +1088,6 @@ func extractDiffedResourcePlacementsFromWork(work *fleetv1beta1.Work) []fleetv1b
10801088
"version", manifestCondition.Identifier.Version, "kind", manifestCondition.Identifier.Kind)
10811089
}
10821090
res = append(res, diffedManifest)
1083-
continue //jump to the next manifest
10841091
}
10851092
return res
10861093
}

0 commit comments

Comments
 (0)