csc/Hanlon — pull request #161 by tjmcs (2014-08-25 21:37:37+00:00)
Title: Fixes #159 (Switch to use of the SMBIOS UUID as a node identifier)

The changes in this pull request modify Hanlon so that it uses the (SMBIOS) UUID of a node as the node identifier instead of the MAC-address-based hardware identifier that was previously used to identify a node within Hanlon during the node boot, checkin, and registration process. In making these changes, the following guidelines were followed:

* Nodes that were bound to an `active_model` by Hanlon using the old (MAC-address-based) hardware identifier will continue to be identified correctly, even after the changes in this PR are applied (i.e. they will continue to be identified based on the old, MAC-address-based hardware identifier that was used when they were bound to an `active_model`).
* The chain-boot scripts used in the older versions of Hanlon still work with this newer version of Hanlon and any older versions of the Hanlon Microkernel are still able to checkin/register successfully against this newer version of the Hanlon server
* For newer versions of the Microkernel that support this feature, the (SMBIOS) UUID value (if it is available/accessible) will be used to identify the node instead of the older (MAC-address-based) hardware identifier
* Any unbound nodes that are rebooted into a newer version of the Microkernel than was used for their original checkin/registration (i.e. nodes that successfully checked-in/registered using an older Microkernel and have not yet been bound to an active model or removed from the node table before being rebooted) will have their identifier switched over to one based on that (SMBIOS) UUID value on their next successful checkin/registration after the changes in this PR are applied.
* After the changes in this PR are applied, running a `hanlon config ipxe` command (or the RESTful equivalent) will create an iPXE chain-boot script suitable for use with this new version of Hanlon (i.e. one that passes both the `uuid` and the new `mac_id` field, a replacement for the old `hw_id` field, as arguments to the URI used when invoking the boot slice).

Even with these changes applied, Hanlon should continue to work properly with older nodes or older versions of the Hanlon Microkernel, however any newer nodes (booted with newer versions of the Hanlon Microkernel) should be identified using their (SMBIOS) UUID as their `hardware_id` (if that field is available, of course).