Fix use of urlparse.urljoin

This method only joins the first two parameters, the 3rd parameter
is a bool "allow_fragments". Passing in "object_name" as the third
param resulted in it getting lost. Use os.path.join instead.

Change-Id: I49506b2671465bf43ae346225919d4a0e6767b20
(cherry picked from commit 59e766b3fd)
This commit is contained in:
Derek Higgins 2019-12-12 15:09:46 +00:00 committed by Julia Kreger
parent cfa58afd8f
commit 3e39d7becb
3 changed files with 8 additions and 3 deletions

View File

@ -283,7 +283,7 @@ class RedfishVirtualMediaBoot(base.BootInterface):
shutil.copyfile(image_file, published_file)
image_url = urlparse.urljoin(
image_url = os.path.join(
CONF.deploy.http_url, cls.IMAGE_SUBDIR, object_name)
image_url = cls._append_filename_param(

View File

@ -249,7 +249,7 @@ class RedfishVirtualMediaBootTestCase(db_base.DbTestCase):
url = task.driver.boot._publish_image('file.iso', 'boot.iso')
self.assertEqual(
'http://localhost/redfish?filename=file.iso', url)
'http://localhost/redfish/boot.iso?filename=file.iso', url)
mock_mkdir.assert_called_once_with('/httpboot/redfish', 0x755)
mock_link.assert_called_once_with(
@ -271,7 +271,7 @@ class RedfishVirtualMediaBootTestCase(db_base.DbTestCase):
url = task.driver.boot._publish_image('file.iso', 'boot.iso')
self.assertEqual(
'http://localhost/redfish?filename=file.iso', url)
'http://localhost/redfish/boot.iso?filename=file.iso', url)
mock_mkdir.assert_called_once_with('/httpboot/redfish', 0x755)

View File

@ -0,0 +1,5 @@
---
fixes:
- |
Fix path used to virtual media iso, when served over
local HTTP server([redfish]use_swift=false).