Merge "support conventional domain name with one or more dot"

This commit is contained in:
Jenkins 2014-04-01 21:44:48 +00:00 committed by Gerrit Code Review
commit d33cd4736f
2 changed files with 29 additions and 4 deletions

View File

@ -39,6 +39,10 @@ CONF = config.CONF
LOG = log.getLogger(__name__)
DOMAIN_CONF_FHEAD = 'keystone.'
DOMAIN_CONF_FTAIL = '.conf'
def moved_to_assignment(f):
name = f.__name__
deprecated = versionutils.deprecated(versionutils.deprecated.ICEHOUSE,
@ -132,12 +136,13 @@ class DomainConfigs(dict):
for r, d, f in os.walk(conf_dir):
for fname in f:
if fname.startswith('keystone.') and fname.endswith('.conf'):
names = fname.split('.')
if len(names) == 3:
if (fname.startswith(DOMAIN_CONF_FHEAD) and
fname.endswith(DOMAIN_CONF_FTAIL)):
if fname.count('.') >= 2:
self._load_config(assignment_api,
[os.path.join(r, fname)],
names[1])
fname[len(DOMAIN_CONF_FHEAD):
-len(DOMAIN_CONF_FTAIL)])
else:
LOG.debug(_('Ignoring file (%s) while scanning domain '
'config directory'),

View File

@ -58,3 +58,23 @@ class TestDomainConfigs(tests.BaseTestCase):
fake_standard_driver = None
domain_config.setup_domain_drivers(fake_standard_driver,
mock_assignment_api)
def test_config_for_dot_name_domain(self):
# Ensure we can get the right domain name which has dots within it
# from filename.
domain_config_filename = os.path.join(self.tmp_dir,
'keystone.abc.def.com.conf')
with open(domain_config_filename, 'w'):
"""Write an empty config file."""
self.addCleanup(os.remove, domain_config_filename)
with mock.patch.object(identity.DomainConfigs,
'_load_config') as mock_load_config:
domain_config = identity.DomainConfigs()
fake_assignment_api = None
fake_standard_driver = None
domain_config.setup_domain_drivers(fake_standard_driver,
fake_assignment_api)
mock_load_config.assert_called_once_with(fake_assignment_api,
[domain_config_filename],
'abc.def.com')