forked from DMTF/python-redfish-library
-
Notifications
You must be signed in to change notification settings - Fork 93
Set iLO NIC active
Jack Garcia edited this page May 25, 2017
·
1 revision
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 ex21_set_active_ilo_nic takes an instance of rest object (or redfish object if using Redfish API) and shared nic boolean as arguments.
def ex21_set_active_ilo_nic(restobj, shared_nic):
Find and get the system resource for manager.
instances = restobj.search_for_type("Manager.")
Send a HTTP GET request to the manager URI(s).
for instance in instances:
tmp = restobj.rest_get(instance["href"])
Send another GET request to the ethernet interfaces URI.
response = restobj.rest_get(tmp.dict["links"]["EthernetNICs"]["href"])
Find the iLO NIC URI from the response body.
for nic in response.dict["Items"]:
try:
if (nic["Oem"]["Hp"]["SupportsFlexibleLOM"] == True and \
shared_nic == True):
selected_nic_uri = nic["links"]["self"]["href"]
break
except KeyError:
pass
try:
if (nic["Oem"]["Hp"]["SupportsLOM"] == True and \
shared_nic == True):
selected_nic_uri = nic["links"]["self"]["href"]
break
except KeyError:
pass
if not shared_nic:
selected_nic_uri = nic["links"]["self"]["href"]
break
elif not selected_nic_uri:
sys.stderr.write("\tShared NIC is not supported\n")
break
Set the request body.
if selected_nic_uri:
body = {"Oem": {"Hp": {"NICEnabled": True}}}
Perform PATCH request.
response = restobj.rest_patch(selected_nic_uri, body)
restobj.error_handler(response)