Centralize config options - [irmc]

Nova style refactor of config options in Ironic.

Change-Id: Ia5d4e49c0a8d2de47d34ef9f0b4dfa740c500efa
Partial-Bug: #1561100
This commit is contained in:
Ramamani Yeleswarapu 2016-04-06 16:33:33 -07:00
parent 700ad0567b
commit 038d600b8e
5 changed files with 78 additions and 69 deletions

View File

@ -25,6 +25,7 @@ from ironic.conf import iboot
from ironic.conf import ilo
from ironic.conf import inspector
from ironic.conf import ipmi
from ironic.conf import irmc
CONF = cfg.CONF
@ -38,3 +39,4 @@ iboot.register_opts(CONF)
ilo.register_opts(CONF)
inspector.register_opts(CONF)
ipmi.register_opts(CONF)
irmc.register_opts(CONF)

73
ironic/conf/irmc.py Normal file
View File

@ -0,0 +1,73 @@
# Copyright 2016 Intel Corporation
# Copyright 2015 FUJITSU LIMITED
#
# 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('remote_image_share_root',
default='/remote_image_share_root',
help=_('Ironic conductor node\'s "NFS" or "CIFS" root path')),
cfg.StrOpt('remote_image_server',
help=_('IP of remote image server')),
cfg.StrOpt('remote_image_share_type',
default='CIFS',
choices=['CIFS', 'NFS'],
ignore_case=True,
help=_('Share type of virtual media')),
cfg.StrOpt('remote_image_share_name',
default='share',
help=_('share name of remote_image_server')),
cfg.StrOpt('remote_image_user_name',
help=_('User name of remote_image_server')),
cfg.StrOpt('remote_image_user_password', secret=True,
help=_('Password of remote_image_user_name')),
cfg.StrOpt('remote_image_user_domain',
default='',
help=_('Domain name of remote_image_user_name')),
cfg.PortOpt('port',
default=443,
choices=[443, 80],
help=_('Port to be used for iRMC operations')),
cfg.StrOpt('auth_method',
default='basic',
choices=['basic', 'digest'],
help=_('Authentication method to be used for iRMC '
'operations')),
cfg.IntOpt('client_timeout',
default=60,
help=_('Timeout (in seconds) for iRMC operations')),
cfg.StrOpt('sensor_method',
default='ipmitool',
choices=['ipmitool', 'scci'],
help=_('Sensor data retrieval method.')),
cfg.StrOpt('snmp_version',
default='v2c',
choices=['v1', 'v2c', 'v3'],
help=_('SNMP protocol version')),
cfg.PortOpt('snmp_port',
default=161,
help=_('SNMP port')),
cfg.StrOpt('snmp_community',
default='public',
help=_('SNMP community. Required for versions "v1" and "v2c"')),
cfg.StrOpt('snmp_security',
help=_('SNMP security name. Required for version "v3"')),
]
def register_opts(conf):
conf.register_opts(opts, group='irmc')

View File

@ -33,8 +33,6 @@ import ironic.drivers.modules.amt.common
import ironic.drivers.modules.amt.power
import ironic.drivers.modules.deploy_utils
import ironic.drivers.modules.image_cache
import ironic.drivers.modules.irmc.boot
import ironic.drivers.modules.irmc.common
import ironic.drivers.modules.iscsi_deploy
import ironic.drivers.modules.oneview.common
import ironic.drivers.modules.pxe
@ -81,9 +79,7 @@ _opts = [
('ilo', ironic.conf.ilo.opts),
('inspector', ironic.conf.inspector.opts),
('ipmi', ironic.conf.ipmi.opts),
('irmc', itertools.chain(
ironic.drivers.modules.irmc.boot.opts,
ironic.drivers.modules.irmc.common.opts)),
('irmc', ironic.conf.irmc.opts),
('iscsi', ironic.drivers.modules.iscsi_deploy.iscsi_opts),
('keystone', ironic.common.keystone.keystone_opts),
('neutron', ironic.common.neutron.neutron_opts),

View File

@ -21,7 +21,6 @@ import shutil
import tempfile
from ironic_lib import utils as ironic_utils
from oslo_config import cfg
from oslo_log import log as logging
from oslo_utils import importutils
@ -34,6 +33,7 @@ from ironic.common.i18n import _LI
from ironic.common import images
from ironic.common import states
from ironic.conductor import utils as manager_utils
from ironic.conf import CONF
from ironic.drivers import base
from ironic.drivers.modules import deploy_utils
from ironic.drivers.modules.irmc import common as irmc_common
@ -41,39 +41,12 @@ from ironic.drivers.modules.irmc import common as irmc_common
scci = importutils.try_import('scciclient.irmc.scci')
CONF = cfg.CONF
try:
if CONF.debug:
scci.DEBUG = True
except Exception:
pass
opts = [
cfg.StrOpt('remote_image_share_root',
default='/remote_image_share_root',
help=_('Ironic conductor node\'s "NFS" or "CIFS" root path')),
cfg.StrOpt('remote_image_server',
help=_('IP of remote image server')),
cfg.StrOpt('remote_image_share_type',
default='CIFS',
choices=['CIFS', 'NFS'],
ignore_case=True,
help=_('Share type of virtual media')),
cfg.StrOpt('remote_image_share_name',
default='share',
help=_('share name of remote_image_server')),
cfg.StrOpt('remote_image_user_name',
help=_('User name of remote_image_server')),
cfg.StrOpt('remote_image_user_password', secret=True,
help=_('Password of remote_image_user_name')),
cfg.StrOpt('remote_image_user_domain',
default='',
help=_('Domain name of remote_image_user_name')),
]
CONF.register_opts(opts, group='irmc')
LOG = logging.getLogger(__name__)
REQUIRED_PROPERTIES = {

View File

@ -17,49 +17,14 @@ Common functionalities shared between different iRMC modules.
"""
import six
from oslo_config import cfg
from oslo_utils import importutils
from ironic.common import exception
from ironic.common.i18n import _
from ironic.conf import CONF
scci = importutils.try_import('scciclient.irmc.scci')
opts = [
cfg.PortOpt('port',
default=443,
choices=[443, 80],
help=_('Port to be used for iRMC operations')),
cfg.StrOpt('auth_method',
default='basic',
choices=['basic', 'digest'],
help=_('Authentication method to be used for iRMC '
'operations')),
cfg.IntOpt('client_timeout',
default=60,
help=_('Timeout (in seconds) for iRMC operations')),
cfg.StrOpt('sensor_method',
default='ipmitool',
choices=['ipmitool', 'scci'],
help=_('Sensor data retrieval method.')),
cfg.StrOpt('snmp_version',
default='v2c',
choices=['v1', 'v2c', 'v3'],
help=_('SNMP protocol version')),
cfg.PortOpt('snmp_port',
default=161,
help=_('SNMP port')),
cfg.StrOpt('snmp_community',
default='public',
help=_('SNMP community. Required for versions "v1" and "v2c"')),
cfg.StrOpt('snmp_security',
help=_('SNMP security name. Required for version "v3"')),
]
CONF = cfg.CONF
CONF.register_opts(opts, group='irmc')
REQUIRED_PROPERTIES = {
'irmc_address': _("IP address or hostname of the iRMC. Required."),
'irmc_username': _("Username for the iRMC with administrator privileges. "