mirror of
https://github.com/xcat2/xcat-core.git
synced 2026-10-12 08:12:33 +00:00
cb6483c866
A package upgrade keeps the DHCP configuration of an older makedhcp -n, which does not declare the iPXE feature options. makedhcp without -n then adds the rules of the upstream loader to it. dhcpd rejects a subnet or an OMAPI host statement that tests an undeclared option, and Kea never finds a sub-option of option 175 without its definition. makedhcp without -n now adds the missing declarations to an ISC configuration that xCAT wrote, after its gpxe option space, writes it and restarts dhcpd before it changes a subnet or a host. Declarations with any blanks count. It stops when the configuration declares no gpxe option space, or when it cannot write the file or restart dhcpd, because OMAPI removes a host before it adds it again. A missing configuration, or one that xCAT did not write, still gets a new one, which declares the options. A marker file beside the configuration records a restart that has not happened yet, so the next run restarts dhcpd before it changes a host when a run stopped before the restart or the restart failed. It adds the missing definitions to an existing Kea configuration, and Kea restarts, also when the Control Agent applies the host reservations. A site definition of option 175 without the gpxe encapsulation stays, because option data can name it, and makedhcp stops with an error that names the fix.