// TasksEqual determines if the lhs and rhs tasks are equal for the definition // of having the same family, version, statuses, and equal containers. func TasksEqual(lhs, rhs *api.Task) bool { if lhs == rhs { return true } if lhs.Arn != rhs.Arn { return false } if lhs.Family != rhs.Family || lhs.Version != rhs.Version { return false } for _, left := range lhs.Containers { right, ok := rhs.ContainerByName(left.Name) if !ok { return false } if !ContainersEqual(left, right) { return false } } if lhs.DesiredStatus != rhs.DesiredStatus { return false } if lhs.GetKnownStatus() != rhs.GetKnownStatus() { return false } return true }