Commit Graph

132 Commits (ca5b2feeee47e06ade1e62b09c28118e761378a8)

Author SHA1 Message Date
Riccardo Pittau c8c83ef544 Migrate to pysnmp lextudio ecosystem
The pysnmp library is not maintained since 4 years now and it's
incompatible with recent libraries like pyasn1.
Its fork pysnmp-lextudio is regularly maintained, we should move
to that.

Change-Id: I3b7b5c0cf2f7d669b265669d27e0eaca0dd1fc2a
2023-05-11 08:52:52 +02:00
Aija Jauntēva 397e49a5e6 Fix idrac-redfish RAID controller mode conversion
PERC 9 and PERC 10 might not be in RAID mode with no or limited RAID
support. This fixes to convert any eligible controllers to RAID mode
during delete_configuration clean step or deploy step.

Story: 2010272
Task: 46199

Change-Id: I5e85df95a66aed9772ae0660b2c85ca3a39b96c7
2022-09-15 03:36:31 -04:00
Zuul b9af8e4ef3 Merge "Update sushy-oem-idrac version" 2022-09-14 22:11:05 +00:00
Aija Jauntēva e6e4d7ccda Update sushy-oem-idrac version
Update sushy-oem-idrac version to indicate Zed compatibility with
5.*.* releases.

Change-Id: Ifc69d3b267592bc8c087f10d84eaef8d46c19d96
2022-09-14 12:17:02 +00:00
ankit 9c19dd6ef3 Adds create_csr and add_https_certificate clean step
This commit adds new clean steps create_csr and add_https_certificate
to allow users to create certificate signing request and adds
https certificate to the iLO.

Story: 2009118
Task: 43016
Change-Id: I1e2da0e0da5e397b6e519e817e0bf60a02bbf007
2022-09-09 07:44:02 +00:00
Shukun Song 79f82c0262 [iRMC] Add SNMPv3 authentication functionality
Currently when using SNMPv3, iRMC driver does not use SNMPv3
authentication parameters so the SNMPv3 authentication will
always fail. And iRMC cannot recognize FIPS mode, so when FIPS mode
is enabled, iRMC driver could still use non-FIPS-compliant algorithms.

This commit changes iRMC driver to require and use SNMPv3
authentication parameters when 'irmc_snmp_version' is set to v3 and
also makes iRMC driver to force 'irmc_snmp_version' to v3,
'irmc_snmp_auth_proto' to SHA and 'irmc_snmp_priv_proto' to AES
when FIPS mode is enabled, because currently among the algorithms
supported by iRMC, only SHA and AES are FIPS compliant.

Change-Id: Id6f8996e4d103f849325f54fe0619b4acb43453a
Story: 2010085
Task: 45590
2022-07-15 16:59:05 +09:00
Riccardo Pittau e11cfdb849 Update minimum requirements for ilo drivers
The proliantutils version needed is updated to 2.13.0
When running tests with older versions we get the error:
AttributeError: None does not have the attribute 'IloClient'

Change-Id: I6ab0672679c9d929c1e7c43a5966e6ad1e5353c0
Co-Authored-By: Thomas Goirand <>
2022-03-02 16:00:53 +01:00
Aija Jauntēva ccd1f34d5b Update python-dracclient version
Update python-dracclient version to indicate Yoga compatibility with
8.*.* releases.

Version 8.0.0 is available from PyPI [1].


Change-Id: I07aa527cf13a8af63e12133508fdfd94d6aaf197
2022-02-22 05:37:45 -05:00
Aija Jauntēva 89cf1e7f6b Update idrac-redfish export configuration step
Add to ignore destructive settings during export. User can still put
those back during import manually.

Change-Id: I7d4c08082cadec399227ee4546e7353ff6bd2ae8
2022-01-14 11:18:03 +00:00
Dmitry Tantsur 76e99a30f7 Enable Redfish by default
Redfish has become an established technology with growing popularity.
By enabling it by default we make it easier for operators to use Ironic,
especially its advanced features, out of box.

