@@ -6,6 +6,7 @@ use RESTAPI\Core\Command;
66use RESTAPI \Core \Model ;
77use RESTAPI \Core \TestCase ;
88use RESTAPI \Models \DHCPServer ;
9+ use RESTAPI \Models \DHCPServerBackend ;
910use RESTAPI \Models \DHCPServerStaticMapping ;
1011use RESTAPI \Models \NetworkInterface ;
1112use RESTAPI \Models \VirtualIP ;
@@ -541,10 +542,9 @@ class APIModelsDHCPServerTestCase extends TestCase {
541542 * This test only runs when Kea is the active DHCP backend (kea-dhcp4.conf exists).
542543 */
543544 public function test_netboot_fields_written_to_kea_config (): void {
544- # Skip this test if Kea is not the active DHCP backend
545- if (!file_exists ('/usr/local/etc/kea/kea-dhcp4.conf ' )) {
546- return ;
547- }
545+ # Ensure kea is set as the DHCP backend
546+ $ backend = new DHCPServerBackend (dhcpbackend: 'kea ' , async: false );
547+ $ backend ->update (apply: true );
548548
549549 $ dhcp_server = new DHCPServer (id: 'lan ' , async: false );
550550 $ dhcp_server ->netboot ->value = true ;
@@ -599,6 +599,10 @@ class APIModelsDHCPServerTestCase extends TestCase {
599599 $ this ->assert_str_does_not_contain ($ kea_conf_after , '"next-server" ' );
600600 $ this ->assert_str_does_not_contain ($ kea_conf_after , 'ipxe_uefihttp_ ' );
601601 $ this ->assert_str_does_not_contain ($ kea_conf_after , 'ipxe_legacy_ ' );
602+
603+ # Revert dhcp backend
604+ $ backend ->dhcpbackend ->value = 'isc ' ;
605+ $ backend ->update (apply: true );
602606 }
603607
604608 /**
@@ -612,7 +616,7 @@ class APIModelsDHCPServerTestCase extends TestCase {
612616 # nextserver requires a valid IPv4 when netboot is true; it should be silently ignored when false
613617 $ dhcp_server ->uefihttpboot ->value = '' ;
614618 $ dhcp_server ->nextserver ->value = '' ;
615- $ dhcp_server ->update (apply: false );
619+ $ dhcp_server ->update ();
616620 },
617621 );
618622 }
@@ -625,14 +629,9 @@ class APIModelsDHCPServerTestCase extends TestCase {
625629 response_id: 'IP_ADDRESS_VALIDATOR_FAILED ' ,
626630 code: 400 ,
627631 callable: function (): void {
628- $ dhcp_server = new DHCPServer (
629- id: 'lan ' ,
630- data: [
631- 'netboot ' => true ,
632- 'nextserver ' => 'not-an-ip ' ,
633- ],
634- async: false ,
635- );
632+ $ dhcp_server = new DHCPServer (id: 'lan ' , async: false );
633+ $ dhcp_server ->netboot ->value = true ;
634+ $ dhcp_server ->nextserver ->value = 'not an ip ' ;
636635 $ dhcp_server ->validate ();
637636 },
638637 );
@@ -646,14 +645,9 @@ class APIModelsDHCPServerTestCase extends TestCase {
646645 response_id: 'URL_VALIDATOR_FAILED ' ,
647646 code: 400 ,
648647 callable: function (): void {
649- $ dhcp_server = new DHCPServer (
650- id: 'lan ' ,
651- data: [
652- 'netboot ' => true ,
653- 'uefihttpboot ' => 'not a url %% ' ,
654- ],
655- async: false ,
656- );
648+ $ dhcp_server = new DHCPServer (id: 'lan ' , async: false );
649+ $ dhcp_server ->netboot ->value = true ;
650+ $ dhcp_server ->uefihttpboot ->value = 'not a url %% ' ;
657651 $ dhcp_server ->validate ();
658652 },
659653 );
0 commit comments