Fix config file generation

Add logic for passing config options to config generator tool.

Change-Id: Ib0e55ddfad868978dfb98b133e738d7de11b1370
Closes-bug: #1611703
This commit is contained in:
Vikas Choudhary 2016-08-10 16:16:12 +05:30
parent cf95317806
commit 5b453c5697
4 changed files with 61 additions and 4 deletions

View File

@ -1,4 +1,4 @@
[DEFAULT]
output_file = etc/kuryr.conf.sample
wrap_width = 79
namespace = kuryr
namespace = kuryr_libnetwork

55
kuryr_libnetwork/opts.py Normal file
View File

@ -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]

View File

@ -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,

View File

@ -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