Merge "Add Redfish inspect interface to idrac HW type"
This commit is contained in:
commit
9fa39045da
@ -55,7 +55,8 @@ class IDRACHardware(generic.GenericHardware):
|
||||
# if it is enabled by an operator (implying that the service is
|
||||
# installed).
|
||||
return [drac_inspect.DracWSManInspect, drac_inspect.DracInspect,
|
||||
inspector.Inspector, noop.NoInspect]
|
||||
drac_inspect.DracRedfishInspect, inspector.Inspector,
|
||||
noop.NoInspect]
|
||||
|
||||
@property
|
||||
def supported_raid_interfaces(self):
|
||||
|
@ -26,6 +26,7 @@ from ironic.common import states
|
||||
from ironic.common import utils
|
||||
from ironic.drivers import base
|
||||
from ironic.drivers.modules.drac import common as drac_common
|
||||
from ironic.drivers.modules.redfish import inspect as redfish_inspect
|
||||
from ironic import objects
|
||||
|
||||
drac_exceptions = importutils.try_import('dracclient.exceptions')
|
||||
@ -35,6 +36,17 @@ LOG = logging.getLogger(__name__)
|
||||
METRICS = metrics_utils.get_metrics_logger(__name__)
|
||||
|
||||
|
||||
class DracRedfishInspect(redfish_inspect.RedfishInspect):
|
||||
"""iDRAC Redfish interface for inspection-related actions.
|
||||
|
||||
Presently, this class entirely defers to its base class, a generic,
|
||||
vendor-independent Redfish interface. Future resolution of Dell EMC-
|
||||
specific incompatibilities and introduction of vendor value added
|
||||
should be implemented by this class.
|
||||
"""
|
||||
pass
|
||||
|
||||
|
||||
class DracWSManInspect(base.InspectInterface):
|
||||
|
||||
def get_properties(self):
|
||||
|
@ -31,11 +31,12 @@ class IDRACHardwareTestCase(db_base.DbTestCase):
|
||||
super(IDRACHardwareTestCase, self).setUp()
|
||||
self.config(enabled_hardware_types=['idrac'],
|
||||
enabled_management_interfaces=[
|
||||
'idrac', 'idrac-wsman', 'idrac-redfish'],
|
||||
'idrac', 'idrac-redfish', 'idrac-wsman'],
|
||||
enabled_power_interfaces=[
|
||||
'idrac', 'idrac-wsman', 'idrac-redfish'],
|
||||
'idrac', 'idrac-redfish', 'idrac-wsman'],
|
||||
enabled_inspect_interfaces=[
|
||||
'idrac', 'idrac-wsman', 'inspector', 'no-inspect'],
|
||||
'idrac', 'idrac-redfish', 'idrac-wsman', 'inspector',
|
||||
'no-inspect'],
|
||||
enabled_network_interfaces=['flat', 'neutron', 'noop'],
|
||||
enabled_raid_interfaces=[
|
||||
'idrac', 'idrac-wsman', 'no-raid'],
|
||||
@ -140,3 +141,11 @@ class IDRACHardwareTestCase(db_base.DbTestCase):
|
||||
task.driver,
|
||||
management=drac.management.DracRedfishManagement,
|
||||
power=drac.power.DracRedfishPower)
|
||||
|
||||
def test_override_with_redfish_inspect(self):
|
||||
node = obj_utils.create_test_node(self.context, driver='idrac',
|
||||
inspect_interface='idrac-redfish')
|
||||
with task_manager.acquire(self.context, node.id) as task:
|
||||
self._validate_interfaces(
|
||||
task.driver,
|
||||
inspect=drac.inspect.DracRedfishInspect)
|
||||
|
@ -0,0 +1,18 @@
|
||||
---
|
||||
features:
|
||||
- |
|
||||
Adds ``idrac`` hardware type support of an inspect interface
|
||||
implementation that utilizes the Redfish out-of-band (OOB)
|
||||
management protocol and is compatible with the integrated Dell
|
||||
Remote Access Controller (iDRAC) baseboard management controller
|
||||
(BMC). It is named ``idrac-redfish``.
|
||||
|
||||
The ``idrac`` hardware type declares support for that new interface
|
||||
implementation, in addition to all inspect interface implementations
|
||||
it has been supporting. The highest priority inspect interfaces
|
||||
remain the same, those which rely on the Web Services Management
|
||||
(WS-Man) OOB management protocol. The new 'idrac-redfish'
|
||||
immediately follows those. It now supports the following inspect
|
||||
interface implementations, listed in priority order from highest to
|
||||
lowest: ``idrac-wsman``, ``idrac``, ``idrac-redfish``,
|
||||
``inspector``, and ``no-inspect``.
|
@ -89,6 +89,7 @@ ironic.hardware.interfaces.deploy =
|
||||
ironic.hardware.interfaces.inspect =
|
||||
fake = ironic.drivers.modules.fake:FakeInspect
|
||||
idrac = ironic.drivers.modules.drac.inspect:DracInspect
|
||||
idrac-redfish = ironic.drivers.modules.drac.inspect:DracRedfishInspect
|
||||
idrac-wsman = ironic.drivers.modules.drac.inspect:DracWSManInspect
|
||||
ilo = ironic.drivers.modules.ilo.inspect:IloInspect
|
||||
inspector = ironic.drivers.modules.inspector:Inspector
|
||||
|
Loading…
Reference in New Issue
Block a user