Boot nodes from virtual, rather than local, CD 28/2128/1
authordave kormann <dk3239@att.com>
Sun, 24 Nov 2019 16:27:46 +0000 (11:27 -0500)
committerdave kormann <davek@research.att.com>
Sun, 24 Nov 2019 16:38:13 +0000 (11:38 -0500)
The current Dell code uses ipmitool to set the next boot to cdrom;
this won't work in most cases as we typically want to boot from
remote media.  This change fixes that.

signed-off-by: dave kormann  <davek@research.att.com>
Change-Id: I767a87e0ccd712a02f84f3829deaa92eb2bd9169

src/ironic_virtmedia_driver/vendors/dell/dell.py

index 0706842..5c188fa 100644 (file)
@@ -158,4 +158,20 @@ class DELL(IronicVirtMediaHW):
             self.log.warning('Failed to disable booting options: %s', str(err))
         #For time being lets do the boot order with ipmitool since, well dell doesn't provide open support
         #for this.
-        manager_utils.node_set_boot_device(task, boot_devices.CDROM, persistent=False)
+        try:
+          # 0x00 0x08 0x05 0x80 0x20: chassis|set|bootdev|for next boot only|remote CD
+          # other options for device (per ipmitool's "ipmi_chassis.c"):
+          # 04: PXE
+          # 08: HDD
+          # 0c: Safe
+          # 10: Diag
+          # 14: CDROM
+          # 18: Setup
+          # 1c: Remote FDD
+          # 24: Remote primary media
+          # 2c: Remote HDD
+          # 3c: FDD
+          ipmitool.send_raw(task, '0x00 0x08 0x05 0x80 0x20 0x00 0x00 0x00')
+          self.log.info('Set next boot to remote media')
+        except Exception as err:
+            self.log.warning('Failed to set next boot to remote media: %s', str(err))