@@ -81,34 +81,25 @@ func ObjectMetaEqual(a, b metav1.ObjectMeta) map[string]any {
8181// CAPIMachineSetStatusEqual compares variables a and b,
8282// and returns a list of differences, or nil if there are none,
8383// for the fields we care about when synchronising MAPI and CAPI Machines.
84- func CAPIMachineSetStatusEqual (a , b clusterv1.MachineSetStatus ) map [string ]any { //nolint:dupl
85- diff := map [string ]any {}
86-
87- if diffConditions := compareCAPIMachineSetConditions (a .Conditions , b .Conditions ); len (diffConditions ) > 0 {
88- diff [".conditions" ] = diffConditions
89- }
90-
91- if diffReadyReplicas := deep .Equal (a .ReadyReplicas , b .ReadyReplicas ); len (diffReadyReplicas ) > 0 {
92- diff [".readyReplicas" ] = diffReadyReplicas
93- }
94-
95- if diffAvailableReplicas := deep .Equal (a .AvailableReplicas , b .AvailableReplicas ); len (diffAvailableReplicas ) > 0 {
96- diff [".availableReplicas" ] = diffAvailableReplicas
97- }
98-
99- if diffFullyLabeledReplicas := deep .Equal (a .FullyLabeledReplicas , b .FullyLabeledReplicas ); len (diffFullyLabeledReplicas ) > 0 {
100- diff [".fullyLabeledReplicas" ] = diffFullyLabeledReplicas
101- }
102-
103- if diffFailureReason := deep .Equal (a .FailureReason , b .FailureReason ); len (diffFailureReason ) > 0 {
104- diff [".failureReason" ] = diffFailureReason
105- }
106-
107- if diffFailureMessage := deep .Equal (a .FailureMessage , b .FailureMessage ); len (diffFailureMessage ) > 0 {
108- diff [".failureMessage" ] = diffFailureMessage
109- }
110-
111- return diff
84+ func CAPIMachineSetStatusEqual (a , b clusterv1.MachineSetStatus ) (map [string ]any , error ) {
85+ // Maybe we can also have it this way:
86+ // differ := NewUnstructuredDiffer(
87+ // WithIgnoreField[clusterv1.MachineSetStatus]("conditions"),
88+ // WithCustomDiff(func(a, b clusterv1.MachineSetStatus) ([]string, error) {
89+ // return compareCAPIMachineSetConditions(a.Conditions, b.Conditions), nil
90+ // }),
91+ // )
92+
93+ differ := UnstructuredDiffer [clusterv1.MachineSetStatus ]{
94+ customDiff : []func (a clusterv1.MachineSetStatus , b clusterv1.MachineSetStatus ) ([]string , error ){
95+ func (a , b clusterv1.MachineSetStatus ) ([]string , error ) {
96+ return compareCAPIMachineSetConditions (a .Conditions , b .Conditions ), nil
97+ },
98+ },
99+ ignoreFields : [][]string {{"conditions" }},
100+ }
101+
102+ return differ .Diff (a , b )
112103}
113104
114105func compareCAPIMachineSetConditions (a , b []clusterv1.Condition ) []string {
@@ -158,7 +149,7 @@ func compareMAPIMachineSetConditions(a, b []mapiv1beta1.Condition) []string {
158149// MAPIMachineSetStatusEqual compares variables a and b,
159150// and returns a list of differences, or nil if there are none,
160151// for the fields we care about when synchronising MAPI and CAPI Machines.
161- func MAPIMachineSetStatusEqual (a , b mapiv1beta1.MachineSetStatus ) map [string ]any { //nolint:dupl
152+ func MAPIMachineSetStatusEqual (a , b mapiv1beta1.MachineSetStatus ) map [string ]any {
162153 diff := map [string ]any {}
163154
164155 if diffConditions := compareMAPIMachineSetConditions (a .Conditions , b .Conditions ); len (diffConditions ) > 0 {
0 commit comments