- 
                Notifications
    You must be signed in to change notification settings 
- Fork 65
Set iLO NIC active
        Jack Garcia edited this page Apr 2, 2016 
        ·
        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")
         breakSet 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)