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:
Arx Cruz 2021-04-16 12:08:36 +02:00
parent 33b2a939b5
commit 2e09b75839
2 changed files with 15 additions and 13 deletions

View File

@ -22,16 +22,25 @@ from functools import wraps
from six.moves import urllib
from tempest.lib import exceptions
from tenacity import RetryError
from tenacity import Retrying
from tenacity import retry
from tenacity import stop_after_attempt
from config_tempest import constants as C
from config_tempest.services.base import VersionedService
stop = stop_after_attempt(len(C.DEFAULT_IMAGES))
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,
convert=False):
"""Sets image prefferences.
@ -178,17 +187,10 @@ class ImageService(VersionedService):
image = self._upload_image(image_name, image_dest)
return image['id']
@retry(stop=stop)
def _download_with_retry(self, destination):
retry_attempt = -1
attempts = len(C.DEFAULT_IMAGES)
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
self.retry_attempt += 1
self._download_file(C.DEFAULT_IMAGES[self.retry_attempt], destination)
def _find_image(self, image_id, image_name):
"""Find image by ID or name (the image client doesn't have this).

View File

@ -8,5 +8,5 @@ tempest>=14.0.0 # Apache-2.0
requests>=2.10.0,!=2.12.2 # Apache-2.0
openstacksdk>=0.11.3 # Apache-2.0
oslo.config>=3.23.0 # Apache-2.0
tenacity
tenacity>=5.1.1
PyYAML>=3.12 # MIT