Make config parser case sensitivity in rally-openstack

rally verify start will convert config options to lowercase
by using configparser, which cannot set the right config
for oslo.config.

Options in config file should be case sensitive, some projects
like octavia-tempest-plugin can't set some value as expected:
[load_balancer]
RBAC_test_type = owner_or_admin

Use `conf.optionxform = str` to prevent case transformation[1].

[1] https://docs.python.org/3/library/configparser.html

Change-Id: I553c962d40ab73e50c1e3f5b229ab553c17fda55
Closes-Bug: #1881456
This commit is contained in:
Xing Zhang 2020-05-31 11:08:15 +08:00
parent 918a2c4b02
commit 7b5bb0b436
No known key found for this signature in database
GPG Key ID: 43F80E57B910E3B0
4 changed files with 14 additions and 0 deletions

View File

@ -16,6 +16,17 @@ Changelog
.. Release notes for existing releases are MUTABLE! If there is something that
was missed or can be improved, feel free to change it!
[unreleased]
------------
Fixed
~~~~~
* [verification component] Make config parser case sensitivity in
TempestContext and TempestConfigfileManager.
`Launchpad-bug #1881456 <https://launchpad.net/bugs/1881456>`_
[2.0.0] - 2020-05-08
--------------------

View File

@ -49,6 +49,7 @@ class TempestConfigfileManager(object):
self.available_services = self.clients.services().values()
self.conf = configparser.ConfigParser(allow_no_value=True)
self.conf.optionxform = str
def _get_service_type_by_service_name(self, service_name):
for s_type, s_name in self.clients.services().items():

View File

@ -53,6 +53,7 @@ class TempestContext(context.VerifierContext):
self.available_services = self.clients.services().values()
self.conf = configparser.ConfigParser(allow_no_value=True)
self.conf.optionxform = str
self.conf_path = self.verifier.manager.configfile
self.data_dir = self.verifier.manager.home_dir

View File

@ -111,6 +111,7 @@ class Rally(object):
if self.config_opts:
self.config_filename = os.path.join(self.tmp_dir, "conf")
config = configparser.RawConfigParser()
config.optionxform = str
for section, opts in self.config_opts.items():
if section.lower() != "default":
config.add_section(section)