Merge "Updating download_with_retry function"

This commit is contained in:
Zuul 2021-04-26 21:57:22 +00:00 committed by Gerrit Code Review
commit f88961eb59
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 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).

View File

@ -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