This was triggering a defect in noderange. The defect should be fixed, but in the meantime, avoid tripping over it and looking weird anyway.
If even one of a noderange failed to complete the set boot device step, none would progress. Change the behavior so that exit code still happens and processing does stop on timed out nodes, but go ahead and reboot those that were fine.
No point in having '.py' extensions