186708e883
Updating each machine in a fully self-contained way makes it easy to add per-machine and (possibly) per-application post-upgrade function calls. This still performs the actual series upgrades fully in parallel but will, for example, start the do-release-upgrade on one unit while another is still performing the initial dist-upgrade