Hi everyone,

Lucas and I were discussing a new feature that I think would be very
useful for Autotest: hardware inventory.

With the upcoming/ongoing feature to add tighter Cobbler support to
Autotest I, at least, have a need to know what kinds of machines are
available to run jobs on. I want to know things like: CPU information,
amount of memory, PCI devices, etc.

 - My initial proposal is to use lshw to acquire information from
   running systems.
   - An alternative would be smolt. I've found some issues with the
     distribution versions of smolt on ppc64, at least.
   - In theory, we could have a pluggable infrastructure, much like the
     install_server support itself, and the administrator could specify
     how to obtain the information.
 - Adding hardware information immediately requires us to extend the
   information stored in a Machine object
   - My current list includes (sources in parentheses):
     Machine model (dmidecode, lsvpd)
     CPU version (/proc/cpuinfo)
     CPU speed (/proc/cpuinfo)
     Memory installed (/sys/devices/system/memory or /proc/meminfo)
     Swap size (/proc/meminfo, /proc/swaps?)
     Serial number (dmidecode, lsvpd)
     CPU topology (# of cores, # of hardware threads, sysfs, /proc/cpuinfo))
     PCI devices (lspci)
     KVM capable (/proc/cpuinfo)
     CPU flags (/proc/cpuinfo)
     Timestamp of last inventory
     Version of last inventory tool used
     BIOS/system firmware level
     - Reading through this list, I imagine the implementation becomes
       an InventoryInterface, with per-architecture implementations of
       how to actually obtain the data.
   - Additionally, one can imagine end-users may have site-specific,
     internal or controlled extra data they would like to be searchable
     & storable per-machine. I think it makes sense to have an
     additional, admin-interface defined table to store a list of labels
     and how to get the data that should be stored with that label. We
     would then store a hash of the obtained information in the
     inventory job.
 - Have a contrib script appropriate for
   /var/lib/cobbler/triggers/add/system/ to automatically run an
   inventory job on system add.
 - Extend the create job UI to allow searching by hardware information.
   This requires seeing what once satisfied the request, re-running
   inventory on that host, and if the required data is still present,
   running the job. This becomes necessary in particular for the case of
   PCI devices being removed, but also could come about when hostnames
   get recycled (for instance) or hardware is upgraded.

Lucas & I thought the discussion from here was better-served being on
the mailing-list to allow everyone interested to chime in.

Thanks,
Nish

-- 
Nishanth Aravamudan <n...@us.ibm.com>
IBM Linux Technology Center

_______________________________________________
Autotest mailing list
Autotest@test.kernel.org
http://test.kernel.org/cgi-bin/mailman/listinfo/autotest

Reply via email to