//
// * len(Order)==0
//
-// * there are no filters other than the "uuid = ..." and "uuid in
-// ..." filters mentioned above.
+// * Each filter must be either "uuid = ..." or "uuid in [...]".
//
// * The maximum possible response size (total number of objects that
// could potentially be matched by all of the specified filters)
}
}
+ // Collate UUIDs in matchAllFilters by remote cluster ID --
+ // e.g., todoByRemote["aaaaa"]["aaaaa-4zz18-000000000000000"]
+ // will be true -- and count the total number of UUIDs we're
+ // filtering on, so we can compare it to our max page size
+ // limit.
nUUIDs := 0
todoByRemote := map[string]map[string]bool{}
for uuid := range matchAllFilters {
if len(todoByRemote) > 1 {
if cannotSplit {
- return httpErrorf(http.StatusBadRequest, "cannot execute federated list query with filters other than 'uuid = ...' and 'uuid in [...]'")
+ return httpErrorf(http.StatusBadRequest, "cannot execute federated list query: each filter must be either 'uuid = ...' or 'uuid in [...]'")
}
if opts.Count != "none" {
return httpErrorf(http.StatusBadRequest, "cannot execute federated list query unless count==\"none\"")