Bump stevedore to match sushy.

Change-Id: I94dd4066ac598a7e5c2e0812e1ff286de5d164a2
2021-11-05 13:51:06 +01:00
Aija Jauntēva 38bba45ae8 Update python-dracclient version
Update python-dracclient version to indicate Xena compatibility with
7.*.* releases.

Version 7.0.0 is available from PyPI [1].


Change-Id: I399f1525a473afc0783a52dabf5f85f820794e24
2021-09-21 09:57:30 -04:00
Aija Jauntēva 50c87cf633 Fix clear foreign config in idrac-redfish RAID
After volumes are deleted in Redfish RAID also
clear foreign config if there is any.

Story: 2009160
Task: 43145

Change-Id: Ifde4656b4edd387ce2db2dbfc4c5ede261fafc70
2021-09-14 09:43:07 -04:00
Aija Jauntēva fbb0020ab7 Remove manager param for iDRAC OEM calls
Methods don't need to pass manager to execute OEM
manager method because it already has that context.
This was added for backportability.

Change-Id: I67e89f72b1d847df233d2ffec51ca5e8963f51e9
2021-08-30 04:46:43 -04:00
Iury Gregory Melo Ferreira 4bc5142df2 Add vendor_passthru method for subscriptions
This patch adds two new vendor_passthru methods for Redfish:
- create_subscription (create a sbuscription)
- delete_subscription (delete a subscription)
- get_all_subscriptions (get all subscriptions on the node)
- get_subscription (get a single subscription)

Unit Tests in test_utils split into multiple classes to avoid random
failures due to cache.

Tested in bifrost env using two different HW:
- HPE EL8000 e910
- Dell R640

Story: #2009061
Task: #42854
Change-Id: I5b7fa99b0ee64ccdc0f62d9686df655082db3665
2021-07-21 10:27:32 +02:00
Bob Fournier 0ad427b78c Retrieve BIOS registry from sushy
Get the BIOS Registry from Sushy and store the fields in the Ironic
DB with the corresponding entry in the BIOS setting.

Story: #2008571
Task: #42484
Change-Id: I606c5de9077931707ebd15c3adf506badd95ea29
2021-05-19 09:32:01 -04:00
Richard Pioso 90d21edbfd Update python-dracclient version
Update python-dracclient version to indicate Wallaby compatibility with
6.*.* releases.

Version 6.0.0 is available from PyPI [1].


Change-Id: Ia7093a3ed48e19197f74da9e1c49416a974a76be
2021-04-06 12:48:40 -04:00
DhuldevValekar3 601f6d51f6 Add iDRAC management via Redfish to idrac HW type
This change adds support for managing an iDRAC -- reset, clear job
queue, and reset to known good state -- via the Redfish out-of-band
(OOB) management protocol to the idrac hardware type. This is offered by
new idrac-redfish management hardware interface implementation cleaning
steps: reset_idrac, clear_job_queue, and known_good_state.
known_good_state both resets an iDRAC and clears its job queue.

Story: 2007617
Task: 39628

Change-Id: Iad69c8d7cf3a373f5cfcc619a479a106efa2e4d4
2021-03-31 09:13:59 -04:00
Aija Jauntēva 952695be33 Add Redfish RAID interface to idrac HW type
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
Change-Id: Iefb7f882c97e33a176962e4e907163d9e4809445
2021-03-19 12:11:50 -04:00
Nisha Agarwal 9220f97ed7 Add runtime gpu capabilities to ilo inspection
Add gpu related dynamic capabilities in ilo inspection.
It would add following dynamic capabilities:

gpu_<vendor>_count : Integer
gpu_<gpu_device_name>_count : Integer
gpu_<gpu_device_name> : boolean

story: 2008702
task: 42023

Change-Id: Ic785fbe8a40d8a999e7e319a6505b46f82ba8344
2021-03-18 07:21:58 +00:00
Bill Dodd d7f4da2376 Add Redfish RAID management to Ironic
The Redfish hardware type does not currently implement the RAID
hardware interface.

