Merge "Refactor out keystoneauth code from neutron"

This commit is contained in:
Jenkins 2017-01-02 07:38:18 +00:00 committed by Gerrit Code Review
commit 5c3f27b66e
4 changed files with 53 additions and 11 deletions

View File

@ -84,8 +84,12 @@ binding_group = cfg.OptGroup(
help=_('Configuration options for container interface binding.'))
def register_keystoneauth_opts(conf, conf_group):
ks_loading.register_session_conf_options(conf, conf_group)
ks_loading.register_auth_conf_options(conf, conf_group)
def register_neutron_opts(conf):
conf.register_group(neutron_group)
conf.register_opts(neutron_opts, group=neutron_group)
ks_loading.register_session_conf_options(conf, neutron_group.name)
ks_loading.register_auth_conf_options(conf, neutron_group.name)
register_keystoneauth_opts(conf, neutron_group.name)

View File

@ -37,8 +37,8 @@ _kuryr_opts = [
]
def list_neutron_opts():
opt_list = copy.deepcopy(config.neutron_opts)
def get_keystoneauth_conf_options():
opt_list = []
opt_list.insert(0, ks_loading.get_auth_common_conf_options()[0])
opt_list += ks_loading.get_session_conf_options()
# NOTE(apuimedo): There are a lot of auth plugins, we just generate the
@ -47,6 +47,12 @@ def list_neutron_opts():
for plugin_option in ks_loading.get_auth_plugin_conf_options(name):
if all(option.name != plugin_option.name for option in opt_list):
opt_list.append(plugin_option)
return opt_list
def list_neutron_opts():
opt_list = copy.deepcopy(config.neutron_opts)
opt_list += get_keystoneauth_conf_options()
opt_list.sort(key=operator.attrgetter('name'))
return [(config.neutron_group, opt_list)]

View File

@ -24,11 +24,21 @@ DOCKER_NETNS_BASE = '/var/run/docker/netns'
PORT_POSTFIX = 'port'
def get_auth_plugin(conf_group):
return ks_loading.load_auth_from_conf_options(
cfg.CONF, conf_group)
def get_keystone_session(conf_group, auth_plugin):
return ks_loading.load_session_from_conf_options(cfg.CONF,
conf_group,
auth=auth_plugin)
def get_neutron_client(*args, **kwargs):
conf_group = kuryr_config.neutron_group.name
auth_plugin = ks_loading.load_auth_from_conf_options(cfg.CONF, conf_group)
session = ks_loading.load_session_from_conf_options(cfg.CONF, conf_group,
auth=auth_plugin)
auth_plugin = get_auth_plugin(conf_group)
session = get_keystone_session(conf_group, auth_plugin)
endpoint_type = getattr(getattr(cfg.CONF, conf_group), 'endpoint_type')
return client.Client(session=session,

View File

@ -37,16 +37,38 @@ class TestKuryrUtils(base.TestCase):
self.assertIn(name_prefix, generated_neutron_subnetpool_name)
self.assertIn(fake_subnet_cidr, generated_neutron_subnetpool_name)
@mock.patch('neutronclient.v2_0.client.Client')
@mock.patch('keystoneauth1.loading.load_auth_from_conf_options')
def test_get_auth_plugin(self, mock_auth_loader):
conf_group = 'neutron'
fake_auth = 'Fake_auth_plugin'
mock_auth_loader.return_value = fake_auth
utils.get_auth_plugin(conf_group)
mock_auth_loader.assert_called_once_with(cfg.CONF, conf_group)
@mock.patch('keystoneauth1.loading.load_session_from_conf_options')
def test_get_neutron_client(self, mock_session_loader, mock_auth_loader,
mock_client):
def test_get_keystone_session(self, mock_session_loader):
conf_group = 'neutron'
fake_auth = 'Fake_auth_plugin'
fake_session = 'Fake_session_plugin'
mock_auth_loader.return_value = fake_auth
mock_session_loader.return_value = fake_session
utils.get_keystone_session(conf_group, fake_auth)
mock_session_loader.assert_called_once_with(cfg.CONF, conf_group,
auth=fake_auth)
@mock.patch('neutronclient.v2_0.client.Client')
@mock.patch('kuryr.lib.utils.get_auth_plugin')
@mock.patch('kuryr.lib.utils.get_keystone_session')
def test_get_neutron_client(self, mock_get_keystone_session,
mock_get_auth_plugin, mock_client):
fake_auth = 'Fake_auth_plugin'
fake_session = 'Fake_session_plugin'
default_conf_group = 'neutron'
mock_get_auth_plugin.return_value = fake_auth
mock_get_keystone_session.return_value = fake_session
utils.get_neutron_client()
mock_get_keystone_session.assert_called_once_with(default_conf_group,
fake_auth)
mock_get_auth_plugin.assert_called_once_with(default_conf_group)
neutron_group = getattr(cfg.CONF, kuryr_config.neutron_group.name)
mock_client.assert_called_once_with(
auth=fake_auth,