Add missing agent RAID compatibility for ilo5 and idrac
Software RAID relies on it. Change-Id: Id220ce3a2c2821ad1841add20f2138e65d1786bf
This commit is contained in:
parent
0e65f0134d
commit
c376cb3219
@ -25,7 +25,6 @@ from ironic.drivers.modules.drac import management
|
||||
from ironic.drivers.modules.drac import power
|
||||
from ironic.drivers.modules.drac import raid
|
||||
from ironic.drivers.modules.drac import vendor_passthru
|
||||
from ironic.drivers.modules import inspector
|
||||
from ironic.drivers.modules import ipxe
|
||||
from ironic.drivers.modules import noop
|
||||
from ironic.drivers.modules import pxe
|
||||
@ -69,13 +68,14 @@ class IDRACHardware(generic.GenericHardware):
|
||||
# if it is enabled by an operator (implying that the service is
|
||||
# installed).
|
||||
return [drac_inspect.DracWSManInspect, drac_inspect.DracInspect,
|
||||
drac_inspect.DracRedfishInspect, inspector.Inspector,
|
||||
noop.NoInspect]
|
||||
drac_inspect.DracRedfishInspect] + super(
|
||||
IDRACHardware, self).supported_inspect_interfaces
|
||||
|
||||
@property
|
||||
def supported_raid_interfaces(self):
|
||||
"""List of supported raid interfaces."""
|
||||
return [raid.DracWSManRAID, raid.DracRAID, noop.NoRAID]
|
||||
return [raid.DracWSManRAID, raid.DracRAID] + super(
|
||||
IDRACHardware, self).supported_raid_interfaces
|
||||
|
||||
@property
|
||||
def supported_vendor_interfaces(self):
|
||||
|
@ -24,7 +24,6 @@ from ironic.drivers.modules.ilo import management
|
||||
from ironic.drivers.modules.ilo import power
|
||||
from ironic.drivers.modules.ilo import raid
|
||||
from ironic.drivers.modules.ilo import vendor
|
||||
from ironic.drivers.modules import inspector
|
||||
from ironic.drivers.modules import noop
|
||||
|
||||
|
||||
@ -53,8 +52,8 @@ class IloHardware(generic.GenericHardware):
|
||||
@property
|
||||
def supported_inspect_interfaces(self):
|
||||
"""List of supported inspect interfaces."""
|
||||
return [inspect.IloInspect, inspector.Inspector,
|
||||
noop.NoInspect]
|
||||
return [inspect.IloInspect] + super(
|
||||
IloHardware, self).supported_inspect_interfaces
|
||||
|
||||
@property
|
||||
def supported_management_interfaces(self):
|
||||
@ -81,7 +80,8 @@ class Ilo5Hardware(IloHardware):
|
||||
@property
|
||||
def supported_raid_interfaces(self):
|
||||
"""List of supported raid interfaces."""
|
||||
return [raid.Ilo5RAID, noop.NoRAID]
|
||||
return [raid.Ilo5RAID] + super(
|
||||
Ilo5Hardware, self).supported_raid_interfaces
|
||||
|
||||
@property
|
||||
def supported_management_interfaces(self):
|
||||
|
@ -12,6 +12,8 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
from oslo_utils import uuidutils
|
||||
|
||||
from ironic.conductor import task_manager
|
||||
from ironic.drivers.modules import agent
|
||||
from ironic.drivers.modules import drac
|
||||
@ -42,7 +44,7 @@ class IDRACHardwareTestCase(db_base.DbTestCase):
|
||||
'no-inspect'],
|
||||
enabled_network_interfaces=['flat', 'neutron', 'noop'],
|
||||
enabled_raid_interfaces=[
|
||||
'idrac', 'idrac-wsman', 'no-raid'],
|
||||
'idrac', 'idrac-wsman', 'no-raid', 'agent'],
|
||||
enabled_vendor_interfaces=[
|
||||
'idrac', 'idrac-wsman', 'no-vendor'],
|
||||
enabled_bios_interfaces=[
|
||||
@ -108,11 +110,14 @@ class IDRACHardwareTestCase(db_base.DbTestCase):
|
||||
inspect=inspector.Inspector)
|
||||
|
||||
def test_override_with_raid(self):
|
||||
node = obj_utils.create_test_node(self.context, driver='idrac',
|
||||
raid_interface='no-raid')
|
||||
with task_manager.acquire(self.context, node.id) as task:
|
||||
self._validate_interfaces(task.driver,
|
||||
raid=noop.NoRAID)
|
||||
for iface, impl in [('agent', agent.AgentRAID),
|
||||
('no-raid', noop.NoRAID)]:
|
||||
node = obj_utils.create_test_node(self.context,
|
||||
uuid=uuidutils.generate_uuid(),
|
||||
driver='idrac',
|
||||
raid_interface=iface)
|
||||
with task_manager.acquire(self.context, node.id) as task:
|
||||
self._validate_interfaces(task.driver, raid=impl)
|
||||
|
||||
def test_override_no_vendor(self):
|
||||
node = obj_utils.create_test_node(self.context, driver='idrac',
|
||||
|
@ -16,10 +16,11 @@
|
||||
Test class for iLO Drivers
|
||||
"""
|
||||
|
||||
from oslo_utils import uuidutils
|
||||
|
||||
from ironic.conductor import task_manager
|
||||
from ironic.drivers import ilo
|
||||
from ironic.drivers.modules import agent
|
||||
from ironic.drivers.modules.ilo import management
|
||||
from ironic.drivers.modules.ilo import raid
|
||||
from ironic.drivers.modules import inspector
|
||||
from ironic.drivers.modules import iscsi_deploy
|
||||
@ -187,16 +188,6 @@ class Ilo5HardwareTestCase(db_base.DbTestCase):
|
||||
def test_default_interfaces(self):
|
||||
node = obj_utils.create_test_node(self.context, driver='ilo5')
|
||||
with task_manager.acquire(self.context, node.id) as task:
|
||||
self.assertIsInstance(task.driver.raid, raid.Ilo5RAID)
|
||||
self.assertIsInstance(task.driver.management,
|
||||
management.Ilo5Management)
|
||||
|
||||
def test_override_with_no_raid(self):
|
||||
self.config(enabled_raid_interfaces=['no-raid', 'ilo5'])
|
||||
node = obj_utils.create_test_node(self.context, driver='ilo5',
|
||||
raid_interface='no-raid')
|
||||
with task_manager.acquire(self.context, node.id) as task:
|
||||
self.assertIsInstance(task.driver.raid, noop.NoRAID)
|
||||
self.assertIsInstance(task.driver.boot,
|
||||
ilo.boot.IloVirtualMediaBoot)
|
||||
self.assertIsInstance(task.driver.console,
|
||||
@ -209,7 +200,19 @@ class Ilo5HardwareTestCase(db_base.DbTestCase):
|
||||
ilo.management.IloManagement)
|
||||
self.assertIsInstance(task.driver.power,
|
||||
ilo.power.IloPower)
|
||||
self.assertIsInstance(task.driver.raid, raid.Ilo5RAID)
|
||||
self.assertIsInstance(task.driver.rescue,
|
||||
noop.NoRescue)
|
||||
self.assertIsInstance(task.driver.vendor,
|
||||
ilo.vendor.VendorPassthru)
|
||||
|
||||
def test_override_raid(self):
|
||||
self.config(enabled_raid_interfaces=['agent', 'no-raid', 'ilo5'])
|
||||
for iface, impl in [('agent', agent.AgentRAID),
|
||||
('no-raid', noop.NoRAID)]:
|
||||
node = obj_utils.create_test_node(self.context,
|
||||
uuid=uuidutils.generate_uuid(),
|
||||
driver='ilo5',
|
||||
raid_interface=iface)
|
||||
with task_manager.acquire(self.context, node.id) as task:
|
||||
self.assertIsInstance(task.driver.raid, impl)
|
||||
|
5
releasenotes/notes/missing-sw-raid-b7fdc9259612970d.yaml
Normal file
5
releasenotes/notes/missing-sw-raid-b7fdc9259612970d.yaml
Normal file
@ -0,0 +1,5 @@
|
||||
---
|
||||
fixes:
|
||||
- |
|
||||
Fixes missing ``agent`` RAID compatibility for the ``ilo5`` and ``idrac``
|
||||
hardware type preventing software RAID for working with them.
|
Loading…
Reference in New Issue
Block a user