package status import ( "github.com/google/go-cmp/cmp" "github.com/google/go-cmp/cmp/cmpopts" "edge-infra.dev/pkg/edge/api/graph/model" ) // StatusesEqual performs a deep comparison of two slices of VirtualMachineStatus objects, // including their Conditions func StatusesEqual(statuses1, statuses2 []*model.VirtualMachineStatus) bool { return cmp.Equal( statuses1, statuses2, cmpopts.SortSlices(func(s1, s2 *model.VirtualMachineStatus) bool { if s1.Name != s2.Name { return s1.Name < s2.Name } if s1.Namespace != s2.Namespace { return s1.Namespace < s2.Namespace } return s1.ClusterEdgeID < s2.ClusterEdgeID }), cmpopts.SortSlices(func(c1, c2 *model.ObjStatusCondition) bool { return c1.Type < c2.Type }), cmpopts.EquateEmpty(), ) }