4844: Node Manager doesn't treat min_nodes as min_nodes_idle.
authorBrett Smith <brett@curoverse.com>
Fri, 19 Dec 2014 17:09:17 +0000 (12:09 -0500)
committerBrett Smith <brett@curoverse.com>
Fri, 19 Dec 2014 17:09:17 +0000 (12:09 -0500)
commitfb2099b1de222b4aa05dd2ce12654ff32da3c18d
tree6045359444d09a6643d1c48102c033904d6a2070
parent2bf83ac52cf6af212044ec6f0d3c77b5713bb664
4844: Node Manager doesn't treat min_nodes as min_nodes_idle.

There's a bad interaction between the past bugfixes to (a) implement
min_nodes, and (b) boot new nodes when existing nodes are busy.
Because min_nodes has been implemented at the server wishlist level in
the past, the daemon can't distinguish between "nodes requested to
fulfill min_nodes" and "nodes requested to fulfill jobs."

This commit puts all the responsibility for enforcing min_nodes in the
daemon, so that the server wishlist always represents real job
requirements.  This lets the daemon correctly decide whether or not to
boot a new node when >= min_nodes are busy.
services/nodemanager/arvnodeman/daemon.py
services/nodemanager/arvnodeman/jobqueue.py
services/nodemanager/arvnodeman/launcher.py
services/nodemanager/tests/test_daemon.py
services/nodemanager/tests/test_jobqueue.py