Refactor out keystoneauth code from neutron
* Split get_neutron_client into three methods: get_neutron_client, get_auth_plugin, and get_keystone_session. * Split register_neutron_opts into two methods: register_neutron_opts and register_keystoneauth_opts * Split list_neutron_opts into two methods: list_neutron_opts and get_keystoneauth_conf_options This allows Fuxi to reuse the keystone code to get a cinder client and generate sample config. Change-Id: I9053b6d1a669d471a4c6b447fb72591a421a8caa
This commit is contained in:
parent
0f118fee78
commit
0439d7b820
@ -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)
|
||||
|
@ -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)]
|
||||
|
||||
|
@ -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,
|
||||
|
@ -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,
|
||||
|
Loading…
Reference in New Issue
Block a user