Adds MVP support for idrac-redfish to RAID interface. Based on
generic redfish implementation, but requires OEM extension
to check when `Immediate` time becomes available shortly
after IPA starts executing steps.
Does not support foreign disks, convert from non-RAID mode.
Story: 2008602
Task: 41778
Depends-On: https://review.opendev.org/c/x/sushy-oem-idrac/+/776224
Change-Id: Iefb7f882c97e33a176962e4e907163d9e4809445
This change adds idrac hardware type support of a BIOS 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 BIOS interface implementations it has
been supporting. The highest priority BIOS interface remains the same,
the one which relies on the Web Services Management (WS-Man) OOB
management protocol. The new 'idrac-redfish' immediately follows it.
Co-Authored-By: Eric Barrera <eric_barrera@dell.com>
Co-Authored-By: Richard G. Pioso <richard.pioso@dell.com>
Co-Authored-By: Mike Raineri <mraineri@gmail.com>
Story: 2008100
Task: 40803
Depends-On: https://review.opendev.org/#/c/750020/
Change-Id: Ic5a1da418dccb0f3ec92914909aacd7c339d8837
The BIOSInterface implementation for idrac-wsman Hardware Type was
missing and VendorInterface methods were used to configure BIOS instead.
This was not desired since it exposes a lot of vendor intricacies to the
operator and makes the existing mechanism unstable across Ironic releases.
This change introduces the implementation of BIOSInterface with the following
code changes:
1. update IDRACHardware class with supported_bios_interfaces() method
2. update setup.cfg with an entry for idrac-wsman in bios interfaces
3. Implement the DracWSManBIOS class with appropriate methods
4. Unit tests for the work
Change-Id: Ie85e30e2dfdfb1f199ac4d25f165e0cca033a4df
Co-authored-by: Richard Pioso <richard.pioso@dell.com>
Story: 2007400
Task: 38998
This change adds idrac hardware type support of a virtual media boot
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-virtual-media'.
The iDRAC Redfish Service almost entirely interoperates with the virtual
media boot workflow suggested by the Redfish standard. The only
difference is configuring the system to boot from the inserted virtual
media. The standard workflow expects it to be referred to as a CD-ROM or
floppy disk drive boot source, no different from their physical
counterparts. However, the iDRAC refers to them as virtual boot sources,
distinct from their physical counterparts. Presently, the standard does
not define virtual CD-ROM nor virtual floppy disk drive boot sources.
However, the iDRAC provides a Redfish OEM extension for setting the
system to boot from one of those virtual boot sources.
To circumvent the above issue, the Python class which implements
'idrac-redfish-virtual-media' is derived from the class which implements
the generic, vendor-independent 'redfish-virtual-media' interface. It
overrides the method which sets the boot device to facilitate use of the
aforementioned iDRAC Redfish Service OEM extension.
The idrac hardware type declares support for that new interface
implementation, in addition to all boot interface implementations it has
been supporting. The priority order is retained by assigning the new
'idrac-redfish-virtual-media' the lowest priority.
A new idrac hardware type Python package dependency is introduced. It is
on 'sushy-oem-idrac'.
[1] https://pypi.org/project/sushy-oem-idrac/
Co-Authored-By: Richard G. Pioso <richard.pioso@dell.com>
Story: 2006570
Task: 36675
Change-Id: I416019fc1ed3ab2a3a3dbc4443571123ef90e327
This change 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.
Co-Authored-By: Richard G. Pioso <richard.pioso@dell.com>
Change-Id: I6d8f5cd629e2e17eb86b6f8154a605050e0c7abe
This change adds initial idrac hardware type support of interface
implementations that utilize the Redfish out-of-band (OOB) management
protocol and are compatible with the integrated Dell Remote Access
Controller (iDRAC) baseboard management controller (BMC), presently
those of the management and power hardware interfaces. They are named
'idrac-redfish'.
It also introduces a new name for the 'idrac' interface implementations,
'idrac-wsman', and deprecates 'idrac'. They both use the Web Services
Management (WS-Man) OOB management protocol.
The idrac hardware type declares support for those new interface
implementations, in addition to all interface implementations it has
been supporting. The priority order of supported interfaces remains the
same. Interface implementations which rely on WS-Man continue to have
the highest priority, and the new 'idrac-wsman' is listed before the
deprecated 'idrac'.
Story: 2004592
Task: 36275
Change-Id: I11f002eff78d27369b3dbe9a9fbd5fc73496a5eb
I've tried my best to provide a correct matching for these, but
there are two exceptions:
* fake_drac uses iscsi deploy with None boot, which cannot work,
so changing both to fake
* some fake drivers are migrated to the 'fake' power interface,
which is changed to include soft power as well.
The latter means that all fake classic drivers now support fake
soft power actions, while previously only fake_soft_power did.
Now fake_soft_power is identical to fake and is left for backward
compatibility
Also wrote more tests to check correctness of this migration.
Change-Id: I00c9c6ed698b10f035e65428e1a20d733c7e544a
Partial-Bug: #1690185
Vendor interfaces must not be mandatory. Missing no-vendor implementation
means that we require operators to enable the idrac vendor interface when
the idrac hardware type is enabled.
Change-Id: I6768a37bc268e367eaf93b12660a80d31eeca0c0
Closes-Bug: #1732166
This change fixes an issue that caused a node using a Dell EMC
integrated Dell Remote Access Controller (iDRAC) classic driver,
'pxe_drac' or 'pxe_drac_inspector', to be placed in the 'clean failed'
state after a double manage/provide cycle, instead of the 'available'
state.
The deploy interface implementation used by iDRAC classic drivers has
been class ironic.drivers.modules.drac.deploy.DracDeploy, which is
derived from class ironic.drivers.modules.iscsi_deploy.ISCSIDeploy. The
only difference between them is that DracDeploy overrides the
prepare_cleaning() method to prevent the booting of the Ironic Python
Agent (IPA) ramdisk when only out-of-band RAID clean steps are
requested. However, it caused the issue and did not have its intended
effect, because Ironic Conductor boots the ramdisk regardless. The
Ironic Conductor should be modified to preclude the booting of the IPA
ramdisk fix, rather than leaving it to individual drivers.
The iDRAC classic drivers' deploy interface implementation has been
changed to ISCSIDeploy. Since class DracDeploy is no longer needed, its
source code and automated tests have been removed.
Change-Id: Ib2c9b7f9f780aaf5f6345825b1f6c9ddb4f9c41f
Closes-Bug: #1676387
Related-Bug: #1572529
Related-Bug: #1705741
This patch removes the deprecated agent lookup/heartbeat as vendor
passthru functionality from most of the drivers in following modules:
- ironic.drivers.agent
- ironic.drivers.pxe
- ironic.drivers.drac
- ironic.drivers.irmc
Some drivers are left untouched though:
- iLO and OneView drivers are a bit more complicated and will be fixed
in follow-up patches
- iBoot, WoL and AMT drivers will be fixed in ironic-staging-drivers
repo first and then removed from ironic tree.
Change-Id: Ia9ee46cda68ef823d1fe8e5ea03c1d5948810a50
Partial-Bug: #1640533
After set_bios_config is invoked, there is no way to check the progress
of the remote job on the DRAC card. list_unfinished_jobs on the
vendor-passthru interface provides a way to check its status.
Change-Id: I963504dbbec36e44312ccbf4455c45d6ec60908b
Closes-Bug: #1621515
Implements out-of-band inspection in the DRAC driver using inspection
interface.
Change-Id: I0d63f31473776551550f917dbc7237564881f566
Closes-bug: #1603454
To be specific, removed in this patch are:
* vendor passthru for the old ramdisk
* support for deploy_key
* various helper functions (like notify)
* devstack plugin support for the old ramdisk
Fixed:
* vendor passthru for drivers (add support for IPA to seamicro one)
* documentation for iSCSI-based deployment
Change-Id: I0fc25c64339bc4c1f03ccb35cbc4efad4a7ad966
In order to the pxe_drac to work with IPA ramdisks, the vendor interface
should expose the lookup() method. This patch is adding it to the list
of mapped vendor methods for that driver.
Closes-Bug: #1541858
Change-Id: I0cc13550bbf980ee48579d750120d4c33d1fe6a1
DRAC specific code from Ironic is moving to its own project, to
python-dracclient project. This patch finishes refactoring code in
Ironic to use the new library.
Change-Id: I6223dbbeb770d773ebdd72277017156cbdb1d035
DRAC specific code from Ironic is moving to its own project, to
python-dracclient project. This patch starts using the new library.
Change-Id: I68251fc2b5dd169bb22bbbe38fe9eea16c5ac806
Partial-Bug: #1454492
Depends-On: Iab9d9f7e4e25e3d3fdec9b28fe49a7226e68c9ff
This commit refactors pxe.PXEDeploy. It moves code
related to PXE booting into a new boot interface
pxe.PXEBoot and keeps rest of the iSCSI deploy related
code in iscsi_deploy.ISCSIDeploy.
Implements: blueprint new-boot-interface
Change-Id: Ie96c02709200bd50f56458079e27b1f1daa60081
Change-Id: I1f02f8eb14b5aae34714ccaf4fd876a547272b1f
Co-Authored-By: Chris Dearborn <Christopher_Dearborn@dell.com>
Signed-off-by: Victor Lowther <victor.lowther@gmail.com>
This patch enforces the rules E123, E126, E127, and E128 in the ironic
code base:
E123 - closing bracket does not match indentation of opening
bracket’s line
E126 - continuation line over-indented for hanging indent
E127 - continuation line over-indented for visual indent
E128 - continuation line under-indented for visual indent
This fixes any parts of the current code which fails these rules and
removes these rules from the tox.ini flake8 ignore list.
Change-Id: Ia96582b5e9abc088d6c1694afc93c59be4a4065c
Closes-Bug: 1421522
This patch changes module names, allows importing new module
name for inspector (will be later changed to ironic_inspector_client).
We need this patch to unbreak devstack support.
Change-Id: I34cc4336dcd7e8d44aebecf5c85b52c83f0c717b
Start using in-band inspection with ironic-discoverd, but do not
instantiate the driver interface when discoverd support is disabled in
the config file.
* Check the CONF option prior to instantiating DiscoverdInspect class
and binding it to any driver interface
* Updates unit tests to better test the loading (or lack thereof) of the
driver.inspect interface, based on the CONF option
If in-band discovery is enabled by setting [discoverd] enabled=True in
the config file, then the following drivers will bind it to their
inspect interface:
* pxe_ssh
* pxe_ipmitool
* pxe_ipminative
* pxe_drac
This patch also fixes a few nits (copied from previous reviews).
The bug tagged below presently affects only the "fake" driver. Without
the above-mentioned changes, enabling discoverd for any
production-facing driver would have led to the problem described there.
Updated UnsupportedDriverExtension error message to suggest that
the extension might be disabled.
Co-authored-by: Devananda van der Veen <devananda.vdv@gmail.com>
Closes-bug: #1431999
Implements: blueprint inband-properties-discovery
Change-Id: I1dd844525852b1ec806f286d01dfc95313c6ad94
oslo.utils 1.2.0 has changed its namespace from oslo.utils to
oslo_utils.
Co-Authored-By: Victor Sergeyev <vsergeyev@mirantis.com>
Change-Id: I07ce4791cfe3b32efb02be60f792bd1c4f03d82f
Without the PXE VendorPassthru interface to expose the "pass_deploy_info"
method in the vendor_passthru endpoint of the API the DRAC it can't
continue the deployment after the ramdisk is booted.
Closes-Bug: #1379705
Change-Id: I21042cbb95a486742abfcb430471d01cd73b3a4a
DRAC driver and ISCSI deploy module still use excutils, importutils
and strutils from ironic.openstack.common. Now oslo.utils is used
instead.
Closes-bug: #1366032
Change-Id: I059527c3a6f90ef5bb93061c2a069e1af1a91b74
What it says. The get_sensors_data() won't be implemented as part of
this patch because it's outside the scope of the blueprint.
Co-Authored-By: Imre Farkas <ifarkas@redhat.com>
Implements blueprint drac-management-driver
Change-Id: I9cae3156b6af016bfbf64cb3c117fdec8536f714
Now that ironic supports oslo.i18n, using the install function to
inject _ into the builtin has been deprecated. New i18n common module
used instead. In one module _ was imported from gettextutils, now
also changed to i18n import.
Closes-bug: #1346406
Change-Id: I672a975d479991982c24031e834a26e2c2811890