ironic.drivers.modules.redfish.management module¶
- class ironic.drivers.modules.redfish.management.RedfishManagement(*args, **kwargs)[source]¶
Bases:
ManagementInterface- attach_virtual_media(task, device_type, image_url)[source]¶
Attach a virtual media device to the node.
- Parameters:
task – A task from TaskManager.
device_type – A device type from
ironic.common.boot_devices.VMEDIA_DEVICES.image_url – URL of the image to attach, HTTP or HTTPS.
- clear_secure_boot_keys(task)[source]¶
Clear all secure boot keys.
- Parameters:
task – a task from TaskManager.
- Raises:
UnsupportedDriverExtension if secure boot is now supported.
- Raises:
RedfishError on runtime driver error.
- detach_virtual_media(task, device_types=None)[source]¶
Detach some or all virtual media devices from the node.
- Parameters:
task – A task from TaskManager.
device_types – A list of device types from
ironic.common.boot_devices.VMEDIA_DEVICES. If not provided, all devices are detached.
- detect_vendor(task)[source]¶
Detects and returns the hardware vendor.
Uses the System’s Manufacturer field.
- Parameters:
task – A task from TaskManager.
- Raises:
InvalidParameterValue if an invalid component, indicator or state is specified.
- Raises:
MissingParameterValue if a required parameter is missing
- Raises:
RedfishError on driver-specific problems.
- Returns:
String representing the BMC reported Vendor or Manufacturer, otherwise returns None.
- get_boot_device(task)[source]¶
Get the current boot device for a node.
- Parameters:
task – a task from TaskManager.
- Raises:
InvalidParameterValue on malformed parameter(s)
- Raises:
MissingParameterValue on missing parameter(s)
- Raises:
RedfishConnectionError when it fails to connect to Redfish
- Raises:
RedfishError on an error from the Sushy library
- Returns:
a dictionary containing:
- boot_device:
the boot device, one of
ironic.common.boot_devicesor None if it is unknown.- persistent:
Boolean value or None, True if the boot device persists, False otherwise. None if it’s unknown.
- get_boot_mode(task)[source]¶
Get the current boot mode for a node.
Provides the current boot mode of the node.
- Parameters:
task – A task from TaskManager.
- Raises:
MissingParameterValue if a required parameter is missing
- Raises:
DriverOperationError or its derivative in case of driver runtime error.
- Returns:
The boot mode, one of
ironic.common.boot_modeor None if it is unknown.
- get_indicator_state(task, component, indicator)[source]¶
Get current state of the indicator of the hardware component.
- Parameters:
task – A task from TaskManager.
component – The hardware component, one of
ironic.common.components.indicator – Indicator ID (as reported by get_supported_indicators).
- Raises:
MissingParameterValue if a required parameter is missing
- Raises:
RedfishError on an error from the Sushy library
- Returns:
Current state of the indicator, one of
ironic.common.indicator_states.
- get_mac_addresses(task)[source]¶
Get MAC address information for the node.
- Parameters:
task – A TaskManager instance containing the node to act on.
- Raises:
RedfishConnectionError when it fails to connect to Redfish
- Raises:
RedfishError on an error from the Sushy library
- Returns:
A list of MAC addresses for the node
- get_node_health(task)[source]¶
Get the current health status for a node.
Retrieves the hardware health status from the Redfish System resource. The health status represents the overall condition of the server hardware, including components like processors, memory, fans, power supplies, storage, etc.
- Parameters:
task – A task from TaskManager.
- Raises:
RedfishConnectionError when it fails to connect to Redfish
- Raises:
RedfishError on an error from the Sushy library
- Returns:
One of
ironic.common.health_statesconstants (OK, WARNING, CRITICAL) or None if health status is not available.
- get_properties()[source]¶
Return the properties of the interface.
- Returns:
dictionary of <property name>:<property description> entries.
- get_secure_boot_state(task)[source]¶
Get the current secure boot state for the node.
- Parameters:
task – A task from TaskManager.
- Raises:
MissingParameterValue if a required parameter is missing
- Raises:
RedfishError or its derivative in case of a driver runtime error.
- Raises:
UnsupportedDriverExtension if secure boot is not supported by the hardware.
- Returns:
Boolean or None if status cannot be retrieved
- get_sensors_data(task)[source]¶
Get sensors data.
- Parameters:
task – a TaskManager instance.
- Raises:
FailedToGetSensorData when getting the sensor data fails.
- Raises:
FailedToParseSensorData when parsing sensor data fails.
- Raises:
InvalidParameterValue if required parameters are missing.
- Raises:
MissingParameterValue if a required parameter is missing.
- Returns:
returns a dict of sensor data grouped by sensor type.
- get_supported_boot_devices(task)[source]¶
Get a list of the supported boot devices.
- Parameters:
task – a task from TaskManager.
- Returns:
A list with the supported boot devices defined in
ironic.common.boot_devices.
- get_supported_boot_modes(task)[source]¶
Get a list of the supported boot modes.
- Parameters:
task – A task from TaskManager.
- Returns:
A list with the supported boot modes defined in
ironic.common.boot_modes. If boot mode support can’t be determined, empty list is returned.
- get_supported_indicators(task, component=None)[source]¶
Get a map of the supported indicators (e.g. LEDs).
- Parameters:
task – A task from TaskManager.
component – If not None, return indicator information for just this component, otherwise return indicators for all existing components.
- Returns:
A dictionary of hardware components (
ironic.common.components) as keys with values being dictionaries having indicator IDs as keys and indicator properties as values.{ 'chassis': { 'enclosure-0': { "readonly": true, "states": [ "OFF", "ON" ] } }, 'system': 'blade-A': { "readonly": true, "states": [ "OFF", "ON" ] } }, 'drive': 'ssd0': { "readonly": true, "states": [ "OFF", "ON" ] } } }
- get_virtual_media(task)[source]¶
Get all virtual media devices from the node.
- Parameters:
task – A task from TaskManager.
- inject_nmi(task)[source]¶
Inject NMI, Non Maskable Interrupt.
Inject NMI (Non Maskable Interrupt) for a node immediately.
- Parameters:
task – A TaskManager instance containing the node to act on.
- Raises:
InvalidParameterValue on malformed parameter(s)
- Raises:
MissingParameterValue on missing parameter(s)
- Raises:
RedfishConnectionError when it fails to connect to Redfish
- Raises:
RedfishError on an error from the Sushy library
- reset_secure_boot_keys_to_default(task)[source]¶
Reset secure boot keys to manufacturing defaults.
- Parameters:
task – a task from TaskManager.
- Raises:
UnsupportedDriverExtension if secure boot is now supported.
- Raises:
RedfishError on runtime driver error.
- restore_boot_device(task, system)[source]¶
Restore boot device if needed.
Checks the redfish_boot_device internal flag and sets the one-time boot device accordingly. A warning is issued if it fails.
This method is supposed to be called from the Redfish power interface and should be considered private to the Redfish hardware type.
- Parameters:
task – a task from TaskManager.
system – a Redfish System object.
- set_bmc_clock(task, target_datetime, datetime_local_offset=None)[source]¶
Set the BMC clock using Redfish Manager resource.
- Parameters:
task – a TaskManager instance containing the node to act on.
target_datetime – The datetime to set in ISO8601 format
datetime_local_offset – The local time offset from UTC (optional)
- Raises:
RedfishError if the operation fails
- set_boot_device(task, device, persistent=False)[source]¶
Set the boot device for a node.
Set the boot device to use on next reboot of the node.
- Parameters:
task – a task from TaskManager.
device – the boot device, one of
ironic.common.boot_devices.persistent – Boolean value. True if the boot device will persist to all future boots, False if not. Default: False.
- Raises:
InvalidParameterValue on malformed parameter(s)
- Raises:
MissingParameterValue on missing parameter(s)
- Raises:
RedfishConnectionError when it fails to connect to Redfish
- Raises:
RedfishError on an error from the Sushy library
- set_boot_mode(task, mode)[source]¶
Set the boot mode for a node.
Set the boot mode to use on next reboot of the node.
- Parameters:
task – A task from TaskManager.
mode – The boot mode, one of
ironic.common.boot_modes.
- Raises:
InvalidParameterValue if an invalid boot mode is specified.
- Raises:
MissingParameterValue if a required parameter is missing
- Raises:
RedfishConnectionError when it fails to connect to Redfish
- Raises:
RedfishError on an error from the Sushy library
- set_indicator_state(task, component, indicator, state)[source]¶
Set indicator on the hardware component to the desired state.
- Parameters:
task – A task from TaskManager.
component – The hardware component, one of
ironic.common.components.indicator – Indicator ID (as reported by get_supported_indicators).
state – Desired state of the indicator, one of
ironic.common.indicator_states.
- Raises:
InvalidParameterValue if an invalid component, indicator or state is specified.
- Raises:
MissingParameterValue if a required parameter is missing
- Raises:
RedfishError on an error from the Sushy library
- set_secure_boot_state(task, state)[source]¶
Set the current secure boot state for the node.
- Parameters:
task – A task from TaskManager.
state – A new state as a boolean.
- Raises:
MissingParameterValue if a required parameter is missing
- Raises:
RedfishError or its derivative in case of a driver runtime error.
- Raises:
UnsupportedDriverExtension if secure boot is not supported by the hardware.
- update_firmware(task, firmware_images)[source]¶
Updates the firmware on the node.
- Parameters:
task – a TaskManager instance containing the node to act on.
firmware_images – A list of firmware images are to apply.
- Returns:
None if it is completed.
- Raises:
RedfishError on an error from the Sushy library.
- validate(task)[source]¶
Validates the driver information needed by the redfish driver.
- Parameters:
task – a TaskManager instance containing the node to act on.
- Raises:
InvalidParameterValue on malformed parameter(s)
- Raises:
MissingParameterValue on missing parameter(s)
- verify_bmc_clock(task)[source]¶
Verify and auto-set the BMC clock to the current UTC time.
This step compares the system UTC time to the BMC’s Redfish datetime. If the difference exceeds 1 second, it attempts to sync the time. Verification fails only if the BMC time remains incorrect after the update.