Don't import sushy conditionally, it's a requirement

Change-Id: I5fcedfc89ac18025c178e8a5f6750802005d1507
This commit is contained in:
Dmitry Tantsur 2024-02-28 16:56:05 +01:00
parent 27f53debb6
commit 803d08cb88
No known key found for this signature in database
GPG Key ID: 315B2AF9FD216C60
30 changed files with 112 additions and 275 deletions

View File

@ -15,7 +15,7 @@
# under the License. # under the License.
from oslo_log import log from oslo_log import log
from oslo_utils import importutils import sushy
from ironic.common import boot_devices from ironic.common import boot_devices
from ironic.drivers.modules.drac import utils as drac_utils from ironic.drivers.modules.drac import utils as drac_utils
@ -24,8 +24,6 @@ from ironic.drivers.modules.redfish import utils as redfish_utils
LOG = log.getLogger(__name__) LOG = log.getLogger(__name__)
sushy = importutils.try_import('sushy')
class DracRedfishVirtualMediaBoot(redfish_boot.RedfishVirtualMediaBoot): class DracRedfishVirtualMediaBoot(redfish_boot.RedfishVirtualMediaBoot):
"""iDRAC Redfish interface for virtual media boot-related actions. """iDRAC Redfish interface for virtual media boot-related actions.
@ -63,11 +61,10 @@ class DracRedfishVirtualMediaBoot(redfish_boot.RedfishVirtualMediaBoot):
via OEM action call implemented in Dell sushy OEM extension package. via OEM action call implemented in Dell sushy OEM extension package.
""" """
if sushy: VIRTUAL_MEDIA_DEVICES = {
VIRTUAL_MEDIA_DEVICES = { boot_devices.FLOPPY: sushy.VIRTUAL_MEDIA_FLOPPY,
boot_devices.FLOPPY: sushy.VIRTUAL_MEDIA_FLOPPY, boot_devices.CDROM: sushy.VIRTUAL_MEDIA_CD
boot_devices.CDROM: sushy.VIRTUAL_MEDIA_CD }
}
def _validate_vendor(self, task, managers): def _validate_vendor(self, task, managers):
pass # assume people are doing the right thing pass # assume people are doing the right thing

View File

@ -34,7 +34,6 @@ from ironic.drivers.modules.redfish import utils as redfish_utils
from ironic import objects from ironic import objects
drac_exceptions = importutils.try_import('dracclient.exceptions') drac_exceptions = importutils.try_import('dracclient.exceptions')
sushy = importutils.try_import('sushy')
LOG = logging.getLogger(__name__) LOG = logging.getLogger(__name__)

View File

@ -28,6 +28,7 @@ import jsonschema
from jsonschema import exceptions as json_schema_exc from jsonschema import exceptions as json_schema_exc
from oslo_log import log as logging from oslo_log import log as logging
from oslo_utils import importutils from oslo_utils import importutils
import sushy
from ironic.common import boot_devices from ironic.common import boot_devices
from ironic.common import exception from ironic.common import exception
@ -48,7 +49,6 @@ from ironic.drivers.modules.redfish import utils as redfish_utils
drac_exceptions = importutils.try_import('dracclient.exceptions') drac_exceptions = importutils.try_import('dracclient.exceptions')
sushy = importutils.try_import('sushy')
LOG = logging.getLogger(__name__) LOG = logging.getLogger(__name__)

View File

@ -22,6 +22,7 @@ from ironic_lib import metrics_utils
from oslo_log import log as logging from oslo_log import log as logging
from oslo_utils import importutils from oslo_utils import importutils
from oslo_utils import units from oslo_utils import units
import sushy
import tenacity import tenacity
from ironic.common import exception from ironic.common import exception
@ -41,7 +42,6 @@ from ironic.drivers.modules.redfish import utils as redfish_utils
drac_exceptions = importutils.try_import('dracclient.exceptions') drac_exceptions = importutils.try_import('dracclient.exceptions')
drac_constants = importutils.try_import('dracclient.constants') drac_constants = importutils.try_import('dracclient.constants')
sushy = importutils.try_import('sushy')
sushy_oem_idrac = importutils.try_import('sushy_oem_idrac') sushy_oem_idrac = importutils.try_import('sushy_oem_idrac')
LOG = logging.getLogger(__name__) LOG = logging.getLogger(__name__)

View File

@ -13,15 +13,13 @@
# under the License. # under the License.
from oslo_log import log from oslo_log import log
from oslo_utils import importutils import sushy
from ironic.common import exception from ironic.common import exception
from ironic.drivers.modules.redfish import utils as redfish_utils from ironic.drivers.modules.redfish import utils as redfish_utils
LOG = log.getLogger(__name__) LOG = log.getLogger(__name__)
sushy = importutils.try_import('sushy')
def execute_oem_manager_method( def execute_oem_manager_method(
task, process_name, lambda_oem_func): task, process_name, lambda_oem_func):

View File