This patch implements the Redfish RAID interface, allowing operators
to specify the desired RAID configuration on Ironic Redfish nodes.

Story: 2003514
Task: 24789

Change-Id: Icf5ca865e0c1e168b96659229df622698bea1503
2021-03-03 10:41:56 -06:00
Dmitry Tantsur 33d51f221f Redfish secure boot management
Story: #2008270
Task: #41137
Change-Id: Ied53f8dc5b93522ac9ffc25ec93ad2347a7d1c7c
2021-01-26 17:15:46 +01:00
Mudit 101fc29686 Add GPU reporting to idrac-wsman inspect interface
This patch implements reporting number of NVIDIA Tesla T4
devices connected to a system by discovering such devices
and reporting them through capability 'pci_gpu_devices'.

Change-Id: If713895f05f08a9827c4c085108abb3e388b2a2e
Story: 2008118
Task: 40839
2020-09-30 18:33:53 -04:00
Richard Pioso eae15a40e3 Update 'idrac' driver requirements for Victoria
Change-Id: Ib3ad5a0f41e8a5c5eda3fa43aac3ea74624528fd
2020-09-28 18:37:05 -04:00
Richard Pioso 65d5066394 Fix redfish BIOS to use @Redfish.SettingsApplyTime
This change fixes the 'redfish' BIOS interface 'apply_configuration'
cleaning/deploy step to work with Redfish Services that must be supplied
the Distributed Management Task Force (DMTF) Redfish standard
@Redfish.SettingsApplyTime annotation [1] to specify when to apply the
requested settings, such as the Dell EMC integrated Dell Remote Acesss
Controller (iDRAC).

Such services, typically offered by baseboard management controllers
(BMC), require POST of the annotation, along with the future intended
state of the settings. Otherwise, they may never be applied.

When the annotation is not supported, it is not provided with the future
intended state of the settings.


Co-Authored-By: Eric Barrera <>
Co-Authored-By: Aija Jauntēva <>
Co-Authored-By: Mike Raineri <>
Story: 2008163
Task: 40913
Change-Id: I28a948f306b40c36b12e6f786e1e43a61e84a0f2
2020-09-22 12:39:56 -04:00
kesper 9fb4074bfe OOB one button secure erase for iLO5 based HPE Proliant servers.
This commit adds functionality to perform out-of-band one button
secure erase for iLO5 based HPE Proliant servers. Using this a
user can securely erase the whole system. It includes deleting
any deployment settings profiles, all licenses, Active Health
System (AHS) and warranty data stored there, reseting BIOS and
erasing supported non-volatile storage data.

Change-Id: I2f46a67580e8a607a91a3f6660feb85ed1827dc8
Story: #2007964
Task: #40458
2020-09-04 07:20:35 +00:00
Shivanand Tendulker bc0cc8a8fa Adds support SUM based firmware update as deploy step
SUM based firmware update exists as an inband clean step. This commit
adds it as inband deploy step to `ilo` and `ilo5` hardware types.

Change-Id: I2ac03dc2148a56aa23e86c6adb29a16bac443de3
Story: #2007923
Task: #40337
2020-08-08 06:44:09 -04:00
Riccardo Pittau 805a785a3a Change ibmcclient compatible version
And fix a couple of things to adapt to latest release.

Change-Id: I1cf2dadcfa66975f7f5020ca97a75ebf7b055d4a
2020-05-15 18:31:51 +02:00
Julia Kreger f6b9f34358 Pin the python-ibmcclient upper bounds due to six usage
Python-ibmcclient 0.2.0 uses six, which is not installed by default
as it is not necessary for python3 only usage.

This patch pins the upper bounds until the library can be fixed and
a new version released.

Change-Id: I06136f3f445b6ee4858697e22e8d63ca3d81c137
2020-05-14 10:05:50 -07:00
Christopher Dearborn 753bb1907d Update python-dracclient version
Update python-dracclient version to indicate compatibility with
the 4.0.0 release.

