Added sched_reserve. Works kind of like sched_reload, but for a reservation.
Rob and I noticed that when we need to do maintainance to a node, its hard to grab it when it gets freed before it gets taken again. So this will allow admins to set up nodes so that when the current owner frees them, they immediately are moved into another experiment. For instance, if I need to do an upgrade on all the machines in the testbed, I can do: sched_reserve testbed down pc1 pc2 pc3 [...] pc40 and it will immediately reserve any free nodes, skip any that are already in testbed/down, and add an entry to the next_reserve table for any nodes that are already reserved. Then nfree checks for entries in the next_reserve table before it lets any nodes go (much like it does for the reloads table), and moves them into the expt before it can get reserved again. So we can guarantee that the next time a node is freed, it will be saved for us. Note that this can also be useful to accumulate nodes for a large experiment, since you can make sure you get them as soon as the current owner is done.
Showing with 154 additions and 16 deletions