Use URIOpt for options taking URI/URL

... so that tempest can detect malformed values and give early feedback
to users.

note:
URIOpt was added in oslo.config 3.12, and the schemes argument was
added in oslo.config 3.18, so we don't have to bump the minimum version
of oslo.config from 5.2.0.

Change-Id: Ic6bddb061957bef8726a7c21e4eaa66ac471f01b
This commit is contained in:
Takashi Kajinami 2024-01-24 11:09:53 +09:00
parent 1da7a33099
commit 0ed15dcc68
2 changed files with 14 additions and 11 deletions

View File

@ -126,9 +126,11 @@ IdentityGroup = [
default=None,
help='Specify a CA bundle file to use in verifying a '
'TLS (https) server certificate.'),
cfg.StrOpt('uri',
cfg.URIOpt('uri',
schemes=['http', 'https'],
help="Full URI of the OpenStack Identity API (Keystone), v2"),
cfg.StrOpt('uri_v3',
cfg.URIOpt('uri_v3',
schemes=['http', 'https'],
help='Full URI of the OpenStack Identity API (Keystone), v3'),
cfg.StrOpt('auth_version',
default='v3',
@ -862,8 +864,9 @@ dashboard_group = cfg.OptGroup(name="dashboard",
title="Dashboard options")
DashboardGroup = [
cfg.StrOpt('dashboard_url',
cfg.URIOpt('dashboard_url',
default='http://localhost/',
schemes=['http', 'https'],
help="Where the dashboard can be found"),
cfg.BoolOpt('disable_ssl_certificate_validation',
default=False,

View File

@ -37,7 +37,7 @@ class TestCredentialsFactory(base.TestCase):
fake_config.FakePrivate)
def test_get_dynamic_provider_params_creds_v2(self):
expected_uri = 'EXPECTED_V2_URI'
expected_uri = 'http://v2.identy.example.com'
cfg.CONF.set_default('uri', expected_uri, group='identity')
admin_creds = fake_credentials.FakeCredentials()
params = cf.get_dynamic_provider_params('v2', admin_creds=admin_creds)
@ -48,7 +48,7 @@ class TestCredentialsFactory(base.TestCase):
self.assertEqual(expected_params[key], params[key])
def test_get_dynamic_provider_params_creds_v3(self):
expected_uri = 'EXPECTED_V3_URI'
expected_uri = 'http://v3.identy.example.com'
cfg.CONF.set_default('uri_v3', expected_uri, group='identity')
admin_creds = fake_credentials.FakeCredentials()
params = cf.get_dynamic_provider_params('v3', admin_creds=admin_creds)
@ -76,14 +76,14 @@ class TestCredentialsFactory(base.TestCase):
fill_in=True, identity_version=expected_identity_version)
def test_get_preprov_provider_params_creds_v2(self):
expected_uri = 'EXPECTED_V2_URI'
expected_uri = 'http://v2.identy.example.com'
cfg.CONF.set_default('uri', expected_uri, group='identity')
params = cf.get_preprov_provider_params('v2')
self.assertIn('identity_uri', params)
self.assertEqual(expected_uri, params['identity_uri'])
def test_get_preprov_provider_params_creds_v3(self):
expected_uri = 'EXPECTED_V3_URI'
expected_uri = 'http://v3.identy.example.com'
cfg.CONF.set_default('uri_v3', expected_uri, group='identity')
params = cf.get_preprov_provider_params('v3')
self.assertIn('identity_uri', params)
@ -237,7 +237,7 @@ class TestCredentialsFactory(base.TestCase):
@mock.patch('tempest.lib.auth.get_credentials')
def test_get_credentials_v2(self, mock_auth_get_credentials):
expected_uri = 'V2_URI'
expected_uri = 'http://v2.identity.example.com'
expected_result = 'my_creds'
mock_auth_get_credentials.return_value = expected_result
cfg.CONF.set_default('uri', expected_uri, 'identity')
@ -252,7 +252,7 @@ class TestCredentialsFactory(base.TestCase):
@mock.patch('tempest.lib.auth.get_credentials')
def test_get_credentials_v3_no_domain(self, mock_auth_get_credentials):
expected_uri = 'V3_URI'
expected_uri = 'https://v3.identity.exmaple.com'
expected_result = 'my_creds'
expected_domain = 'my_domain'
mock_auth_get_credentials.return_value = expected_result
@ -272,7 +272,7 @@ class TestCredentialsFactory(base.TestCase):
@mock.patch('tempest.lib.auth.get_credentials')
def test_get_credentials_v3_domain(self, mock_auth_get_credentials):
expected_uri = 'V3_URI'
expected_uri = 'https://v3.identity.exmaple.com'
expected_result = 'my_creds'
expected_domain = 'my_domain'
mock_auth_get_credentials.return_value = expected_result
@ -291,7 +291,7 @@ class TestCredentialsFactory(base.TestCase):
@mock.patch('tempest.lib.auth.get_credentials')
def test_get_credentials_v3_system(self, mock_auth_get_credentials):
expected_uri = 'V3_URI'
expected_uri = 'https://v3.identity.exmaple.com'
expected_result = 'my_creds'
mock_auth_get_credentials.return_value = expected_result
cfg.CONF.set_default('uri_v3', expected_uri, 'identity')