Change-Id: Ia4c3a712cfbdb255a79978e455b97e37f17fcae8
2020-04-28 15:02:15 -04:00
Christopher Dearborn 2007fa64d1 Fix supported sushy-oem-idrac version
This patch updates the version of sushy-oem-idrac to the first backward
incompatible release.

Change-Id: I08d912f3d51a2b7b819d03a4aa325255c60ea8ff
2020-04-27 11:44:18 -04:00
Ilya Etingof 5be4c4f5c5 Improve `redfish` set-boot-mode implementation
Refrain from touching unrelated boot params when setting boot mode
through Redfish BMC.

This should hopefully improve interoperability with Redfish BMCs.

Change-Id: I461e54012045463b5e97daf26a93eb9dce6f6964
Story: 2007355
Task: 38910
2020-04-06 22:45:10 +00:00
Riccardo Pittau 823a01688f Bump minimum supported ansible version to 2.7
This is mainly based on the fact that all version up to 2.6
are not being updated anymore [0].
The 2.7 version is maintained at least with security fixes.


Change-Id: Iea786985b93645da135a697140b9b14cdecf70bb
2020-03-04 10:42:24 +01:00
Ilya Etingof c99347faef Make `redfish_system_id` property optional
The `redfish_system_id` property of redfish hardware type has been
made optional. If not specified in `driver_info`, and the target BMC
manages a single ComputerSystem, ironic will assume that system.

Otherwise, ironic will fail requiring explicit `redfish_system_id`
specification in `driver_info`.

Also bumpted sushy dependency to >= 3.1.0.

Change-Id: I425baa7c7294c6c8a707e89df63a17da8e49b666
Story: 2007258
Task: 38619
2020-02-13 08:31:44 +01:00
Riccardo Pittau 89c30cb923 Using loop instead of with_X
The loop keyword is the current recommended way to handle loops,
and supports filters.
It's available since Ansible version 2.5 so changing ansible
requirement in driver-requirements.

Change-Id: Ibff1f07ca00b8f5a5274d73f9e53196f49c33a66
2019-10-24 10:02:20 +02:00
Zuul 8e850532ab Merge "Update sushy library version" 2019-10-18 21:12:57 +00:00
Christopher Dearborn 0ab2c08e47 Update sushy library version
This patch updates the sushy library version to a version that
contains a fix for a critical message registry bug.  This bug causes
the Redfish hardware type to not work against at least some Dell EMC


Change-Id: I03b415ce4f07f9c306bafc05c52527f51061d864
Story: #2006702
Task: #37011
2019-10-18 18:32:36 +00:00
Rachit7194 8e3f682e29 DRAC: Drives conversion from JBOD to RAID
Added physical drives conversion from JBOD to RAID
mode before RAID create_configuration cleaning step called
in iDRAC driver.

Change-Id: Ie6d1a9314d1543b73889f6d419541e75b7e06c89
Story: #2006479
Task: #36422
2019-10-16 12:29:56 -04:00
Ilya Etingof 0ad6f87587 Add Redfish vmedia boot interface to idrac HW type
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'.


Co-Authored-By: Richard G. Pioso <>
Story: 2006570
Task: 36675
Change-Id: I416019fc1ed3ab2a3a3dbc4443571123ef90e327
2019-10-11 20:01:09 -04:00
paresh-sao a1340c7e95
Fixed problem with UEFI iSCSI boot for nic adapters
This commit fixes problem with multiple nic adapter
by passing macs as an parameter while [un]set iSCSI

Change-Id: Id533a476ac376dea68955b2a0de070212285b9e8
Depends-on: Iea420d7a047c8ac849fa2eeab5c6892be2d7a6e1
Story: #2006349
Task: #36114
2019-08-30 08:45:19 +00:00
paresh-sao c0799c95ed Out-of-band `erase_devices` clean step for Proliant Servers
This commit adds new management interface `ilo5` to support an
out-of-band clean step for sanitize disk erase on ilo5 based
Proliant Servers.

