         exclude : []
         only  : undefined      # if given, *ONLY* migrate projects in this list.
         reverse : false
+        sort_by_time : true    # if true, stort by time (with newest first)
         loop  : 0              # if >=1; call it again with same inputs once it finishes
         cb    : undefined      # cb(err, {project_id:errors when migrating that project})
 

            get_snapshots
                project_id : opts.project_id
                cb         : (err, snapshots) ->
                    # randomize so not all in same DC0...
                    v = ([snaps[0], Math.random(), host] for host, snaps of snapshots when snaps?.length >=1)
                    v.sort()
                    v.reverse()
                    v = (x[2] for x in v when x[2] != host)
                    if host?
                        v = [host].concat(v)
                    dbg("v = #{misc.to_json(v)}")

        end : 10
        limit : 1
        qlimit : 1000000
        errors : required
        cb : undefined
    dbg = (m) -> winston.debug("bup_set_quotas: #{m}")
    dbg()