@ -14,7 +14,7 @@
from ironic_lib import metrics_utils from ironic_lib import metrics_utils
from oslo_log import log from oslo_log import log
from oslo_utils import importutils import sushy
from ironic.common import exception from ironic.common import exception
from ironic.common.i18n import _ from ironic.common.i18n import _
@ -29,8 +29,6 @@ LOG = log.getLogger(__name__)
METRICS = metrics_utils.get_metrics_logger(__name__) METRICS = metrics_utils.get_metrics_logger(__name__)
sushy = importutils.try_import('sushy')
registry_fields = ('attribute_type', 'allowable_values', 'lower_bound', registry_fields = ('attribute_type', 'allowable_values', 'lower_bound',
'max_length', 'min_length', 'read_only', 'max_length', 'min_length', 'read_only',
'reset_required', 'unique', 'upper_bound') 'reset_required', 'unique', 'upper_bound')
@ -47,13 +45,6 @@ class RedfishBIOS(base.BIOSInterface):
} }
} }
def __init__(self):
super(RedfishBIOS, self).__init__()
if sushy is None:
raise exception.DriverLoadError(
driver='redfish',
reason=_("Unable to import the sushy library"))
def _parse_allowable_values(self, node, allowable_values): def _parse_allowable_values(self, node, allowable_values):
"""Convert the BIOS registry allowable_value list to expected strings """Convert the BIOS registry allowable_value list to expected strings

View File

@ -14,7 +14,7 @@
# under the License. # under the License.
from oslo_log import log from oslo_log import log
from oslo_utils import importutils import sushy
import tenacity import tenacity
from ironic.common import boot_devices from ironic.common import boot_devices
@ -79,8 +79,6 @@ COMMON_PROPERTIES.update(RESCUE_PROPERTIES)
IMAGE_SUBDIR = 'redfish' IMAGE_SUBDIR = 'redfish'
sushy = importutils.try_import('sushy')
def _parse_driver_info(node): def _parse_driver_info(node):
"""Gets the driver specific Node deployment info. """Gets the driver specific Node deployment info.
@ -401,18 +399,6 @@ class RedfishVirtualMediaBoot(base.BootInterface):
capabilities = ['iscsi_volume_boot', 'ramdisk_boot', capabilities = ['iscsi_volume_boot', 'ramdisk_boot',
'ramdisk_boot_configdrive'] 'ramdisk_boot_configdrive']
def __init__(self):
"""Initialize the Redfish virtual media boot interface.
:raises: DriverLoadError if the driver can't be loaded due to
missing dependencies
"""
super(RedfishVirtualMediaBoot, self).__init__()
if not sushy:
raise exception.DriverLoadError(
driver='redfish',
reason=_('Unable to import the sushy library'))
def get_properties(self): def get_properties(self):
"""Return the properties of the interface. """Return the properties of the interface.

View File

@ -15,8 +15,8 @@ from urllib.parse import urlparse
from ironic_lib import metrics_utils from ironic_lib import metrics_utils
from oslo_log import log from oslo_log import log
from oslo_utils import importutils
from oslo_utils import timeutils from oslo_utils import timeutils
import sushy
from ironic.common import exception from ironic.common import exception
from ironic.common.i18n import _ from ironic.common.i18n import _
@ -34,8 +34,6 @@ LOG = log.getLogger(__name__)
METRICS = metrics_utils.get_metrics_logger(__name__) METRICS = metrics_utils.get_metrics_logger(__name__)
sushy = importutils.try_import('sushy')
class RedfishFirmware(base.FirmwareInterface): class RedfishFirmware(base.FirmwareInterface):
@ -48,13 +46,6 @@ class RedfishFirmware(base.FirmwareInterface):
} }
} }
def __init__(self):
super(RedfishFirmware, self).__init__()
if sushy is None:
raise exception.DriverLoadError(
driver='redfish',
reason=_("Unable to import the sushy library"))
def get_properties(self): def get_properties(self):
"""Return the properties of the interface. """Return the properties of the interface.

View File

