Merge "Remove deprecated scenario image option"
This commit is contained in:
commit
3e690f744e
@ -25,6 +25,7 @@ DEPLOYER_INPUT = os.path.join(os.path.expanduser("~"),
|
|||||||
"tempest-deployer-input.conf")
|
"tempest-deployer-input.conf")
|
||||||
DEFAULT_IMAGE = ("https://download.cirros-cloud.net/0.4.0/"
|
DEFAULT_IMAGE = ("https://download.cirros-cloud.net/0.4.0/"
|
||||||
"cirros-0.4.0-x86_64-disk.img")
|
"cirros-0.4.0-x86_64-disk.img")
|
||||||
|
DEFAULT_IMAGE_DIR = 'etc'
|
||||||
DEFAULT_IMAGE_FORMAT = 'qcow2'
|
DEFAULT_IMAGE_FORMAT = 'qcow2'
|
||||||
|
|
||||||
DEFAULT_FLAVOR_RAM = 128
|
DEFAULT_FLAVOR_RAM = 128
|
||||||
|
@ -89,9 +89,6 @@ def load_basic_defaults(conf):
|
|||||||
("alt_password", "secrete"),
|
("alt_password", "secrete"),
|
||||||
("alt_project_name", "alt_demo")
|
("alt_project_name", "alt_demo")
|
||||||
],
|
],
|
||||||
"scenario": [
|
|
||||||
("img_dir", "etc")
|
|
||||||
],
|
|
||||||
"auth": [
|
"auth": [
|
||||||
("tempest_roles", "_member_"),
|
("tempest_roles", "_member_"),
|
||||||
("admin_username", "admin"),
|
("admin_username", "admin"),
|
||||||
|
@ -86,7 +86,16 @@ class ImageService(VersionedService):
|
|||||||
|
|
||||||
:type conf: TempestConf object
|
:type conf: TempestConf object
|
||||||
"""
|
"""
|
||||||
img_dir = os.path.join(conf.get("scenario", "img_dir"))
|
# the absolute path is necessary for supporting older tempest versions,
|
||||||
|
# which had CONF.scenario.img_dir option, see this line of code:
|
||||||
|
# https://github.com/openstack/tempest/blob/a0ee8b4ccfc512a09
|
||||||
|
# e1ddb135950b767110aae9b/tempest/scenario/manager.py#L534
|
||||||
|
# If the path is not an absolute one, the concatenation of strings ^^
|
||||||
|
# will result in an invalid path
|
||||||
|
# Moreover the absolute path is needed so that users can move the
|
||||||
|
# generated tempest.conf outside of python-tempestconf destination,
|
||||||
|
# otherwise tempest would fail accessing the CONF.scenario.img_file
|
||||||
|
img_dir = os.path.abspath(os.path.join(C.DEFAULT_IMAGE_DIR))
|
||||||
image_path = conf.get_defaulted('image', 'image_path')
|
image_path = conf.get_defaulted('image', 'image_path')
|
||||||
img_path = os.path.join(img_dir,
|
img_path = os.path.join(img_dir,
|
||||||
os.path.basename(image_path))
|
os.path.basename(image_path))
|
||||||
@ -112,8 +121,7 @@ class ImageService(VersionedService):
|
|||||||
image_source=image_path,
|
image_source=image_path,
|
||||||
image_dest=img_path)
|
image_dest=img_path)
|
||||||
# get name of the image_id
|
# get name of the image_id
|
||||||
image_id_name = self._find_image(image_id, '')['name']
|
conf.set('scenario', 'img_file', img_path)
|
||||||
conf.set('scenario', 'img_file', image_id_name)
|
|
||||||
conf.set('compute', 'image_ref', image_id)
|
conf.set('compute', 'image_ref', image_id)
|
||||||
conf.set('compute', 'image_ref_alt', alt_image_id)
|
conf.set('compute', 'image_ref_alt', alt_image_id)
|
||||||
|
|
||||||
|
@ -17,6 +17,7 @@ from unittest import mock
|
|||||||
|
|
||||||
from fixtures import MonkeyPatch
|
from fixtures import MonkeyPatch
|
||||||
|
|
||||||
|
from config_tempest import constants as C
|
||||||
from config_tempest.services.image import ImageService
|
from config_tempest.services.image import ImageService
|
||||||
from config_tempest.tempest_conf import TempestConf
|
from config_tempest.tempest_conf import TempestConf
|
||||||
from config_tempest.tests.base import BaseServiceTest
|
from config_tempest.tests.base import BaseServiceTest
|
||||||
@ -43,9 +44,8 @@ class TestImageService(BaseServiceTest):
|
|||||||
self.Service.convert = False
|
self.Service.convert = False
|
||||||
self.Service.client = self.FakeServiceClient()
|
self.Service.client = self.FakeServiceClient()
|
||||||
|
|
||||||
self.dir = "/img/"
|
C.DEFAULT_IMAGE_DIR = "/img/"
|
||||||
self.conf = TempestConf()
|
self.conf = TempestConf()
|
||||||
self.conf.set("scenario", "img_dir", self.dir)
|
|
||||||
self.conf.set("image", "image_path", "my_image.qcow2")
|
self.conf.set("image", "image_path", "my_image.qcow2")
|
||||||
self.conf.set("image", "http_image", "http_image.qcow2")
|
self.conf.set("image", "http_image", "http_image.qcow2")
|
||||||
|
|
||||||
@ -62,7 +62,7 @@ class TestImageService(BaseServiceTest):
|
|||||||
self.assertEqual(self.conf.get('compute', 'image_ref'), 'id_c')
|
self.assertEqual(self.conf.get('compute', 'image_ref'), 'id_c')
|
||||||
self.assertEqual(self.conf.get('compute', 'image_ref_alt'), 'id_d')
|
self.assertEqual(self.conf.get('compute', 'image_ref_alt'), 'id_d')
|
||||||
self.assertEqual(self.conf.get('scenario', 'img_file'),
|
self.assertEqual(self.conf.get('scenario', 'img_file'),
|
||||||
'my_image.qcow2')
|
'/img/my_image.qcow2')
|
||||||
|
|
||||||
@mock.patch('config_tempest.services.image.ImageService._find_image')
|
@mock.patch('config_tempest.services.image.ImageService._find_image')
|
||||||
@mock.patch('config_tempest.services.image.ImageService._download_file')
|
@mock.patch('config_tempest.services.image.ImageService._download_file')
|
||||||
|
@ -16,16 +16,12 @@ Here is the list of tempest options, which are set by default:
|
|||||||
log_file = tempest.log
|
log_file = tempest.log
|
||||||
|
|
||||||
[identity]
|
[identity]
|
||||||
username = demo
|
username = demo_tempestconf
|
||||||
password = secrete
|
password = secrete
|
||||||
project_name = demo
|
project_name = demo
|
||||||
alt_username = alt_demo
|
alt_username = alt_demo_tempestconf
|
||||||
alt_password = secrete
|
alt_password = secrete
|
||||||
alt_project_name = alt_demo
|
alt_project_name = alt_demo
|
||||||
disable_ssl_certificate_validation = true
|
|
||||||
|
|
||||||
[scenario]
|
|
||||||
img_dir = etc
|
|
||||||
|
|
||||||
[auth]
|
[auth]
|
||||||
; if _member_ role is not present in the system, python-tempestconf
|
; if _member_ role is not present in the system, python-tempestconf
|
||||||
|
@ -0,0 +1,8 @@
|
|||||||
|
---
|
||||||
|
upgrade:
|
||||||
|
- |
|
||||||
|
python-tempestconf follows tempest's deprecation of
|
||||||
|
``CONF.scenario.img_dir`` option and removes that option from the
|
||||||
|
automatic tempest.conf generation.
|
||||||
|
python-tempestconf will set an absolute path to the image in
|
||||||
|
``CONF.scenario.img_file`` option from now on.
|
Loading…
Reference in New Issue
Block a user