Bug 1928816 - When using idrac-virtualmedia, the bios_interface gets set to idrac-wsman
Summary: When using idrac-virtualmedia, the bios_interface gets set to idrac-wsman
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: OpenShift Container Platform
Classification: Red Hat
Component: Bare Metal Hardware Provisioning
Version: 4.8
Hardware: Unspecified
OS: Unspecified
low
low
Target Milestone: ---
: 4.9.0
Assignee: Bob Fournier
QA Contact: Lubov
Padraig O'Grady
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2021-02-15 15:32 UTC by Bob Fournier
Modified: 2021-10-18 17:29 UTC (History)
1 user (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Cause: For idrac-virtualmedia, the bios_interface field gets set to idrac-wsman by default. Consequence: An exception occurs when attempting to get BIOS setting and no BIOS settings are available. Fix: Use idrac-redfish for the default bios_interface when using idrac-virtualmedia. Result: BIOS settings can be retrieved and no exception is seen in the logs.
Clone Of:
Environment:
Last Closed: 2021-10-18 17:29:20 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Github metal3-io baremetal-operator pull 946 0 None None None 2021-08-02 12:51:35 UTC
Github openshift baremetal-operator pull 172 0 None None None 2021-08-18 21:40:07 UTC
Red Hat Product Errata RHSA-2021:3759 0 None None None 2021-10-18 17:29:39 UTC

Description Bob Fournier 2021-02-15 15:32:54 UTC
Description of problem:

When doing an install for baremetal-ipi using idrac-virtualmedia the bios_interface gets set to idrac-wsman.  This results in an error because idrac credentials aren't provided, only redfish.

 
ERROR ironic.conductor.cleaning [req-64b1172d-3068-48ab-903b-7dbbbf9ad52f bootstrap-user - - - -] Caching of bios settings failed on node 8aab2e24-ae1c-4905-9a21-59df23db06d8. Continuing with node cleaning.: ironic.common.exception.InvalidParameterValue: The following errors were encountered while parsing driver_info:
'drac_address' not supplied to DracDriver.
'drac_username' not supplied to DracDriver.
'drac_password' not supplied to DracDriver.
2021-02-03 05:51:35.688 1 ERROR ironic.conductor.cleaning Traceback (most recent call last):
2021-02-03 05:51:35.688 1 ERROR ironic.conductor.cleaning   File "/usr/lib/python3.6/site-packages/ironic/conductor/cleaning.py", line 83, in do_node_clean
2021-02-03 05:51:35.688 1 ERROR ironic.conductor.cleaning     task.driver.bios.cache_bios_settings(task)
2021-02-03 05:51:35.688 1 ERROR ironic.conductor.cleaning   File "/usr/lib/python3.6/site-packages/ironic/drivers/modules/drac/bios.py", line 366, in cache_bios_settings
2021-02-03 05:51:35.688 1 ERROR ironic.conductor.cleaning     client = drac_common.get_drac_client(node)
2021-02-03 05:51:35.688 1 ERROR ironic.conductor.cleaning   File "/usr/lib/python3.6/site-packages/ironic/drivers/modules/drac/common.py", line 109, in get_drac_client
2021-02-03 05:51:35.688 1 ERROR ironic.conductor.cleaning     driver_info = parse_driver_info(node)
2021-02-03 05:51:35.688 1 ERROR ironic.conductor.cleaning   File "/usr/lib/python3.6/site-packages/ironic/drivers/modules/drac/common.py", line 92, in parse_driver_info
2021-02-03 05:51:35.688 1 ERROR ironic.conductor.cleaning     raise exception.InvalidParameterValue(msg)
2021-02-03 05:51:35.688 1 ERROR ironic.conductor.cleaning ironic.common.exception.InvalidParameterValue: The following errors were encountered while parsing driver_info:
2021-02-03 05:51:35.688 1 ERROR ironic.conductor.cleaning 'drac_address' not supplied to DracDriver.
2021-02-03 05:51:35.688 1 ERROR ironic.conductor.cleaning 'drac_username' not supplied to DracDriver.
2021-02-03 05:51:35.688 1 ERROR ironic.conductor.cleaning 'drac_password' not supplied to DracDriver.
2021-02-03 05:51:35.688 1 ERROR ironic.conductor.cleaning

Comment 1 Bob Fournier 2021-02-15 15:36:17 UTC
This is the snippet in the install-config.yaml:
       role: worker
        bmc:
          address: idrac-virtualmedia://10.46.61.43/redfish/v1/Systems/System.Embedded.1
          disableCertificateVerification: True
          username: root
          password: calvin

And this is the ironic code where the bios_interface gets set up:
https://github.com/openstack/ironic/blob/master/ironic/drivers/drac.py#L62

Comment 2 Dmitry Tantsur 2021-02-16 17:02:39 UTC
Mmmm, yeah, we need to specify bios_interface explicitly, since the WSMAN implementation has priority.

Comment 3 Bob Fournier 2021-03-23 21:44:43 UTC
Will need to add BIOSInterface in BMO for example:
https://github.com/metal3-io/baremetal-operator/blob/75e27989f8c7e4e9e20bec2c5d582f7f85bc4536/pkg/provisioner/ironic/ironic.go#L419
and 
https://github.com/metal3-io/baremetal-operator/blob/75e27989f8c7e4e9e20bec2c5d582f7f85bc4536/pkg/bmc/idrac_virtualmedia.go#L92
and set it to "redfish" for idrac_virtualmedia.go

We'll have to add this interface for the BIOSConfig work to get BIOS settings in BMO.

Comment 4 Bob Fournier 2021-07-01 13:36:16 UTC
Moving to 4.9.

Comment 6 Lubov 2021-08-25 10:32:02 UTC
verified on 4.9.0-0.nightly-2021-08-25-010624

Comment 9 errata-xmlrpc 2021-10-18 17:29:20 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (Moderate: OpenShift Container Platform 4.9.0 bug fix and security update), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHSA-2021:3759


Note You need to log in before you can comment on or make changes to this bug.