Skip to content

Commit 0bac762

Browse files
moved some logging messages around, added random delay
1 parent 1b70b2b commit 0bac762

File tree

2 files changed

+8
-5
lines changed

2 files changed

+8
-5
lines changed

SoftLayer/managers/vs.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import datetime
99
import itertools
1010
import logging
11+
import random
1112
import socket
1213
import time
1314
import warnings
@@ -406,8 +407,7 @@ def wait_for_transaction(self, instance_id, limit, delay=10):
406407
:param int delay: The number of seconds to sleep before checks. Defaults to 10.
407408
"""
408409

409-
return self.wait_for_ready(instance_id, limit, delay=delay,
410-
pending=True)
410+
return self.wait_for_ready(instance_id, limit, delay=delay, pending=True)
411411

412412
def wait_for_ready(self, instance_id, limit, delay=10, pending=False):
413413
"""Determine if a VS is ready and available.
@@ -457,14 +457,15 @@ def wait_for_ready(self, instance_id, limit, delay=10, pending=False):
457457
not reloading,
458458
not outstanding]):
459459
return True
460+
LOGGER.info("%s not ready.", str(instance_id))
460461
except exceptions.SoftLayerAPIError as exception:
461-
delay = delay * 2
462+
delay = (delay * 2) + random.randint(0, 9)
462463
LOGGER.info('Exception: %s', str(exception))
463-
LOGGER.info('Auto retry in %s seconds', str(delay))
464464

465465
now = time.time()
466466
if now >= until:
467467
return False
468+
LOGGER.info('Auto retry in %s seconds', str(min(delay, until - now)))
468469
time.sleep(min(delay, until - now))
469470

470471
def verify_create_instance(self, **kwargs):

tests/managers/vs_tests.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -885,13 +885,15 @@ def test_iter_20_incomplete(self, _sleep, _time):
885885
_sleep.assert_has_calls([mock.call(10)])
886886

887887
@mock.patch('SoftLayer.managers.vs.VSManager.get_instance')
888+
@mock.patch('random.randint')
888889
@mock.patch('time.time')
889890
@mock.patch('time.sleep')
890-
def test_exception_from_api(self, _sleep, _time, vs):
891+
def test_exception_from_api(self, _sleep, _time, _random, vs):
891892
"""Tests escalating scale back when an excaption is thrown"""
892893
self.guestObject.return_value = {'activeTransaction': {'id': 1}}
893894
vs.side_effect = exceptions.TransportError(104, "Its broken")
894895
_time.side_effect = [0, 0, 2, 6, 14, 20, 100]
896+
_random.side_effect = [0, 0, 0, 0, 0]
895897
value = self.vs.wait_for_ready(1, 20, delay=1)
896898
_sleep.assert_has_calls([
897899
mock.call(2),

0 commit comments

Comments
 (0)