Discover node properties and capabilities for iLO drivers

Blueprint URL:

This proposal adds the ability to introspect/update hardware properties and auto-create ports for HP ProLiant servers via iLO using iLO client python library i.e. proliantutils library as given in reference section.

Problem description

The iLO driver is proposed to be used to discover node properties irrespective of whether OS is deployed on baremetal node or not.

Proposed change

Following mandatory properties will be discovered and updated to as discussed in

  • memory size

  • CPUs

  • CPU architecture

  • NIC(s) MAC address

  • disks

The following additional properties are of interest to iLO drivers and will be discovered and updated to as capabilities:

  • Supported Boot Modes

    capability name : supported_boot_mode possible values : bios, uefi, secure_boot

  • iLO Firmware version

    capability name : ilo_firmware_version possible values : it can vary hardware to hardware.

  • ROM Firmware version

    capability name : rom_firmware_version possible values : it can vary hardware to hardware.

  • Server Name/Model

    capability name : server_model possible values : it can vary hardware to hardware.

  • RAID level

    capability name : max_raid_level possible values : 0,1,2,3,4,5,6,10

  • secure boot capability

    capability name : support_secure_boot possible values : True, False

  • PCI (GPU) devices

    capability name : pci_gpu_devices possible values : count of such devices.

  • SR-IOV capabilities

    capability name : sr_iov_devices possible values : count of such devices.

  • NIC Capacity

    capability name : nic_capacity possible values : value with unit.

The properties which are already set will be overridden at reinvocation of inspect_hardware(). If a property is not applicable to the hardware or cannot be retrieved from the hardware, the property will not be added/updated in as capabilities. Even if the property cannot be retrieved from the hardware due to some unknown reasons, the introspection will not return failure as it is same as property not applicable to the hardware.

iLO specific module changes:

  • Implement the InspectInterface method inspect_hardware().


These properties can be discovered manually outside the ironic and updated accordingly with the discovered properties.

Data model impact


Ironic CLI impact


REST API impact


RPC API impact


Driver API impact


Nova driver impact


Security impact


Other end user impact


Scalability impact


Performance Impact


Other deployer impact


Developer impact




Primary assignee:


Other Contributors:


Work Items

  • Implementation of the InspectInterface class and its methods inspect_hardware(), validate() and get_properties().



Unit tests will be added conforming to ironic testing requirements, mocking proliantutils. It will get tested on real hardware by iLO team with the hardware available to the team.

Upgrades and Backwards Compatibility

No impact.

Documentation Impact



1. proliantUtils library. ( (

2. Introspect spec.