From 12d1dd5309f294e75ea382131848c78cac64fa14 Mon Sep 17 00:00:00 2001 From: Julia Kreger <juliaashleykreger@gmail.com> Date: Mon, 29 Mar 2021 15:53:25 -0700 Subject: [PATCH] Fix configuration generation for ironic doc pages Ironic's sample configuration page previously did not render any of the items in the default section, except for those items added by other libraries. This was because we were trying to use an iterator instead of a list. Using an iterator, in theory should have worked, and did work for normal invocations, but didn't work when it came to sphinx generated output. Instead of trying to use itertools to assemble everything, we just now instead assemble the list and use a list_opts method like some of the other more complex groups to add values. Confirmed in local build output that the sphinx generated output works as expected now. Change-Id: I7f1cffb2a91728ab632ab0ccaa6acbb7e86fb533 --- ironic/conf/default.py | 22 ++++++++++++++++++++++ ironic/conf/opts.py | 19 +------------------ 2 files changed, 23 insertions(+), 18 deletions(-) diff --git a/ironic/conf/default.py b/ironic/conf/default.py index bb5ec39180..b3a6943da1 100644 --- a/ironic/conf/default.py +++ b/ironic/conf/default.py @@ -424,6 +424,28 @@ webserver_opts = [ ] +def list_opts(): + _default_opt_lists = [ + api_opts, + driver_opts, + exc_log_opts, + hash_opts, + image_opts, + img_cache_opts, + netconf_opts, + notification_opts, + path_opts, + portgroup_opts, + service_opts, + utils_opts, + webserver_opts, + ] + full_opt_list = [] + for options in _default_opt_lists: + full_opt_list.extend(options) + return full_opt_list + + def register_opts(conf): conf.register_opts(api_opts) conf.register_opts(driver_opts) diff --git a/ironic/conf/opts.py b/ironic/conf/opts.py index ecd804dd93..97b9c9d447 100644 --- a/ironic/conf/opts.py +++ b/ironic/conf/opts.py @@ -10,30 +10,13 @@ # See the License for the specific language governing permissions and # limitations under the License. -import itertools - from oslo_log import log import ironic.conf -_default_opt_lists = [ - ironic.conf.default.api_opts, - ironic.conf.default.driver_opts, - ironic.conf.default.exc_log_opts, - ironic.conf.default.hash_opts, - ironic.conf.default.image_opts, - ironic.conf.default.img_cache_opts, - ironic.conf.default.netconf_opts, - ironic.conf.default.notification_opts, - ironic.conf.default.path_opts, - ironic.conf.default.portgroup_opts, - ironic.conf.default.service_opts, - ironic.conf.default.utils_opts, - ironic.conf.default.webserver_opts, -] _opts = [ - ('DEFAULT', itertools.chain(*_default_opt_lists)), + ('DEFAULT', ironic.conf.default.list_opts()), ('agent', ironic.conf.agent.opts), ('ansible', ironic.conf.ansible.opts), ('api', ironic.conf.api.opts),