diff --git a/pyghmi/ipmi/command.py b/pyghmi/ipmi/command.py index faa5933f..be1b2dd6 100644 --- a/pyghmi/ipmi/command.py +++ b/pyghmi/ipmi/command.py @@ -53,6 +53,7 @@ boot_devices = { 'net': 4, 'network': 4, 'pxe': 4, + 'http': 4, 'hd': 8, 'safe': 0xc, 'cd': 0x14, diff --git a/pyghmi/redfish/command.py b/pyghmi/redfish/command.py index 6afe2190..20a7bafb 100644 --- a/pyghmi/redfish/command.py +++ b/pyghmi/redfish/command.py @@ -60,6 +60,7 @@ boot_devices_read = { 'Pxe': 'network', 'Usb': 'usb', 'SDCard': 'sdcard', + 'UefiHttp': 'http', } diff --git a/pyghmi/redfish/oem/generic.py b/pyghmi/redfish/oem/generic.py index 3512db44..31feaf76 100644 --- a/pyghmi/redfish/oem/generic.py +++ b/pyghmi/redfish/oem/generic.py @@ -107,6 +107,7 @@ boot_devices_write = { 'net': 'Pxe', 'network': 'Pxe', 'pxe': 'Pxe', + 'http': 'UefiHttp', 'hd': 'Hdd', 'usb': 'Usb', 'cd': 'Cd', @@ -129,6 +130,7 @@ boot_devices_read = { 'Pxe': 'network', 'Usb': 'usb', 'SDCard': 'sdcard', + 'UefiHttp': 'http', } @@ -736,6 +738,10 @@ class OEMHandler(object): raise exc.InvalidParameterValue('Unsupported device %s' % repr(bootdev)) bootdev = boot_devices_write.get(bootdev, bootdev) + if bootdev == 'UefiHttp': + allowvals = fishclient.sysinfo.get('Boot', {}).get('BootSourceOverrideTarget@Redfish.AllowableValues', []) + if bootdev not in allowvals: + bootdev = 'Pxe' if bootdev == 'None': payload = {'Boot': {'BootSourceOverrideEnabled': 'Disabled'}} else: