2
0
mirror of https://github.com/xcat2/xcat-core.git synced 2026-10-21 15:18:19 +00:00
Files
xcat-core/xCAT-server/lib/xcat/plugins/ipxe.pm
T
Vinícius Ferrão 80418f2f73 feat(netboot): add the ipxe netboot method
xCAT boots x86 nodes through iPXE with netboot=xnba, which names the
xNBA fork that xCAT retires. netboot=ipxe is the method for the upstream
iPXE loaders of the ipxe-xcat package.

The ipxe plugin runs the xnba code, with the boot scripts under
xcat/ipxe/nodes instead of xcat/xnba/nodes. nodeset stat, the osimage
check of nodeset and rinstall, and the install check of Postage accept
the new value. The noderes.netboot description lists it and marks xnba
deprecated. The z/VM and FSM builds of xCAT-server leave the ipxe plugin
out with the xnba and pxe plugins. netboot=xnba does not change, and
makedhcp does not serve the new method yet.
2026-10-02 20:11:18 -03:00

44 lines
1.1 KiB
Perl

package xCAT_plugin::ipxe;
# netboot=ipxe boots x86 nodes with the upstream iPXE loaders of the ipxe-xcat package. It runs the
# boot scripts of the xnba method, which it keeps under xcat/ipxe instead of xcat/xnba.
use strict;
use warnings;
sub handled_commands {
return { nodeset => 'noderes:netboot' };
}
# xcatd loads xnba.pm from the plugin directory, so load it here only when it is not there yet.
sub _xnba {
require xCAT_plugin::xnba unless defined &xCAT_plugin::xnba::process_request;
return;
}
sub preprocess_request {
_xnba();
local $xCAT_plugin::xnba::SCRIPTS = 'xcat/ipxe';
return xCAT_plugin::xnba::preprocess_request(@_);
}
sub process_request {
_xnba();
local $xCAT_plugin::xnba::SCRIPTS = 'xcat/ipxe';
return xCAT_plugin::xnba::process_request(@_);
}
sub getstate {
_xnba();
local $xCAT_plugin::xnba::SCRIPTS = 'xcat/ipxe';
return xCAT_plugin::xnba::getstate(@_);
}
sub getNodesetStates {
_xnba();
local $xCAT_plugin::xnba::SCRIPTS = 'xcat/ipxe';
return xCAT_plugin::xnba::getNodesetStates(@_);
}
1;