Skip to content

Commit bb83e33

Browse files
committed
Issue #2: Configure BIOS and RAID separately
Previously we were configuring BIOS and RAID simultaneously in order to avoid an unnecessary reboot. This was found to cause problems on a particular R630 server, causing the configuration to fail and the Lifecycle controller to enter a reboot loop. The issue was resolved by resetting the iDRAC configuration to factory defaults and clearing the job queue. Rather than go through that process again we'll apply BIOS and RAID configuration separately.
1 parent a99b8ec commit bb83e33

File tree

1 file changed

+23
-8
lines changed

1 file changed

+23
-8
lines changed

library/drac.py

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1176,11 +1176,31 @@ def configure(module):
11761176
for config in all_configs:
11771177
config.handle_reboot()
11781178

1179+
# NOTE: Previously we were configuring BIOS and RAID simultaneously in
1180+
# order to avoid an unnecessary reboot. This was found to cause problems
1181+
# on a particular R630 server, causing the configuration to fail and the
1182+
# Lifecycle controller to enter a reboot loop. The issue was resolved by
1183+
# resetting the iDRAC configuration to factory defaults and clearing the
1184+
# job queue. Rather than go through that process again we'll apply BIOS
1185+
# and RAID configuration separately.
1186+
11791187
# If there are any BIOS changes to apply, then apply them.
11801188
if bios_config.is_apply_required():
11811189
apply_bios(module, bmc, bios_config.get_settings_to_apply())
11821190
bios_config.handle_apply()
11831191

1192+
# Commit pending BIOS configuration changes.
1193+
if bios_config.is_commit_required():
1194+
commit_bios(module, bmc)
1195+
bios_config.handle_commit()
1196+
1197+
# Reboot #3:
1198+
# Reboot to apply BIOS changes.
1199+
if do_reboot and bios_config.is_reboot_required():
1200+
flush(module, bmc)
1201+
for config in all_configs:
1202+
config.handle_reboot()
1203+
11841204
# If there are any RAID changes to apply, then apply them.
11851205
for raid_config in raid_configs:
11861206
if raid_config.is_apply_required():
@@ -1189,21 +1209,16 @@ def configure(module):
11891209
apply_raid(module, bmc, raid_config.controller, deleting, creating)
11901210
raid_config.handle_apply()
11911211

1192-
# Commit pending BIOS configuration changes.
1193-
if bios_config.is_commit_required():
1194-
commit_bios(module, bmc)
1195-
bios_config.handle_commit()
1196-
11971212
# Commit pending RAID configuration changes.
11981213
for raid_config in raid_configs:
11991214
if raid_config.is_commit_required():
12001215
commit_raid(module, bmc, raid_config.controller)
12011216
raid_config.handle_commit()
12021217

1203-
# Reboot #3:
1204-
# Reboot to apply changes.
1218+
# Reboot #4:
1219+
# Reboot to apply RAID changes.
12051220
if do_reboot and any(config.is_reboot_required()
1206-
for config in all_configs):
1221+
for config in raid_configs):
12071222
flush(module, bmc)
12081223
for config in all_configs:
12091224
config.handle_reboot()

0 commit comments

Comments
 (0)