Separated from #1411 . This PR moves version checking from __init__ into _bootstrap . This means that if a cluster is down and bootstrapping fails, version checking will not cause an exception to be raised immediately. Instead, we wait until the initial bootstrap succeeds and then run version checks. In order to handle this I've changed the "unset" version from None to (0, 0). This also allows us to simplify version checking code internally. (0, 0) should cause us to use the lowest available version (likely 0.8.2) if needed but still flag that version checking has not yet happened.
Separated from #1411 . This PR moves version checking from
__init__
into_bootstrap
. This means that if a cluster is down and bootstrapping fails, version checking will not cause an exception to be raised immediately. Instead, we wait until the initial bootstrap succeeds and then run version checks. In order to handle this I've changed the "unset" version fromNone
to(0, 0)
. This also allows us to simplify version checking code internally.(0, 0)
should cause us to use the lowest available version (likely 0.8.2) if needed but still flag that version checking has not yet happened.This change is