12018: Simplify ListAll()
authorLucas Di Pentima <ldipentima@veritasgenetics.com>
Fri, 20 Oct 2017 02:32:59 +0000 (23:32 -0300)
committerLucas Di Pentima <ldipentima@veritasgenetics.com>
Fri, 20 Oct 2017 02:32:59 +0000 (23:32 -0300)
Arvados-DCO-1.1-Signed-off-by: Lucas Di Pentima <ldipentima@veritasgenetics.com>

tools/arv-sync-groups/arv-sync-groups.go

index 9cddae4bbc217ac3d03d77d56823f8d1bfe4d433..d7a2bdaca6ea6eee759040f7e6bd0330a06d2d21 100644 (file)
@@ -502,25 +502,25 @@ func doMain() error {
        return nil
 }
 
-// ListAll : Adds all objects of type 'resource' to the 'output' list
+// ListAll : Adds all objects of type 'resource' to the 'allItems' list
 func ListAll(arv *arvadosclient.ArvadosClient, resource string, parameters arvadosclient.Dict, rl resourceList) (allItems []interface{}, err error) {
-       if _, ok := parameters["limit"]; !ok {
-               // Default limit value: use the maximum page size the server allows
-               parameters["limit"] = 1<<31 - 1
-       }
-       offset := 0
-       itemsAvailable := parameters["limit"].(int)
-       for len(allItems) < itemsAvailable {
-               parameters["offset"] = offset
+       // Use the maximum page size the server allows
+       limit := 1<<31 - 1
+       parameters["limit"] = limit
+       parameters["offset"] = 0
+       parameters["order"] = "uuid"
+       for {
                err = arv.List(resource, parameters, &rl)
                if err != nil {
                        return allItems, err
                }
+               if len(rl.items()) == 0 {
+                       break
+               }
                for _, i := range rl.items() {
                        allItems = append(allItems, i)
                }
-               offset = rl.offset() + len(rl.items())
-               itemsAvailable = rl.itemsAvailable()
+               parameters["offset"] = rl.offset() + len(rl.items())
        }
        return allItems, nil
 }