
This patch introduces standard Redfish virtual media boot support to ironic. The patch implements basic boot interface features along with devstack plugin support for virtual media boot. Functionally, redfish boot interface supports the same set of features as PXE. Unlike other virtual media boot implementations (e.g. iLo), this patch does not require user-built deploy/rescue/boot ISO images for virtual media boot. Instead, ironic will build necessary images out of common kernel/ramdisk pair (though user needs to provide ESP image). Story: 1526753 Task: 10389 Co-Authored-By: Shivanand Tendulker <stendulker@gmail.com> Change-Id: I0db0a64c5ccf260f5a0695dbe994af1e11f71517
57 lines
2.1 KiB
Python
57 lines
2.1 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 ironic.drivers import generic
|
|
from ironic.drivers.modules import inspector
|
|
from ironic.drivers.modules import ipxe
|
|
from ironic.drivers.modules import noop
|
|
from ironic.drivers.modules import pxe
|
|
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 inspect as redfish_inspect
|
|
from ironic.drivers.modules.redfish import management as redfish_mgmt
|
|
from ironic.drivers.modules.redfish import power as redfish_power
|
|
|
|
|
|
class RedfishHardware(generic.GenericHardware):
|
|
"""Redfish hardware type."""
|
|
|
|
@property
|
|
def supported_bios_interfaces(self):
|
|
"""List of supported bios interfaces."""
|
|
return [redfish_bios.RedfishBIOS, noop.NoBIOS]
|
|
|
|
@property
|
|
def supported_management_interfaces(self):
|
|
"""List of supported management interfaces."""
|
|
return [redfish_mgmt.RedfishManagement]
|
|
|
|
@property
|
|
def supported_power_interfaces(self):
|
|
"""List of supported power interfaces."""
|
|
return [redfish_power.RedfishPower]
|
|
|
|
@property
|
|
def supported_inspect_interfaces(self):
|
|
"""List of supported power interfaces."""
|
|
return [redfish_inspect.RedfishInspect, inspector.Inspector,
|
|
noop.NoInspect]
|
|
|
|
@property
|
|
def supported_boot_interfaces(self):
|
|
"""List of supported boot interfaces."""
|
|
return [redfish_boot.RedfishVirtualMediaBoot,
|
|
ipxe.iPXEBoot, pxe.PXEBoot]
|