Report both PXEBOOTING/BOOTING events on PXE-originated DHCP request.
A concession to performance. Previously, PXEBOOTING was reported on the PXE DHCP request and BOOTING on the following OS-originated request. This is conceptually ideal, as that is what those states were intended to mean, but it causes two synchronous "reportboot" command executions from dhcpd for every node boot. Worse, the time gap between the second, OS-originated DHCP call and the first explicit state reported by the node itself (e.g., TBSETUP or RELOADSETUP) is generally small enough that the node reported state often arrived at stated before the BOOTING state from dhcpd. This can cause excess node reboots or other undesirable behaviors from stated. So now we only invoke "reportboot" on the first PXE-originated call and tell reportboot to send both PXEBOOTING and BOOTING events at that time. This does not eliminate the race condition above, but makes it unlikely as there is the whole kernel boot process (10s of seconds) between the dhcpd state reports and the first node state report.
Showing with 14 additions and 5 deletions