Change-Id: I7b9fc6add6f6a616bdee4d94cb577e7a27a794e5
Story: #2006394
Task: #36269
2019-08-23 08:09:20 +00:00
Dmitry Tantsur d6774c294d Use openstacksdk for accessing ironic-inspector
Change-Id: Ibe4f6bf0b38364b5dd214e6c7e58d45a4d71ffdf
2019-07-31 15:23:39 +02:00
Zuul 0d99dfd9d8 Merge "Collect sensor data in ``redfish`` hardware type" 2019-07-01 10:03:43 +00:00
Julia Kreger 5f18e52b64 Remove CIMC/UCS drivers
Cisco's Third-Party CI was taken down as a result of the
CTO's office being restructured. Numerous attempts to
re-engage with Cisco directly and address the various
known issues in their drivers have not proven to be

Additionally, the drivers are not Python3 compatible,
and some reports have indicated that the CIMC driver is
no longer compatible with newer versions.

As such, the ironic community has little choice but to
to remove the Cisco UCS/CIMC hardware types and driver
interface code.

Story: 2005033
Task: 29522
Change-Id: Ie12eaf7572ce4d66f6a68025b7fe2d294185ce28
2019-06-25 23:44:19 -07:00
Ilya Etingof 82abc0beac Collect sensor data in ``redfish`` hardware type
Adds sensor data collector to ``redfish`` management interface.
Temperature, power, cooling and drive health metrics are collected.

Change-Id: I8accdcc73c7e0261579d753633f9dfc02a868115
Story: 2005878
Task: 33692
2019-06-24 11:53:04 +02:00
digambar 3a54fe3e85 Add iDRAC driver realtime RAID creation and deletion
It adds capability to the idrac driver for creating and deleting
RAID sets without rebooting the bare metal node.

Change-Id: I3f4282afff860d9771a3d37f4d5e1172d88e87a3
Story: 2004861
2019-04-25 23:52:41 +00:00
Richard Pioso 708319742d Place upper bound on python-dracclient version
The idrac hardware type requires python-dracclient versions greater than
or equal to 1.5.0 and less than 3.0.0.

This defines the upper bound to be less than 3.0.0 to make it easier to
backport to stable/stein. It was originally proposed against
stable/stein -- . Reviewers
asked that it be submitted against master first -- --
and then backported to stable/stein.

The ironic master and stable/stein branches are compatible with
python-dracclient releases less than 3.0.0. Note that
python-dracclient's stable/stein branch was created off of tag 2.0.0.
The ironic stable/stein branch follows tag 12.1.0, which was created on
March 21. The python-dracclient tag 3.0.0 was created after that, on
April 4. The upper bound on master will be updated to less than 4.0.0 by
a follow-on change.

A related change has been proposed for stable/rocky -- . It will be backported to
stable/queens and prior after it merges.

Change-Id: I5f6d6be53aec9d72e8ba5cfa436f12e01966f871
2019-04-15 18:29:45 -04:00
Richard Pioso ed04e8e4a0 Advance python-dracclient version requirement
python-dracclient versions 1.5.0 and later are required for a bug fix to
the idrac hardware type which assigns ports' pxe_enabled flags during
out-of-band inspection [1].


Change-Id: Iead9f0272d5cdd57c8837826ad340e11f5bcae15
2019-03-18 21:10:20 -04:00
Zuul f944f60041 Merge "Add Huawei iBMC driver support" 2019-03-15 16:59:23 +00:00
Qianbiao NG f1f4f892fe Add Huawei iBMC driver support
This patch proposes to adding iBMC driver for deploying the
Huawei 2288H V5, CH121 V5 series servers.
The driver aims to add management and power interfaces using
Huawei iBMC RESTful APIs for those series servers.

Change-Id: Ic5e920e4e58811c6a6dfe927732595950aea64e7
Story: 2004635
Task: 28566
2019-03-14 11:04:29 +08:00
Marcin Juszkiewicz 442376a7c2 driver-requirements: mark UcsSdk as Python 2 only
Change-Id: Ia89f11861f100e08430f0e8a46276d1fc03ba53d
2019-03-08 10:44:30 +01:00