mirror of
https://github.com/xcat2/xcat-core.git
synced 2026-09-05 04:27:55 +00:00
a11bd9e43d
Fall back to an available DHCP backend on auto-selection. When the request is "auto" and the backend chosen for this OS is not installed, use the other one if it is, recording fallback_from so process_request can tell the operator which preferred backend is missing. A backend the admin forced through site.dhcpbackend still fails hard when absent, and "neither installed" still errors clearly. Fixes #7710. Answer makedhcp -q from the static host block on Ubuntu's ISC-limited releases. listnode now branches on _isc_static_host_fallback() before any omapi work and reads the node's fixed-address and hardware ethernet straight out of dhcpd.conf, so the query path never spawns the omshell its own write paths already avoid. A node with no reservation is now reported rather than answered with silence. Match the host-block markers exactly. _add_isc_static_host writes a fully determined pair -- "#xCAT host declaration for <node> aka host <hostname> start" and the "}" line carrying the matching end -- so both scans anchor on that whole shape through shared _isc_host_start_re/_isc_host_end_re helpers. The previous /\Q$node\E\b.*/ also matched at a hyphen, letting node "compute" act on "compute-01"'s block: the query could return another node's address and the delete could remove another node's reservation. _delete_isc_static_host also accepts an explicit line list now, so the scan is unit testable without file-scoped state. Signed-off-by: Daniel Hilst <392820+dhilst@users.noreply.github.com>