@ -14,8 +14,8 @@ Redfish Inspect Interface
""" """
from oslo_log import log from oslo_log import log
from oslo_utils import importutils
from oslo_utils import units from oslo_utils import units
import sushy
from ironic.common import boot_modes from ironic.common import boot_modes
from ironic.common import exception from ironic.common import exception
@ -30,48 +30,33 @@ from ironic import objects
LOG = log.getLogger(__name__) LOG = log.getLogger(__name__)
sushy = importutils.try_import('sushy') CPU_ARCH_MAP = {
sushy.PROCESSOR_ARCH_x86: 'x86_64',
sushy.PROCESSOR_ARCH_IA_64: 'ia64',
sushy.PROCESSOR_ARCH_ARM: 'arm',
sushy.PROCESSOR_ARCH_MIPS: 'mips',
sushy.PROCESSOR_ARCH_OEM: 'oem'
}
if sushy: PROCESSOR_INSTRUCTION_SET_MAP = {
CPU_ARCH_MAP = { sushy.InstructionSet.ARM_A32: 'arm',
sushy.PROCESSOR_ARCH_x86: 'x86_64', sushy.InstructionSet.ARM_A64: 'aarch64',
sushy.PROCESSOR_ARCH_IA_64: 'ia64', sushy.InstructionSet.IA_64: 'ia64',
sushy.PROCESSOR_ARCH_ARM: 'arm', sushy.InstructionSet.MIPS32: 'mips',
sushy.PROCESSOR_ARCH_MIPS: 'mips', sushy.InstructionSet.MIPS64: 'mips64',
sushy.PROCESSOR_ARCH_OEM: 'oem' sushy.InstructionSet.OEM: None,
} sushy.InstructionSet.X86: 'i686',
sushy.InstructionSet.X86_64: 'x86_64'
}
PROCESSOR_INSTRUCTION_SET_MAP = { BOOT_MODE_MAP = {
sushy.InstructionSet.ARM_A32: 'arm', sushy.BOOT_SOURCE_MODE_UEFI: boot_modes.UEFI,
sushy.InstructionSet.ARM_A64: 'aarch64', sushy.BOOT_SOURCE_MODE_BIOS: boot_modes.LEGACY_BIOS
sushy.InstructionSet.IA_64: 'ia64', }
sushy.InstructionSet.MIPS32: 'mips',
sushy.InstructionSet.MIPS64: 'mips64',
sushy.InstructionSet.OEM: None,
sushy.InstructionSet.X86: 'i686',
sushy.InstructionSet.X86_64: 'x86_64'
}
BOOT_MODE_MAP = {
sushy.BOOT_SOURCE_MODE_UEFI: boot_modes.UEFI,
sushy.BOOT_SOURCE_MODE_BIOS: boot_modes.LEGACY_BIOS
}
class RedfishInspect(base.InspectInterface): class RedfishInspect(base.InspectInterface):
def __init__(self):
"""Initialize the Redfish inspection interface.
:raises: DriverLoadError if the driver can't be loaded due to
missing dependencies
"""
super(RedfishInspect, self).__init__()
if not sushy:
raise exception.DriverLoadError(
driver='redfish',
reason=_('Unable to import the sushy library'))
def get_properties(self): def get_properties(self):
"""Return the properties of the interface. """Return the properties of the interface.

View File

