Updating download_with_retry function
Older versions of tenacity doesn't support iterator in the Retrying class, so updating the function to use the decorator instead, so we can keep compatibility. Change-Id: I33fa112975f355cf4f4396ec331200b15a366161
This commit is contained in:
parent
33b2a939b5
commit
2e09b75839
@ -22,16 +22,25 @@ from functools import wraps
|
|||||||
|
|
||||||
from six.moves import urllib
|
from six.moves import urllib
|
||||||
from tempest.lib import exceptions
|
from tempest.lib import exceptions
|
||||||
from tenacity import RetryError
|
from tenacity import retry
|
||||||
from tenacity import Retrying
|
|
||||||
from tenacity import stop_after_attempt
|
from tenacity import stop_after_attempt
|
||||||
|
|
||||||
from config_tempest import constants as C
|
from config_tempest import constants as C
|
||||||
from config_tempest.services.base import VersionedService
|
from config_tempest.services.base import VersionedService
|
||||||
|
|
||||||
|
|
||||||
|
stop = stop_after_attempt(len(C.DEFAULT_IMAGES))
|
||||||
|
|
||||||
|
|
||||||
class ImageService(VersionedService):
|
class ImageService(VersionedService):
|
||||||
|
|
||||||
|
def __init__(self, name, s_type, service_url, token,
|
||||||
|
disable_ssl_validation, client=None, **kwargs):
|
||||||
|
super(ImageService, self).__init__(
|
||||||
|
name, s_type, service_url, token, disable_ssl_validation,
|
||||||
|
client, **kwargs)
|
||||||
|
self.retry_attempt = -1
|
||||||
|
|
||||||
def set_image_preferences(self, disk_format, non_admin, no_rng=False,
|
def set_image_preferences(self, disk_format, non_admin, no_rng=False,
|
||||||
convert=False):
|
convert=False):
|
||||||
"""Sets image prefferences.
|
"""Sets image prefferences.
|
||||||
@ -178,17 +187,10 @@ class ImageService(VersionedService):
|
|||||||
image = self._upload_image(image_name, image_dest)
|
image = self._upload_image(image_name, image_dest)
|
||||||
return image['id']
|
return image['id']
|
||||||
|
|
||||||
|
@retry(stop=stop)
|
||||||
def _download_with_retry(self, destination):
|
def _download_with_retry(self, destination):
|
||||||
retry_attempt = -1
|
self.retry_attempt += 1
|
||||||
attempts = len(C.DEFAULT_IMAGES)
|
self._download_file(C.DEFAULT_IMAGES[self.retry_attempt], destination)
|
||||||
try:
|
|
||||||
for attempt in Retrying(stop=stop_after_attempt(attempts)):
|
|
||||||
retry_attempt += 1
|
|
||||||
with attempt:
|
|
||||||
self._download_file(C.DEFAULT_IMAGES[retry_attempt],
|
|
||||||
destination)
|
|
||||||
except RetryError:
|
|
||||||
pass
|
|
||||||
|
|
||||||
def _find_image(self, image_id, image_name):
|
def _find_image(self, image_id, image_name):
|
||||||
"""Find image by ID or name (the image client doesn't have this).
|
"""Find image by ID or name (the image client doesn't have this).
|
||||||
|
@ -8,5 +8,5 @@ tempest>=14.0.0 # Apache-2.0
|
|||||||
requests>=2.10.0,!=2.12.2 # Apache-2.0
|
requests>=2.10.0,!=2.12.2 # Apache-2.0
|
||||||
openstacksdk>=0.11.3 # Apache-2.0
|
openstacksdk>=0.11.3 # Apache-2.0
|
||||||
oslo.config>=3.23.0 # Apache-2.0
|
oslo.config>=3.23.0 # Apache-2.0
|
||||||
tenacity
|
tenacity>=5.1.1
|
||||||
PyYAML>=3.12 # MIT
|
PyYAML>=3.12 # MIT
|
||||||
|
Loading…
x
Reference in New Issue
Block a user