Add support for multiple pre-reservations per project:
When creating a pre-reserve, new -n option to specify a name for the reservation, defaults to "default". All other operations require an -n option to avoid messing with the wrong reservation. You are not allowed to reuse a reservation name in a project, of course. Priorities are probably more important now, we might want to change the default from 0 to some thing higher, and change all the current priorities. For bookkeeping, the nodes table now has a reservation_name slot that is set with the reserved_pid. This allows us to revoke the nodes associated with a specific reservation. Bonus feature is that when setting the reserved_pid via the web interface, we leave the reservation_name null, so those won't ever be revoked by the prereserve command line tool. New feature; when revoking a pre-reserve, we now look to see if nodes being revoked are free and can be assigned to other pre-reserves. We used to not do anything, and so had to wait until that node was allocated and released later, to see if it could move into a pre-reserve. Also a change required by node specific reservations; when we free a node, need to make sure we actually use that node, so have to cycle through all reservations in priority order until it can used. We did not need to do this before.
Showing with 242 additions and 110 deletions