def NextAttempt(self):
    try:
      timeout = self._timeouts.next()
    except StopIteration:
      # No more timeouts, do blocking acquire
      timeout = None

    if timeout is not None:
      # Add a small variation (-/+ 5%) to timeout. This helps in situations
      # where two or more jobs are fighting for the same lock(s).
      variation_range = timeout * 0.1
      timeout += ((self._random_fn() * variation_range) -
                  (variation_range * 0.5))

    return timeout
Returns the timeout for the next attempt.
dataset/ETHPy150Open ganeti/ganeti/lib/mcpu.py/LockAttemptTimeoutStrategy.NextAttempt