summaryrefslogtreecommitdiff
path: root/ironic/common/image_service.py
diff options
context:
space:
mode:
authorGalyna Zholtkevych <gzholtkevych@mirantis.com>2016-09-16 11:00:29 +0300
committerGalyna Zholtkevych <gzholtkevych@mirantis.com>2017-01-19 10:06:13 +0200
commit22dcfc65eebb6dcafee8bf3afe5749cf4e7c7f20 (patch)
tree207712655e8a7feaf40c36af90039844751da80b /ironic/common/image_service.py
parent5f015dc4dd580992fa649100e1affffe5ace7a88 (diff)
downloadironic-22dcfc65eebb6dcafee8bf3afe5749cf4e7c7f20.tar.gz
Validate the generated swift temp url
During deployment, a swift temporary URL may be generated, to be used for getting the image for an instance. This validates the generated URL to make sure that it can be accessed. If validation fails, an exception is raised and the error is logged. This is helpful when diagnosing the problem with a deployment. Change-Id: I1f62bc9b5646d173ec6a3beb6282a5e6002c2030 Closes-Bug: 1512186
Diffstat (limited to 'ironic/common/image_service.py')
-rw-r--r--ironic/common/image_service.py9
1 files changed, 6 insertions, 3 deletions
diff --git a/ironic/common/image_service.py b/ironic/common/image_service.py
index 6016ac11e..d54afa8b4 100644
--- a/ironic/common/image_service.py
+++ b/ironic/common/image_service.py
@@ -100,23 +100,26 @@ class BaseImageService(object):
class HttpImageService(BaseImageService):
"""Provides retrieval of disk images using HTTP."""
- def validate_href(self, image_href):
+ def validate_href(self, image_href, secret=False):
"""Validate HTTP image reference.
:param image_href: Image reference.
+ :param secret: Specify if image_href being validated should not be
+ shown in exception message.
:raises: exception.ImageRefValidationFailed if HEAD request failed or
returned response code not equal to 200.
:returns: Response to HEAD request.
"""
+ output_url = 'secreturl' if secret else image_href
try:
response = requests.head(image_href)
if response.status_code != http_client.OK:
raise exception.ImageRefValidationFailed(
- image_href=image_href,
+ image_href=output_url,
reason=_("Got HTTP code %s instead of 200 in response to "
"HEAD request.") % response.status_code)
except requests.RequestException as e:
- raise exception.ImageRefValidationFailed(image_href=image_href,
+ raise exception.ImageRefValidationFailed(image_href=output_url,
reason=e)
return response