diff --git a/etc/kuryr-config-generator.conf b/etc/kuryr-config-generator.conf index ddf05a9f..5877aa51 100644 --- a/etc/kuryr-config-generator.conf +++ b/etc/kuryr-config-generator.conf @@ -1,4 +1,4 @@ [DEFAULT] output_file = etc/kuryr.conf.sample wrap_width = 79 -namespace = kuryr +namespace = kuryr_libnetwork diff --git a/kuryr_libnetwork/opts.py b/kuryr_libnetwork/opts.py new file mode 100644 index 00000000..367ce912 --- /dev/null +++ b/kuryr_libnetwork/opts.py @@ -0,0 +1,55 @@ +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +__all__ = [ + 'list_kuryr_libnetwork_opts', +] + +import copy +import itertools + +from oslo_log import _options + +from kuryr_libnetwork.common import config + + +_core_opts_with_logging = config.core_opts +_core_opts_with_logging += _options.common_cli_opts +_core_opts_with_logging += _options.logging_cli_opts +_core_opts_with_logging += _options.generic_log_opts + +_kuryr_libnetwork_opts = [ + (None, list(itertools.chain(_core_opts_with_logging))), + ('neutron_client', config.neutron_opts), + ('keystone_client', config.keystone_opts), + ('binding', config.binding_opts), +] + + +def list_kuryr_libnetwork_opts(): + """Return a list of oslo_config options available in kuryr-libnetwork service. + + Each element of the list is a tuple. The first element is the name of the + group under which the list of elements in the second element will be + registered. A group name of None corresponds to the [DEFAULT] group in + config files. + + This function is also discoverable via the 'kuryr_libnetwork' entry point + under the 'oslo_config.opts' namespace. + + The purpose of this is to allow tools like the Oslo sample config file + generator to discover the options exposed to users by kuryr-libnetwork. + + :returns: a list of (group_name, opts) tuples + """ + + return [(k, copy.deepcopy(o)) for k, o in _kuryr_libnetwork_opts] diff --git a/kuryr_libnetwork/tests/unit/test_config.py b/kuryr_libnetwork/tests/unit/test_config.py index 90c40b76..00b8b8c1 100755 --- a/kuryr_libnetwork/tests/unit/test_config.py +++ b/kuryr_libnetwork/tests/unit/test_config.py @@ -12,6 +12,7 @@ import mock import os +from six.moves.urllib import parse import sys from neutronclient.common import exceptions as n_exceptions @@ -51,7 +52,8 @@ class ConfigurationTest(base.TestKuryrBase): @mock.patch('kuryr_libnetwork.app.run') def test_start(self, mock_run, mock_sys_argv): start() - mock_run.assert_called_once_with('127.0.0.1', 23750) + kuryr_uri = parse.urlparse(config.CONF.kuryr_uri) + mock_run.assert_called_once_with(kuryr_uri.hostname, 23750) def test_check_for_neutron_ext_support_with_ex(self): with mock.patch.object(controllers.app.neutron, diff --git a/setup.cfg b/setup.cfg index 344440fe..06a586ab 100644 --- a/setup.cfg +++ b/setup.cfg @@ -24,7 +24,7 @@ universal = 1 [entry_points] oslo.config.opts = - kuryr = kuryr_libnetwork.opts:list_kuryr_opts + kuryr_libnetwork = kuryr_libnetwork.opts:list_kuryr_libnetwork_opts console_scripts = kuryr-server = kuryr_libnetwork.server:start @@ -45,7 +45,7 @@ upload-dir = doc/build/html [compile_catalog] directory = kuryr_libnetwork/locale -domain = kuryr +domain = kuryr_libnetwork [update_catalog] domain = kuryr_libnetwork