Browse Source

Merge "Enable Redfish by default"

changes/80/815580/4
Zuul 2 months ago
committed by Gerrit Code Review
parent
commit
7f9ad55f62
  1. 3
      driver-requirements.txt
  2. 16
      ironic/conf/default.py
  3. 67
      ironic/tests/unit/drivers/third_party_driver_mock_specs.py
  4. 75
      ironic/tests/unit/drivers/third_party_driver_mocks.py
  5. 3
      lower-constraints.txt
  6. 5
      releasenotes/notes/redfish-default-c7b2268606172bba.yaml
  7. 3
      requirements.txt

3
driver-requirements.txt

@ -10,9 +10,6 @@ python-scciclient>=0.8.0
python-dracclient>=5.1.0,<8.0.0
python-xclarityclient>=0.1.6
# The Redfish hardware type uses the Sushy library
sushy>=3.10.0
# Ansible-deploy interface
ansible>=2.7

16
ironic/conf/default.py

@ -85,7 +85,7 @@ api_opts = [
driver_opts = [
cfg.ListOpt('enabled_hardware_types',
default=['ipmi'],
default=['ipmi', 'redfish'],
help=_('Specify the list of hardware types to load during '
'service initialization. Missing hardware types, or '
'hardware types which fail to initialize, will prevent '
@ -96,12 +96,12 @@ driver_opts = [
'system may be found by enumerating the '
'"ironic.hardware.types" entrypoint.')),
cfg.ListOpt('enabled_bios_interfaces',
default=['no-bios'],
default=['no-bios', 'redfish'],
help=_ENABLED_IFACE_HELP.format('bios')),
cfg.StrOpt('default_bios_interface',
help=_DEFAULT_IFACE_HELP.format('bios')),
cfg.ListOpt('enabled_boot_interfaces',
default=['pxe'],
default=['pxe', 'redfish-virtual-media'],
help=_ENABLED_IFACE_HELP.format('boot')),
cfg.StrOpt('default_boot_interface',
help=_DEFAULT_IFACE_HELP.format('boot')),
@ -116,12 +116,12 @@ driver_opts = [
cfg.StrOpt('default_deploy_interface',
help=_DEFAULT_IFACE_HELP.format('deploy')),
cfg.ListOpt('enabled_inspect_interfaces',
default=['no-inspect'],
default=['no-inspect', 'redfish'],
help=_ENABLED_IFACE_HELP.format('inspect')),
cfg.StrOpt('default_inspect_interface',
help=_DEFAULT_IFACE_HELP.format('inspect')),
cfg.ListOpt('enabled_management_interfaces',
default=['ipmitool'],
default=['ipmitool', 'redfish'],
help=_ENABLED_IFACE_HELP.format('management')),
cfg.StrOpt('default_management_interface',
help=_DEFAULT_IFACE_HELP.format('management')),
@ -131,12 +131,12 @@ driver_opts = [
cfg.StrOpt('default_network_interface',
help=_DEFAULT_IFACE_HELP.format('network')),
cfg.ListOpt('enabled_power_interfaces',
default=['ipmitool'],
default=['ipmitool', 'redfish'],
help=_ENABLED_IFACE_HELP.format('power')),
cfg.StrOpt('default_power_interface',
help=_DEFAULT_IFACE_HELP.format('power')),
cfg.ListOpt('enabled_raid_interfaces',
default=['agent', 'no-raid'],
default=['agent', 'no-raid', 'redfish'],
help=_ENABLED_IFACE_HELP.format('raid')),
cfg.StrOpt('default_raid_interface',
help=_DEFAULT_IFACE_HELP.format('raid')),
@ -152,7 +152,7 @@ driver_opts = [
default='noop',
help=_DEFAULT_IFACE_HELP.format('storage')),
cfg.ListOpt('enabled_vendor_interfaces',
default=['ipmitool', 'no-vendor'],
default=['ipmitool', 'redfish', 'no-vendor'],
help=_ENABLED_IFACE_HELP.format('vendor')),
cfg.StrOpt('default_vendor_interface',
help=_DEFAULT_IFACE_HELP.format('vendor')),

67
ironic/tests/unit/drivers/third_party_driver_mock_specs.py

@ -120,73 +120,6 @@ REDFISH_SPEC = (
'redfish',
)
SUSHY_SPEC = (
'auth',
'exceptions',
'Sushy',
'BOOT_SOURCE_TARGET_PXE',
'BOOT_SOURCE_TARGET_HDD',
'BOOT_SOURCE_TARGET_CD',
'BOOT_SOURCE_TARGET_BIOS_SETUP',
'CHASSIS_INDICATOR_LED_LIT',
'CHASSIS_INDICATOR_LED_BLINKING',
'CHASSIS_INDICATOR_LED_OFF',
'CHASSIS_INDICATOR_LED_UNKNOWN',
'DRIVE_INDICATOR_LED_LIT',
'DRIVE_INDICATOR_LED_BLINKING',
'DRIVE_INDICATOR_LED_OFF',
'DRIVE_INDICATOR_LED_UNKNOWN',
'INDICATOR_LED_LIT',
'INDICATOR_LED_BLINKING',
'INDICATOR_LED_OFF',
'INDICATOR_LED_UNKNOWN',
'SYSTEM_POWER_STATE_ON',
'SYSTEM_POWER_STATE_POWERING_ON',
'SYSTEM_POWER_STATE_OFF',
'SYSTEM_POWER_STATE_POWERING_OFF',
'RESET_ON',
'RESET_FORCE_OFF',
'RESET_GRACEFUL_SHUTDOWN',
'RESET_GRACEFUL_RESTART',
'RESET_FORCE_RESTART',
'RESET_NMI',
'BOOT_SOURCE_ENABLED_CONTINUOUS',
'BOOT_SOURCE_ENABLED_ONCE',
'BOOT_SOURCE_MODE_BIOS',
'BOOT_SOURCE_MODE_UEFI',
'PROCESSOR_ARCH_x86',
'PROCESSOR_ARCH_IA_64',
'PROCESSOR_ARCH_ARM',
'PROCESSOR_ARCH_MIPS',
'PROCESSOR_ARCH_OEM',
'PROTOCOL_TYPE_iSCSI',
'PROTOCOL_TYPE_SAS',
'PROTOCOL_TYPE_SATA',
'STATE_ENABLED',
'STATE_DISABLED',
'STATE_ABSENT',
'VIRTUAL_MEDIA_CD',
'VIRTUAL_MEDIA_FLOPPY',
'VIRTUAL_MEDIA_USBSTICK',
'APPLY_TIME_IMMEDIATE',
'APPLY_TIME_ON_RESET',
'TASK_STATE_COMPLETED',
'HEALTH_OK',
'HEALTH_WARNING',
'SECURE_BOOT_RESET_KEYS_TO_DEFAULT',
'SECURE_BOOT_RESET_KEYS_DELETE_ALL',
'VOLUME_TYPE_RAW_DEVICE',
'SEVERITY_OK',
'SEVERITY_WARNING',
'SEVERITY_CRITICAL',
)
SUSHY_AUTH_SPEC = (
'BasicAuth',
'SessionAuth',
'SessionOrBasicAuth',
)
XCLARITY_SPEC = (
'client',
'states',

75
ironic/tests/unit/drivers/third_party_driver_mocks.py

@ -196,81 +196,6 @@ class MockKwargsException(Exception):
self.kwargs = kwargs
sushy = importutils.try_import('sushy')
if not sushy:
sushy = mock.MagicMock(
spec_set=mock_specs.SUSHY_SPEC,
BOOT_SOURCE_TARGET_PXE='Pxe',
BOOT_SOURCE_TARGET_HDD='Hdd',
BOOT_SOURCE_TARGET_CD='Cd',
BOOT_SOURCE_TARGET_BIOS_SETUP='BiosSetup',
INDICATOR_LED_LIT='indicator led lit',
INDICATOR_LED_BLINKING='indicator led blinking',
INDICATOR_LED_OFF='indicator led off',
INDICATOR_LED_UNKNOWN='indicator led unknown',
SYSTEM_POWER_STATE_ON='on',
SYSTEM_POWER_STATE_POWERING_ON='powering on',
SYSTEM_POWER_STATE_OFF='off',
SYSTEM_POWER_STATE_POWERING_OFF='powering off',
RESET_ON='on',
RESET_FORCE_OFF='force off',
RESET_GRACEFUL_SHUTDOWN='graceful shutdown',
RESET_GRACEFUL_RESTART='graceful restart',
RESET_FORCE_RESTART='force restart',
RESET_NMI='nmi',
BOOT_SOURCE_ENABLED_CONTINUOUS='continuous',
BOOT_SOURCE_ENABLED_ONCE='once',
BOOT_SOURCE_MODE_BIOS='bios',
BOOT_SOURCE_MODE_UEFI='uefi',
PROCESSOR_ARCH_x86='x86 or x86-64',
PROCESSOR_ARCH_IA_64='Intel Itanium',
PROCESSOR_ARCH_ARM='ARM',
PROCESSOR_ARCH_MIPS='MIPS',
PROCESSOR_ARCH_OEM='OEM-defined',
PROTOCOL_TYPE_iSCSI='Internet SCSI',
PROTOCOL_TYPE_SAS='Serial Attached SCSI',
PROTOCOL_TYPE_SATA='Serial AT Attachment',
STATE_ENABLED='enabled',
STATE_DISABLED='disabled',
STATE_ABSENT='absent',
VIRTUAL_MEDIA_CD='cd',
VIRTUAL_MEDIA_FLOPPY='floppy',
VIRTUAL_MEDIA_USBSTICK='usb',
APPLY_TIME_IMMEDIATE='immediate',
APPLY_TIME_ON_RESET='on reset',
TASK_STATE_COMPLETED='completed',
HEALTH_OK='ok',
HEALTH_WARNING='warning',
SECURE_BOOT_RESET_KEYS_TO_DEFAULT="ResetAllKeysToDefault",
SECURE_BOOT_RESET_KEYS_DELETE_ALL="DeleteAllKeys",
VOLUME_TYPE_RAW_DEVICE='rawdevice',
SEVERITY_OK='ok',
SEVERITY_WARNING='warning',
SEVERITY_CRITICAL='critical'
)
sys.modules['sushy'] = sushy
sys.modules['sushy.exceptions'] = sushy.exceptions
sushy.exceptions.SushyError = (
type('SushyError', (MockKwargsException,), {}))
sushy.exceptions.ConnectionError = (
type('ConnectionError', (sushy.exceptions.SushyError,), {}))
sushy.exceptions.ResourceNotFoundError = (
type('ResourceNotFoundError', (sushy.exceptions.SushyError,), {}))
sushy.exceptions.MissingAttributeError = (
type('MissingAttributeError', (sushy.exceptions.SushyError,), {}))
sushy.exceptions.OEMExtensionNotFoundError = (
type('OEMExtensionNotFoundError', (sushy.exceptions.SushyError,), {}))
sushy.exceptions.ServerSideError = (
type('ServerSideError', (sushy.exceptions.SushyError,), {}))
sushy.exceptions.BadRequestError = (
type('BadRequestError', (sushy.exceptions.SushyError,), {}))
sushy.auth = mock.MagicMock(spec_set=mock_specs.SUSHY_AUTH_SPEC)
sys.modules['sushy.auth'] = sushy.auth
if 'ironic.drivers.modules.redfish' in sys.modules:
importlib.reload(sys.modules['ironic.drivers.modules.redfish'])
xclarity_client = importutils.try_import('xclarity_client')
if not xclarity_client:
xclarity_client = mock.MagicMock(spec_set=mock_specs.XCLARITY_SPEC)

3
lower-constraints.txt

@ -48,7 +48,8 @@ requests==2.18.0
rfc3986==1.2.0
SQLAlchemy==1.2.19
stestr==2.0.0
stevedore==1.20.0
stevedore==1.29.0
sushy==3.10.0
tenacity==6.2.0
testtools==2.2.0
tooz==2.7.0

5
releasenotes/notes/redfish-default-c7b2268606172bba.yaml

@ -0,0 +1,5 @@
---
features:
- |
The ``redfish`` hardware type is now enabled by default along with all
its supported hardware interfaces.

3
requirements.txt

@ -13,7 +13,7 @@ keystoneauth1>=4.2.0 # Apache-2.0
ironic-lib>=4.6.1 # Apache-2.0
python-swiftclient>=3.2.0 # Apache-2.0
pytz>=2013.6 # MIT
stevedore>=1.20.0 # Apache-2.0
stevedore>=1.29.0 # Apache-2.0
oslo.concurrency>=4.2.0 # Apache-2.0
oslo.config>=6.8.0 # Apache-2.0
oslo.context>=2.22.0 # Apache-2.0
@ -43,3 +43,4 @@ psutil>=3.2.2 # BSD
futurist>=1.2.0 # Apache-2.0
tooz>=2.7.0 # Apache-2.0
openstacksdk>=0.48.0 # Apache-2.0
sushy>=3.10.0

Loading…
Cancel
Save