add structs.Resources Equals

This commit is contained in:
Lang Martin
2019-03-27 11:01:42 -04:00
parent 8ee02ddd23
commit 8528a2a2a6

View File

@@ -1789,6 +1789,31 @@ func (r *Resources) Merge(other *Resources) {
}
}
// Equals deeply equates the value of this resource with another
func (r *Resources) Equals(o *Resources) bool {
if r == nil && o == nil {
return true
}
if r == nil || o == nil {
return false
}
if r.CPU == o.CPU &&
r.MemoryMB == o.MemoryMB &&
r.DiskMB == o.DiskMB &&
r.IOPS == o.IOPS {
for i, n := range r.Networks {
if !n.Equals(o.Networks[i]) {
return false
}
}
if !DevicesEquals(r.Devices, o.Devices) {
return false
}
return true
}
return false
}
func (r *Resources) Canonicalize() {
// Ensure that an empty and nil slices are treated the same to avoid scheduling
// problems since we use reflect DeepEquals.