fee46c25bc
Currently, the nodes are locked in the scheduler/pipeline manager before the actual build is created in the executor client. When the nodes are locked, the corresponding NodeRequest is also deleted. With this change, the executor will lock the nodes directly before starting the build and unlock them when the build is completed. To keep the order of events intact, the nodepool.acceptNodes() method is split up into two: 1. nodepool.acceptNodeRequest() does most of the old acceptNodes() method except for locking the nodes and deleting the node request. It is called on the scheduler side when the NodesProvisionedEvent is handled (which is also where acceptNodes() was previously called). 2. nodepool.acceptNodes() is now called on the executor side when the job is started. It locks the nodes and deletes the node request in ZooKeeper. Finally, it's also necessary to move the autohold processing to the executor, as this requires a lock on the node. To allow processing of autoholds, the executor now also determines the build attempts and sets the RETRY_LIMIT result if necessary. Change-Id: I7392ce47e84dcfb8079c16e34e0ed2062ebf4136 |
||
---|---|---|
.. | ||
__init__.py | ||
dependent.py | ||
independent.py | ||
serial.py | ||
shared.py | ||
supercedent.py |