Change temporary boot order - HewlettPackard/python-ilorest-library GitHub Wiki
If not created already, create an instance of Rest or Redfish Object using the RestObject or RedfishObject class respectively. The class constructor takes iLO hostname/ ip address, iLO login username and password as arguments. The class also initializes a login session, gets systems resources and message registries.
Rest Object creation:
REST_OBJ = RestObject(iLO_host, login_account, login_password)
Redfish Object creation:
REDFISH_OBJ = RedfishObject(iLO_host, login_account, login_password)
The method ex8_change_temporary_boot_order takes an instance of rest object (or redfish object if using Redfish API), boot target and BIOS password (default None) as arguments.
def ex8_change_temporary_boot_order(restobj, boottarget, bios_password=None):
Find and get the system URI(s) from the system resource collection.
instances = restobj.search_for_type("ComputerSystem.")
Send a HTTP GET request to the systems URI(s) retrieved.
for instance in instances:
response = restobj.rest_get(instance["href"])
Get the supported boot options from the response body and check if the boot target provided as argument is supported.
bootoptions = response.dict["Boot"]
if boottarget not in bootoptions["BootSourceOverrideSupported"]:
sys.stderr.write("ERROR: %s is not a supported boot option.\n" % boottarget)
Prepare the PATCH request body.
body = dict()
body["Boot"] = dict()
body["Boot"]["BootSourceOverrideTarget"] = boottarget
PATCH request is sent next and response error is handled if any.
response = restobj.rest_patch(instance["href"], body, optionalpassword=bios_password)
restobj.error_handler(response)
A successful PATCH response will set the Boot order in BIOS, however the settings remain pending until next reboot.