Files
ironic/ironic/conf/redfish.py
T
Bill Dodd d7f4da2376 Add Redfish RAID management to Ironic
The Redfish hardware type does not currently implement the RAID
hardware interface.

This patch implements the Redfish RAID interface, allowing operators
to specify the desired RAID configuration on Ironic Redfish nodes.

Story: 2003514
Task: 24789

Depends-On: https://review.opendev.org/c/openstack/sushy/+/774532
Change-Id: Icf5ca865e0c1e168b96659229df622698bea1503
2021-03-03 10:41:56 -06:00

108 lines
4.9 KiB
Python

# Copyright 2017 Red Hat, Inc.
# 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.IntOpt('connection_attempts',
min=1,
default=5,
help=_('Maximum number of attempts to try to connect '
'to Redfish')),
cfg.IntOpt('connection_retry_interval',
min=1,
default=4,
help=_('Number of seconds to wait between attempts to '
'connect to Redfish')),
cfg.IntOpt('connection_cache_size',
min=0,
default=1000,
help=_('Maximum Redfish client connection cache size. '
'Redfish driver would strive to reuse authenticated '
'BMC connections (obtained through Redfish Session '
'Service). This option caps the maximum number of '
'connections to maintain. The value of `0` disables '
'client connection caching completely.')),
cfg.StrOpt('auth_type',
choices=[('basic', _('Use HTTP basic authentication')),
('session', _('Use HTTP session authentication')),
('auto', _('Try HTTP session authentication first, '
'fall back to basic HTTP authentication'))],
default='auto',
help=_('Redfish HTTP client authentication method.')),
cfg.BoolOpt('use_swift',
default=True,
mutable=True,
help=_('Upload generated ISO images for virtual media boot to '
'Swift, then pass temporary URL to BMC for booting the '
'node. If set to false, images are placed on the '
'ironic-conductor node and served over its '
'local HTTP server.')),
cfg.StrOpt('swift_container',
default='ironic_redfish_container',
mutable=True,
help=_('The Swift container to store Redfish driver data. '
'Applies only when `use_swift` is enabled.')),
cfg.IntOpt('swift_object_expiry_timeout',
default=900,
mutable=True,
help=_('Amount of time in seconds for Swift objects to '
'auto-expire. Applies only when `use_swift` is '
'enabled.')),
cfg.StrOpt('kernel_append_params',
default='nofb nomodeset vga=normal',
mutable=True,
help=_('Additional kernel parameters to pass down to the '
'instance kernel. These parameters can be consumed by '
'the kernel or by the applications by reading '
'/proc/cmdline. Mind severe cmdline size limit! Can be '
'overridden by `instance_info/kernel_append_params` '
'property.')),
cfg.IntOpt('file_permission',
default=0o644,
help=_('File permission for swift-less image hosting with the '
'octal permission representation of file access '
'permissions. This setting defaults to ``644``, '
'or as the octal number ``0o644`` in Python. '
'This setting must be set to the octal number '
'representation, meaning starting with ``0o``.')),
cfg.IntOpt('firmware_update_status_interval',
min=0,
default=60,
help=_('Number of seconds to wait between checking for '
'completed firmware update tasks')),
cfg.IntOpt('firmware_update_fail_interval',
min=0,
default=60,
help=_('Number of seconds to wait between checking for '
'failed firmware update tasks')),
cfg.IntOpt('raid_config_status_interval',
min=0,
default=60,
help=_('Number of seconds to wait between checking for '
'completed raid config tasks')),
cfg.IntOpt('raid_config_fail_interval',
min=0,
default=60,
help=_('Number of seconds to wait between checking for '
'failed raid config tasks')),
]
def register_opts(conf):
conf.register_opts(opts, group='redfish')