|
8 | 8 | import datetime
|
9 | 9 | import itertools
|
10 | 10 | import logging
|
| 11 | +import random |
11 | 12 | import socket
|
12 | 13 | import time
|
13 | 14 | import warnings
|
@@ -406,8 +407,7 @@ def wait_for_transaction(self, instance_id, limit, delay=10):
|
406 | 407 | :param int delay: The number of seconds to sleep before checks. Defaults to 10.
|
407 | 408 | """
|
408 | 409 |
|
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) |
411 | 411 |
|
412 | 412 | def wait_for_ready(self, instance_id, limit, delay=10, pending=False):
|
413 | 413 | """Determine if a VS is ready and available.
|
@@ -457,14 +457,15 @@ def wait_for_ready(self, instance_id, limit, delay=10, pending=False):
|
457 | 457 | not reloading,
|
458 | 458 | not outstanding]):
|
459 | 459 | return True
|
| 460 | + LOGGER.info("%s not ready.", str(instance_id)) |
460 | 461 | except exceptions.SoftLayerAPIError as exception:
|
461 |
| - delay = delay * 2 |
| 462 | + delay = (delay * 2) + random.randint(0, 9) |
462 | 463 | LOGGER.info('Exception: %s', str(exception))
|
463 |
| - LOGGER.info('Auto retry in %s seconds', str(delay)) |
464 | 464 |
|
465 | 465 | now = time.time()
|
466 | 466 | if now >= until:
|
467 | 467 | return False
|
| 468 | + LOGGER.info('Auto retry in %s seconds', str(min(delay, until - now))) |
468 | 469 | time.sleep(min(delay, until - now))
|
469 | 470 |
|
470 | 471 | def verify_create_instance(self, **kwargs):
|
|
0 commit comments