From 2de6e17cf202b01e7134ffd94a16d0ed4a69745b Mon Sep 17 00:00:00 2001 From: Ramamani Yeleswarapu Date: Thu, 21 Apr 2016 14:33:26 -0700 Subject: [PATCH] Centralize config options - [api] Nova style refactor of config options in Ironic. Change-Id: I67ebeca9a4efb6065d2b4f0a7bcf5830b0cc5e3f Partial-Bug: #1561100 --- ironic/api/__init__.py | 57 --------------------------------------- ironic/conf/__init__.py | 2 ++ ironic/conf/api.py | 60 +++++++++++++++++++++++++++++++++++++++++ ironic/conf/opts.py | 3 +-- 4 files changed, 63 insertions(+), 59 deletions(-) create mode 100644 ironic/conf/api.py diff --git a/ironic/api/__init__.py b/ironic/api/__init__.py index eba90ad5b5..e69de29bb2 100644 --- a/ironic/api/__init__.py +++ b/ironic/api/__init__.py @@ -1,57 +0,0 @@ -# Copyright 2013 Hewlett-Packard Development Company, L.P. -# All Rights Reserved. -# -# 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. - -from oslo_config import cfg - -from ironic.common.i18n import _ - -API_SERVICE_OPTS = [ - cfg.StrOpt('host_ip', - default='0.0.0.0', - help=_('The IP address on which ironic-api listens.')), - cfg.PortOpt('port', - default=6385, - help=_('The TCP port on which ironic-api listens.')), - cfg.IntOpt('max_limit', - default=1000, - help=_('The maximum number of items returned in a single ' - 'response from a collection resource.')), - cfg.StrOpt('public_endpoint', - help=_("Public URL to use when building the links to the API " - "resources (for example, \"https://ironic.rocks:6384\")." - " If None the links will be built using the request's " - "host URL. If the API is operating behind a proxy, you " - "will want to change this to represent the proxy's URL. " - "Defaults to None.")), - cfg.IntOpt('api_workers', - help=_('Number of workers for OpenStack Ironic API service. ' - 'The default is equal to the number of CPUs available ' - 'if that can be determined, else a default worker ' - 'count of 1 is returned.')), - cfg.BoolOpt('enable_ssl_api', - default=False, - help=_("Enable the integrated stand-alone API to service " - "requests via HTTPS instead of HTTP. If there is a " - "front-end service performing HTTPS offloading from " - "the service, this option should be False; note, you " - "will want to change public API endpoint to represent " - "SSL termination URL with 'public_endpoint' option.")), -] - -CONF = cfg.CONF -opt_group = cfg.OptGroup(name='api', - title='Options for the ironic-api service') -CONF.register_group(opt_group) -CONF.register_opts(API_SERVICE_OPTS, opt_group) diff --git a/ironic/conf/__init__.py b/ironic/conf/__init__.py index d172c92054..df6a81ac9f 100644 --- a/ironic/conf/__init__.py +++ b/ironic/conf/__init__.py @@ -15,6 +15,7 @@ from oslo_config import cfg +from ironic.conf import api from ironic.conf import cimc from ironic.conf import cisco_ucs from ironic.conf import conductor @@ -39,6 +40,7 @@ from ironic.conf import virtualbox CONF = cfg.CONF +api.register_opts(CONF) cimc.register_opts(CONF) cisco_ucs.register_opts(CONF) conductor.register_opts(CONF) diff --git a/ironic/conf/api.py b/ironic/conf/api.py new file mode 100644 index 0000000000..7ec6f36c27 --- /dev/null +++ b/ironic/conf/api.py @@ -0,0 +1,60 @@ +# Copyright 2016 Intel Corporation +# Copyright 2013 Hewlett-Packard Development Company, L.P. +# All Rights Reserved. +# +# 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. + +from oslo_config import cfg + +from ironic.common.i18n import _ + +opts = [ + cfg.StrOpt('host_ip', + default='0.0.0.0', + help=_('The IP address on which ironic-api listens.')), + cfg.PortOpt('port', + default=6385, + help=_('The TCP port on which ironic-api listens.')), + cfg.IntOpt('max_limit', + default=1000, + help=_('The maximum number of items returned in a single ' + 'response from a collection resource.')), + cfg.StrOpt('public_endpoint', + help=_("Public URL to use when building the links to the API " + "resources (for example, \"https://ironic.rocks:6384\")." + " If None the links will be built using the request's " + "host URL. If the API is operating behind a proxy, you " + "will want to change this to represent the proxy's URL. " + "Defaults to None.")), + cfg.IntOpt('api_workers', + help=_('Number of workers for OpenStack Ironic API service. ' + 'The default is equal to the number of CPUs available ' + 'if that can be determined, else a default worker ' + 'count of 1 is returned.')), + cfg.BoolOpt('enable_ssl_api', + default=False, + help=_("Enable the integrated stand-alone API to service " + "requests via HTTPS instead of HTTP. If there is a " + "front-end service performing HTTPS offloading from " + "the service, this option should be False; note, you " + "will want to change public API endpoint to represent " + "SSL termination URL with 'public_endpoint' option.")), +] + +opt_group = cfg.OptGroup(name='api', + title='Options for the ironic-api service') + + +def register_opts(conf): + conf.register_group(opt_group) + conf.register_opts(opts, group=opt_group) diff --git a/ironic/conf/opts.py b/ironic/conf/opts.py index 1be7cd349f..9458a2bfe5 100644 --- a/ironic/conf/opts.py +++ b/ironic/conf/opts.py @@ -12,7 +12,6 @@ import itertools -import ironic.api import ironic.drivers.modules.agent import ironic.drivers.modules.agent_base_vendor import ironic.drivers.modules.agent_client @@ -44,7 +43,7 @@ _opts = [ ('amt', itertools.chain( ironic.drivers.modules.amt.common.opts, ironic.drivers.modules.amt.power.opts)), - ('api', ironic.api.API_SERVICE_OPTS), + ('api', ironic.conf.api.opts), ('cimc', ironic.conf.cimc.opts), ('cisco_ucs', ironic.conf.cisco_ucs.opts), ('conductor', ironic.conf.conductor.opts),