'Get the duration that should be slept for this iteration.
:return _Sleep: an instance of `_Sleep` with a duration
following an exponential backoff curve.'

def sleep(self):

    Message.log(message_type=u'flocker:node:_loop:delay', log_level=u'INFO', message=u'Intentionally    delaying    the    next    iteration    of    the    convergence    loop    to    avoid    RequestLimitExceeded.', current_wait=self._delay)
    s = _Sleep(delay_seconds=self._delay)
    self._delay *= _UNCONVERGED_BACKOFF_FACTOR
    if (self._delay > self.max_sleep):
        self._delay = self.max_sleep
    return s