@ -19,8 +19,8 @@ from urllib.parse import urlparse
from ironic_lib import metrics_utils from ironic_lib import metrics_utils
from oslo_log import log from oslo_log import log
from oslo_utils import importutils
from oslo_utils import timeutils from oslo_utils import timeutils
import sushy
from ironic.common import boot_devices from ironic.common import boot_devices
from ironic.common import boot_modes from ironic.common import boot_modes
@ -43,55 +43,52 @@ from ironic.drivers.modules.redfish import utils as redfish_utils
LOG = log.getLogger(__name__) LOG = log.getLogger(__name__)
METRICS = metrics_utils.get_metrics_logger(__name__) METRICS = metrics_utils.get_metrics_logger(__name__)
sushy = importutils.try_import('sushy')
BOOT_MODE_CONFIG_INTERVAL = 15 BOOT_MODE_CONFIG_INTERVAL = 15
if sushy: BOOT_DEVICE_MAP = {
BOOT_DEVICE_MAP = { sushy.BOOT_SOURCE_TARGET_PXE: boot_devices.PXE,
sushy.BOOT_SOURCE_TARGET_PXE: boot_devices.PXE, sushy.BOOT_SOURCE_TARGET_HDD: boot_devices.DISK,
sushy.BOOT_SOURCE_TARGET_HDD: boot_devices.DISK, sushy.BOOT_SOURCE_TARGET_CD: boot_devices.CDROM,
sushy.BOOT_SOURCE_TARGET_CD: boot_devices.CDROM, sushy.BOOT_SOURCE_TARGET_BIOS_SETUP: boot_devices.BIOS,
sushy.BOOT_SOURCE_TARGET_BIOS_SETUP: boot_devices.BIOS, sushy.BOOT_SOURCE_TARGET_UEFI_HTTP: boot_devices.UEFIHTTP
sushy.BOOT_SOURCE_TARGET_UEFI_HTTP: boot_devices.UEFIHTTP }
}
BOOT_DEVICE_MAP_REV = {v: k for k, v in BOOT_DEVICE_MAP.items()} BOOT_DEVICE_MAP_REV = {v: k for k, v in BOOT_DEVICE_MAP.items()}
# Previously we used sushy constants in driver_internal_info. This mapping # Previously we used sushy constants in driver_internal_info. This mapping
# is provided for backward compatibility, taking into account that sushy # is provided for backward compatibility, taking into account that sushy
# constants will change from strings to enums. # constants will change from strings to enums.
BOOT_DEVICE_MAP_REV_COMPAT = dict( BOOT_DEVICE_MAP_REV_COMPAT = dict(
BOOT_DEVICE_MAP_REV, BOOT_DEVICE_MAP_REV,
pxe=sushy.BOOT_SOURCE_TARGET_PXE, pxe=sushy.BOOT_SOURCE_TARGET_PXE,
hdd=sushy.BOOT_SOURCE_TARGET_HDD, hdd=sushy.BOOT_SOURCE_TARGET_HDD,
cd=sushy.BOOT_SOURCE_TARGET_CD, cd=sushy.BOOT_SOURCE_TARGET_CD,
**{'bios setup': sushy.BOOT_SOURCE_TARGET_BIOS_SETUP} **{'bios setup': sushy.BOOT_SOURCE_TARGET_BIOS_SETUP}
) )
BOOT_MODE_MAP = { BOOT_MODE_MAP = {
sushy.BOOT_SOURCE_MODE_UEFI: boot_modes.UEFI, sushy.BOOT_SOURCE_MODE_UEFI: boot_modes.UEFI,
sushy.BOOT_SOURCE_MODE_BIOS: boot_modes.LEGACY_BIOS sushy.BOOT_SOURCE_MODE_BIOS: boot_modes.LEGACY_BIOS
} }
BOOT_MODE_MAP_REV = {v: k for k, v in BOOT_MODE_MAP.items()} BOOT_MODE_MAP_REV = {v: k for k, v in BOOT_MODE_MAP.items()}
BOOT_DEVICE_PERSISTENT_MAP = { BOOT_DEVICE_PERSISTENT_MAP = {
sushy.BOOT_SOURCE_ENABLED_CONTINUOUS: True, sushy.BOOT_SOURCE_ENABLED_CONTINUOUS: True,
sushy.BOOT_SOURCE_ENABLED_ONCE: False sushy.BOOT_SOURCE_ENABLED_ONCE: False
} }
BOOT_DEVICE_PERSISTENT_MAP_REV = {v: k for k, v in BOOT_DEVICE_PERSISTENT_MAP_REV = {v: k for k, v in
BOOT_DEVICE_PERSISTENT_MAP.items()} BOOT_DEVICE_PERSISTENT_MAP.items()}
INDICATOR_MAP = { INDICATOR_MAP = {
sushy.INDICATOR_LED_LIT: indicator_states.ON, sushy.INDICATOR_LED_LIT: indicator_states.ON,
sushy.INDICATOR_LED_OFF: indicator_states.OFF, sushy.INDICATOR_LED_OFF: indicator_states.OFF,
sushy.INDICATOR_LED_BLINKING: indicator_states.BLINKING, sushy.INDICATOR_LED_BLINKING: indicator_states.BLINKING,
sushy.INDICATOR_LED_UNKNOWN: indicator_states.UNKNOWN sushy.INDICATOR_LED_UNKNOWN: indicator_states.UNKNOWN
} }
INDICATOR_MAP_REV = { INDICATOR_MAP_REV = {
v: k for k, v in INDICATOR_MAP.items()} v: k for k, v in INDICATOR_MAP.items()}
_FIRMWARE_UPDATE_ARGS = { _FIRMWARE_UPDATE_ARGS = {
@ -169,18 +166,6 @@ def _set_boot_device(task, system, device, persistent=False,
class RedfishManagement(base.ManagementInterface): class RedfishManagement(base.ManagementInterface):
def __init__(self):
"""Initialize the Redfish management interface.
:raises: DriverLoadError if the driver can't be loaded due to
missing dependencies
"""
super(RedfishManagement, self).__init__()
if not sushy:
raise exception.DriverLoadError(
driver='redfish',
reason=_('Unable to import the sushy library'))
def get_properties(self): def get_properties(self):
"""Return the properties of the interface. """Return the properties of the interface.

View File

@ -14,7 +14,7 @@
# under the License. # under the License.
from oslo_log import log from oslo_log import log
from oslo_utils import importutils import sushy
from ironic.common import exception from ironic.common import exception
from ironic.common.i18n import _ from ironic.common.i18n import _
@ -27,23 +27,20 @@ from ironic.drivers.modules.redfish import utils as redfish_utils
LOG = log.getLogger(__name__) LOG = log.getLogger(__name__)
sushy = importutils.try_import('sushy') GET_POWER_STATE_MAP = {
sushy.SYSTEM_POWER_STATE_ON: states.POWER_ON,
sushy.SYSTEM_POWER_STATE_POWERING_ON: states.POWER_ON,
sushy.SYSTEM_POWER_STATE_OFF: states.POWER_OFF,
sushy.SYSTEM_POWER_STATE_POWERING_OFF: states.POWER_OFF
}
if sushy: SET_POWER_STATE_MAP = {
GET_POWER_STATE_MAP = { states.POWER_ON: sushy.RESET_ON,
sushy.SYSTEM_POWER_STATE_ON: states.POWER_ON, states.POWER_OFF: sushy.RESET_FORCE_OFF,
sushy.SYSTEM_POWER_STATE_POWERING_ON: states.POWER_ON, states.REBOOT: sushy.RESET_FORCE_RESTART,
sushy.SYSTEM_POWER_STATE_OFF: states.POWER_OFF, states.SOFT_REBOOT: sushy.RESET_GRACEFUL_RESTART,
sushy.SYSTEM_POWER_STATE_POWERING_OFF: states.POWER_OFF states.SOFT_POWER_OFF: sushy.RESET_GRACEFUL_SHUTDOWN
} }
SET_POWER_STATE_MAP = {
states.POWER_ON: sushy.RESET_ON,
states.POWER_OFF: sushy.RESET_FORCE_OFF,
states.REBOOT: sushy.RESET_FORCE_RESTART,
states.SOFT_REBOOT: sushy.RESET_GRACEFUL_RESTART,
states.SOFT_POWER_OFF: sushy.RESET_GRACEFUL_SHUTDOWN
}
TARGET_STATE_MAP = { TARGET_STATE_MAP = {
states.REBOOT: states.POWER_ON, states.REBOOT: states.POWER_ON,
@ -71,18 +68,6 @@ def _set_power_state(task, system, power_state, timeout=None):
class RedfishPower(base.PowerInterface): class RedfishPower(base.PowerInterface):
def __init__(self):
"""Initialize the Redfish power interface.
:raises: DriverLoadError if the driver can't be loaded due to
missing dependencies
"""
super(RedfishPower, self).__init__()
if not sushy:
raise exception.DriverLoadError(
driver='redfish',
reason=_('Unable to import the sushy library'))
def get_properties(self): def get_properties(self):
"""Return the properties of the interface. """Return the properties of the interface.

View File

@ -18,8 +18,8 @@ import math
from ironic_lib import metrics_utils from ironic_lib import metrics_utils
from oslo_log import log from oslo_log import log
from oslo_utils import importutils
from oslo_utils import units from oslo_utils import units
import sushy
from ironic.common import exception from ironic.common import exception
from ironic.common.i18n import _ from ironic.common.i18n import _
@ -84,13 +84,10 @@ RAID_LEVELS = {
} }
} }
sushy = importutils.try_import('sushy') PROTOCOL_MAP = {
sushy.PROTOCOL_TYPE_SAS: raid.SAS,
if sushy: sushy.PROTOCOL_TYPE_SATA: raid.SATA
PROTOCOL_MAP = { }
sushy.PROTOCOL_TYPE_SAS: raid.SAS,
sushy.PROTOCOL_TYPE_SATA: raid.SATA
}
def convert_drive_units(logical_disks, node): def convert_drive_units(logical_disks, node):
@ -715,13 +712,6 @@ def update_raid_config(node):
class RedfishRAID(base.RAIDInterface): class RedfishRAID(base.RAIDInterface):
def __init__(self):
super(RedfishRAID, self).__init__()
if sushy is None:
raise exception.DriverLoadError(
driver='redfish',
reason=_("Unable to import the sushy library"))
def get_properties(self): def get_properties(self):
"""Return the properties of the interface. """Return the properties of the interface.

View File

@ -21,9 +21,9 @@ from urllib import parse as urlparse
from oslo_log import log from oslo_log import log
from oslo_utils import excutils from oslo_utils import excutils
from oslo_utils import importutils
from oslo_utils import strutils from oslo_utils import strutils
import rfc3986 import rfc3986
import sushy
import tenacity import tenacity
from ironic.common import exception from ironic.common import exception
@ -31,8 +31,6 @@ from ironic.common.i18n import _
from ironic.common import utils from ironic.common import utils
from ironic.conf import CONF from ironic.conf import CONF
sushy = importutils.try_import('sushy')
LOG = log.getLogger(__name__) LOG = log.getLogger(__name__)
REQUIRED_PROPERTIES = { REQUIRED_PROPERTIES = {
@ -200,13 +198,12 @@ def parse_driver_info(node):
class SessionCache(object): class SessionCache(object):
"""Cache of HTTP sessions credentials""" """Cache of HTTP sessions credentials"""
AUTH_CLASSES = {}
if sushy: AUTH_CLASSES = dict(
AUTH_CLASSES.update( basic=sushy.auth.BasicAuth,
basic=sushy.auth.BasicAuth, session=sushy.auth.SessionAuth,
session=sushy.auth.SessionAuth, auto=sushy.auth.SessionOrBasicAuth
auto=sushy.auth.SessionOrBasicAuth )
)
_sessions = collections.OrderedDict() _sessions = collections.OrderedDict()

View File

@ -17,8 +17,8 @@ Vendor Interface for Redfish drivers and its supporting methods.
from ironic_lib import metrics_utils from ironic_lib import metrics_utils
from oslo_log import log from oslo_log import log
from oslo_utils import importutils
import rfc3986 import rfc3986
import sushy
from ironic.common import exception from ironic.common import exception
from ironic.common.i18n import _ from ironic.common.i18n import _
@ -26,8 +26,6 @@ from ironic.drivers import base
from ironic.drivers.modules.redfish import boot as redfish_boot from ironic.drivers.modules.redfish import boot as redfish_boot
from ironic.drivers.modules.redfish import utils as redfish_utils from ironic.drivers.modules.redfish import utils as redfish_utils
sushy = importutils.try_import('sushy')
LOG = log.getLogger(__name__) LOG = log.getLogger(__name__)
METRICS = metrics_utils.get_metrics_logger(__name__) METRICS = metrics_utils.get_metrics_logger(__name__)
SUBSCRIPTION_COMMON_FIELDS = { SUBSCRIPTION_COMMON_FIELDS = {

View File

@ -20,7 +20,7 @@ Test class for DRAC boot interface
from unittest import mock from unittest import mock
from oslo_utils import importutils import sushy
from ironic.common import boot_devices from ironic.common import boot_devices
from ironic.conductor import task_manager from ironic.conductor import task_manager
@ -30,8 +30,6 @@ from ironic.tests.unit.db import utils as db_utils
from ironic.tests.unit.drivers.modules.drac import utils as test_utils from ironic.tests.unit.drivers.modules.drac import utils as test_utils
from ironic.tests.unit.objects import utils as obj_utils from ironic.tests.unit.objects import utils as obj_utils
sushy = importutils.try_import('sushy')
INFO_DICT = dict(db_utils.get_test_redfish_info(), **test_utils.INFO_DICT) INFO_DICT = dict(db_utils.get_test_redfish_info(), **test_utils.INFO_DICT)

View File

@ -18,8 +18,8 @@ Test class for DRAC inspection interface
from unittest import mock from unittest import mock
from dracclient import exceptions as drac_exceptions from dracclient import exceptions as drac_exceptions
from oslo_utils import importutils
from oslo_utils import units from oslo_utils import units
import sushy
from ironic.common import exception from ironic.common import exception
from ironic.common import states from ironic.common import states
@ -33,8 +33,6 @@ from ironic import objects
from ironic.tests.unit.drivers.modules.drac import utils as test_utils from ironic.tests.unit.drivers.modules.drac import utils as test_utils
from ironic.tests.unit.objects import utils as obj_utils from ironic.tests.unit.objects import utils as obj_utils
sushy = importutils.try_import('sushy')
INFO_DICT = test_utils.INFO_DICT INFO_DICT = test_utils.INFO_DICT

View File

@ -24,6 +24,7 @@ import json
from unittest import mock from unittest import mock
from oslo_utils import importutils from oslo_utils import importutils
import sushy
import ironic.common.boot_devices import ironic.common.boot_devices
from ironic.common import exception from ironic.common import exception
@ -42,7 +43,6 @@ from ironic.tests.unit.drivers.modules.drac import utils as test_utils
from ironic.tests.unit.objects import utils as obj_utils from ironic.tests.unit.objects import utils as obj_utils
dracclient_exceptions = importutils.try_import('dracclient.exceptions') dracclient_exceptions = importutils.try_import('dracclient.exceptions')
sushy = importutils.try_import('sushy')
INFO_DICT = test_utils.INFO_DICT INFO_DICT = test_utils.INFO_DICT

View File

@ -21,6 +21,7 @@ from unittest import mock
from dracclient import constants from dracclient import constants
from dracclient import exceptions as drac_exceptions from dracclient import exceptions as drac_exceptions
from oslo_utils import importutils from oslo_utils import importutils
import sushy
import tenacity import tenacity
from ironic.common import exception from ironic.common import exception
@ -39,7 +40,6 @@ from ironic.drivers.modules.redfish import utils as redfish_utils
from ironic.tests.unit.drivers.modules.drac import utils as test_utils from ironic.tests.unit.drivers.modules.drac import utils as test_utils
from ironic.tests.unit.objects import utils as obj_utils from ironic.tests.unit.objects import utils as obj_utils
sushy = importutils.try_import('sushy')
sushy_oem_idrac = importutils.try_import('sushy_oem_idrac') sushy_oem_idrac = importutils.try_import('sushy_oem_idrac')
INFO_DICT = test_utils.INFO_DICT INFO_DICT = test_utils.INFO_DICT

View File

@ -14,7 +14,7 @@
from unittest import mock from unittest import mock
from oslo_utils import importutils import sushy
from ironic.common import exception from ironic.common import exception
from ironic.conductor import task_manager from ironic.conductor import task_manager
@ -23,8 +23,6 @@ from ironic.drivers.modules.redfish import utils as redfish_utils
from ironic.tests.unit.drivers.modules.drac import utils as test_utils from ironic.tests.unit.drivers.modules.drac import utils as test_utils
from ironic.tests.unit.objects import utils as obj_utils from ironic.tests.unit.objects import utils as obj_utils
sushy = importutils.try_import('sushy')
INFO_DICT = test_utils.INFO_DICT INFO_DICT = test_utils.INFO_DICT

View File

@ -14,14 +14,13 @@
from unittest import mock from unittest import mock
from oslo_utils import importutils import sushy
from ironic.common import exception from ironic.common import exception
from ironic.common import states from ironic.common import states
from ironic.conductor import task_manager from ironic.conductor import task_manager
from ironic.conductor import utils as manager_utils from ironic.conductor import utils as manager_utils
from ironic.drivers.modules import deploy_utils from ironic.drivers.modules import deploy_utils
from ironic.drivers.modules.redfish import bios as redfish_bios
from ironic.drivers.modules.redfish import boot as redfish_boot from ironic.drivers.modules.redfish import boot as redfish_boot
from ironic.drivers.modules.redfish import utils as redfish_utils from ironic.drivers.modules.redfish import utils as redfish_utils
from ironic import objects from ironic import objects
@ -29,8 +28,6 @@ from ironic.tests.unit.db import base as db_base
from ironic.tests.unit.db import utils as db_utils from ironic.tests.unit.db import utils as db_utils
from ironic.tests.unit.objects import utils as obj_utils from ironic.tests.unit.objects import utils as obj_utils
sushy = importutils.try_import('sushy')
INFO_DICT = db_utils.get_test_redfish_info() INFO_DICT = db_utils.get_test_redfish_info()
@ -57,13 +54,6 @@ class RedfishBiosTestCase(db_base.DbTestCase):
self.node = obj_utils.create_test_node( self.node = obj_utils.create_test_node(
self.context, driver='redfish', driver_info=INFO_DICT) self.context, driver='redfish', driver_info=INFO_DICT)
@mock.patch.object(redfish_bios, 'sushy', None)
def test_loading_error(self):
self.assertRaisesRegex(
exception.DriverLoadError,
'Unable to import the sushy library',
redfish_bios.RedfishBIOS)
def test_get_properties(self): def test_get_properties(self):
with task_manager.acquire(self.context, self.node.uuid, with task_manager.acquire(self.context, self.node.uuid,
shared=True) as task: shared=True) as task:

View File

@ -15,7 +15,7 @@
from unittest import mock from unittest import mock
from oslo_utils import importutils import sushy
from ironic.common import boot_devices from ironic.common import boot_devices
from ironic.common import exception from ironic.common import exception
@ -31,8 +31,6 @@ from ironic.tests.unit.db import base as db_base
from ironic.tests.unit.db import utils as db_utils from ironic.tests.unit.db import utils as db_utils
from ironic.tests.unit.objects import utils as obj_utils from ironic.tests.unit.objects import utils as obj_utils
sushy = importutils.try_import('sushy')
INFO_DICT = db_utils.get_test_redfish_info() INFO_DICT = db_utils.get_test_redfish_info()
@ -51,13 +49,6 @@ class RedfishVirtualMediaBootTestCase(db_base.DbTestCase):
self.node = obj_utils.create_test_node( self.node = obj_utils.create_test_node(
self.context, driver='redfish', driver_info=INFO_DICT) self.context, driver='redfish', driver_info=INFO_DICT)
@mock.patch.object(redfish_boot, 'sushy', None)
def test_loading_error(self):
self.assertRaisesRegex(
exception.DriverLoadError,
'Unable to import the sushy library',
redfish_boot.RedfishVirtualMediaBoot)
@mock.patch.object(deploy_utils, 'get_boot_option', lambda node: 'ramdisk') @mock.patch.object(deploy_utils, 'get_boot_option', lambda node: 'ramdisk')
def test_parse_driver_info_ramdisk(self): def test_parse_driver_info_ramdisk(self):
with task_manager.acquire(self.context, self.node.uuid, with task_manager.acquire(self.context, self.node.uuid,

View File

@ -14,7 +14,7 @@
import datetime import datetime
from unittest import mock from unittest import mock
from oslo_utils import importutils import sushy
from ironic.common import exception from ironic.common import exception
from ironic.common import states from ironic.common import states
@ -29,8 +29,6 @@ from ironic.tests.unit.db import base as db_base
from ironic.tests.unit.db import utils as db_utils from ironic.tests.unit.db import utils as db_utils
from ironic.tests.unit.objects import utils as obj_utils from ironic.tests.unit.objects import utils as obj_utils
sushy = importutils.try_import('sushy')
INFO_DICT = db_utils.get_test_redfish_info() INFO_DICT = db_utils.get_test_redfish_info()

View File

@ -15,8 +15,8 @@
from unittest import mock from unittest import mock
from oslo_utils import importutils
from oslo_utils import units from oslo_utils import units
import sushy
from ironic.common import exception from ironic.common import exception
from ironic.common import states from ironic.common import states
@ -29,8 +29,6 @@ from ironic.tests.unit.db import base as db_base
from ironic.tests.unit.db import utils as db_utils from ironic.tests.unit.db import utils as db_utils
from ironic.tests.unit.objects import utils as obj_utils from ironic.tests.unit.objects import utils as obj_utils
sushy = importutils.try_import('sushy')
INFO_DICT = db_utils.get_test_redfish_info() INFO_DICT = db_utils.get_test_redfish_info()

View File

@ -16,8 +16,8 @@
import datetime import datetime
from unittest import mock from unittest import mock
from oslo_utils import importutils
from oslo_utils import units from oslo_utils import units
import sushy
from ironic.common import boot_devices from ironic.common import boot_devices
from ironic.common import boot_modes from ironic.common import boot_modes
@ -39,8 +39,6 @@ from ironic.tests.unit.db import base as db_base
from ironic.tests.unit.db import utils as db_utils from ironic.tests.unit.db import utils as db_utils
from ironic.tests.unit.objects import utils as obj_utils from ironic.tests.unit.objects import utils as obj_utils
sushy = importutils.try_import('sushy')
INFO_DICT = db_utils.get_test_redfish_info() INFO_DICT = db_utils.get_test_redfish_info()
@ -82,13 +80,6 @@ class RedfishManagementTestCase(db_base.DbTestCase):
return system_mock return system_mock
@mock.patch.object(redfish_mgmt, 'sushy', None)
def test_loading_error(self):
self.assertRaisesRegex(
exception.DriverLoadError,
'Unable to import the sushy library',
redfish_mgmt.RedfishManagement)
def test_get_properties(self): def test_get_properties(self):
with task_manager.acquire(self.context, self.node.uuid, with task_manager.acquire(self.context, self.node.uuid,
shared=True) as task: shared=True) as task:

View File

@ -15,7 +15,7 @@
from unittest import mock from unittest import mock
from oslo_utils import importutils import sushy
from ironic.common import exception from ironic.common import exception
from ironic.common import states from ironic.common import states
@ -27,8 +27,6 @@ from ironic.tests.unit.db import base as db_base
from ironic.tests.unit.db import utils as db_utils from ironic.tests.unit.db import utils as db_utils
from ironic.tests.unit.objects import utils as obj_utils from ironic.tests.unit.objects import utils as obj_utils
sushy = importutils.try_import('sushy')
INFO_DICT = db_utils.get_test_redfish_info() INFO_DICT = db_utils.get_test_redfish_info()
@ -47,13 +45,6 @@ class RedfishPowerTestCase(db_base.DbTestCase):
self.node = obj_utils.create_test_node( self.node = obj_utils.create_test_node(
self.context, driver='redfish', driver_info=INFO_DICT) self.context, driver='redfish', driver_info=INFO_DICT)
@mock.patch.object(redfish_power, 'sushy', None)
def test_loading_error(self):
self.assertRaisesRegex(
exception.DriverLoadError,
'Unable to import the sushy library',
redfish_power.RedfishPower)
def test_get_properties(self): def test_get_properties(self):
with task_manager.acquire(self.context, self.node.uuid, with task_manager.acquire(self.context, self.node.uuid,
shared=True) as task: shared=True) as task:

View File

@ -14,8 +14,8 @@
from unittest import mock from unittest import mock
from oslo_utils import importutils
from oslo_utils import units from oslo_utils import units
import sushy
from ironic.common import exception from ironic.common import exception
from ironic.common import states from ironic.common import states
@ -29,8 +29,6 @@ from ironic.tests.unit.db import base as db_base
from ironic.tests.unit.db import utils as db_utils from ironic.tests.unit.db import utils as db_utils
from ironic.tests.unit.objects import utils as obj_utils from ironic.tests.unit.objects import utils as obj_utils
sushy = importutils.try_import('sushy')
INFO_DICT = db_utils.get_test_redfish_info() INFO_DICT = db_utils.get_test_redfish_info()
@ -111,13 +109,6 @@ class RedfishRAIDTestCase(db_base.DbTestCase):
mock_drives} mock_drives}
self.physical_disks = mock_drives self.physical_disks = mock_drives
@mock.patch.object(redfish_raid, 'sushy', None)
def test_loading_error(self, mock_get_system):
self.assertRaisesRegex(
exception.DriverLoadError,
'Unable to import the sushy library',
redfish_raid.RedfishRAID)
def test__max_volume_size_bytes_raid0(self, mock_get_system): def test__max_volume_size_bytes_raid0(self, mock_get_system):
spans = redfish_raid._calculate_spans('0', 3) spans = redfish_raid._calculate_spans('0', 3)
max_size = redfish_raid._max_volume_size_bytes( max_size = redfish_raid._max_volume_size_bytes(

View File

@ -20,8 +20,8 @@ import time
from unittest import mock from unittest import mock
from oslo_config import cfg from oslo_config import cfg
from oslo_utils import importutils
import requests import requests
import sushy
from ironic.common import exception from ironic.common import exception
from ironic.drivers.modules.redfish import utils as redfish_utils from ironic.drivers.modules.redfish import utils as redfish_utils
@ -29,8 +29,6 @@ from ironic.tests.unit.db import base as db_base
from ironic.tests.unit.db import utils as db_utils from ironic.tests.unit.db import utils as db_utils
from ironic.tests.unit.objects import utils as obj_utils from ironic.tests.unit.objects import utils as obj_utils
sushy = importutils.try_import('sushy')
INFO_DICT = db_utils.get_test_redfish_info() INFO_DICT = db_utils.get_test_redfish_info()

View File

@ -15,7 +15,7 @@
from unittest import mock from unittest import mock
from oslo_utils import importutils import sushy
from ironic.common import exception from ironic.common import exception
from ironic.conductor import task_manager from ironic.conductor import task_manager
@ -26,8 +26,6 @@ from ironic.tests.unit.db import base as db_base
from ironic.tests.unit.db import utils as db_utils from ironic.tests.unit.db import utils as db_utils
from ironic.tests.unit.objects import utils as obj_utils from ironic.tests.unit.objects import utils as obj_utils
sushy = importutils.try_import('sushy')
INFO_DICT = db_utils.get_test_redfish_info() INFO_DICT = db_utils.get_test_redfish_info()

View File

@ -18,7 +18,6 @@ import os
import tempfile import tempfile
from unittest import mock from unittest import mock
from oslo_utils import importutils
from oslo_utils import uuidutils from oslo_utils import uuidutils
from ironic.common import images from ironic.common import images
@ -31,7 +30,6 @@ from ironic.tests.unit.db import base as db_base
from ironic.tests.unit.db import utils as db_utils from ironic.tests.unit.db import utils as db_utils
from ironic.tests.unit.objects import utils as obj_utils from ironic.tests.unit.objects import utils as obj_utils
sushy = importutils.try_import('sushy')
INFO_DICT = db_utils.get_test_redfish_info() INFO_DICT = db_utils.get_test_redfish_info()
INFO_DICT_ILO = db_utils.get_test_ilo_info() INFO_DICT_ILO = db_utils.get_test_ilo_info()

View File

@ -16,7 +16,6 @@
import socket import socket
from unittest import mock from unittest import mock
from oslo_utils import importutils
from oslo_utils import uuidutils from oslo_utils import uuidutils
from ironic.common import context as ironic_context from ironic.common import context as ironic_context
@ -30,8 +29,6 @@ from ironic import objects
from ironic.tests.unit.db import base as db_base from ironic.tests.unit.db import base as db_base
from ironic.tests.unit.objects import utils as obj_utils from ironic.tests.unit.objects import utils as obj_utils
sushy = importutils.try_import('sushy')
@mock.patch('time.sleep', lambda sec: None) @mock.patch('time.sleep', lambda sec: None)
class InspectFunctionTestCase(db_base.DbTestCase): class InspectFunctionTestCase(db_base.DbTestCase):