-Change to detect specifically when xNBA is attempting a boot, as some enhancements are made that are not yet in gPXE

-Use http even for initial configuration when xNBA is detected


git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@4023 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
This commit is contained in:
jbjohnso 2009-08-21 23:58:12 +00:00
parent 505730ad88
commit 40263e2c9e

View File

@ -130,6 +130,7 @@ sub addnode
}
my $lstatements = $statements;
my $guess_next_server = 0;
my $nxtsrv;
if ($nrhash)
{
$nrent = $nrhash->{$node}->[0];
@ -146,6 +147,7 @@ sub addnode
return;
}
$tftpserver = inet_ntoa($tmp_name);
$nxtsrv = $tftpserver;
$lstatements =
'next-server '
. $tftpserver . ';'
@ -233,7 +235,7 @@ sub addnode
}
if ($guess_next_server and $ip ne "DENIED")
{
my $nxtsrv = xCAT::Utils->my_ip_facing($hname);
$nxtsrv = xCAT::Utils->my_ip_facing($hname);
if ($nxtsrv)
{
$tftpserver = $nxtsrv;
@ -269,7 +271,7 @@ sub addnode
if ($doiscsi and $chainent and $chainent->{currstate} and ($chainent->{currstate} eq 'iscsiboot' or $chainent->{currstate} eq 'boot')) {
$lstatements = 'if exists gpxe.bus-id { filename = \"\"; } else if exists client-architecture { filename = \"xcat/xnba.kpxe\"; } '.$lstatements;
} else {
$lstatements = 'if exists gpxe.bus-id { filename = \"xcat/xnba/nodes/'.$node.'\"; } else if exists client-architecture { filename = \"xcat/xnba.kpxe\"; } '.$lstatements; #Only PXE compliant clients should ever receive gPXE
$lstatements = 'if option user-class-identifier = \"xNBA\" { filename = \"http://'.$nxtsrv.'/tftpboot/xcat/xnba/nodes/'.$node.'\"; } else if exists client-architecture { filename = \"xcat/xnba.kpxe\"; } '.$lstatements; #Only PXE compliant clients should ever receive xNBA
}
} #TODO: warn when windows
}
@ -1048,8 +1050,8 @@ sub addnet
}
# $lstatements = 'if exists gpxe.bus-id { filename = \"\"; } else if exists client-architecture { filename = \"xcat/xnba.kpxe\"; } '.$lstatements;
push @netent, " if exists gpxe.bus-id { #x86, gPXE\n";
push @netent, " filename = \"xcat/xnba/nets/".$net."_".$maskbits."\";\n";
push @netent, " if option user-class-identifier = \"xNBA\" { #x86, xCAT Network Boot Agent\n";
push @netent, " filename = \"http://$tftp/tftpboot/xcat/xnba/nets/".$net."_".$maskbits."\";\n";
push @netent, " } else if option client-architecture = 00:00 { #x86\n";
push @netent, " filename \"xcat/xnba.kpxe\";\n";
push @netent, " } else if option vendor-class-identifier = \"Etherboot-5.4\" { #x86\n";
@ -1207,6 +1209,7 @@ sub newconfig
push @dhcpconf, "option space gpxe;\n";
push @dhcpconf, "option gpxe-encap-opts code 175 = encapsulate gpxe;\n";
push @dhcpconf, "option gpxe.bus-id code 177 = string;\n";
push @dhcpconf, "option user-class-identifier code 77 = string;\n";
push @dhcpconf, "option gpxe.no-pxedhcp code 176 = unsigned integer 8;\n";
push @dhcpconf, "option iscsi-initiator-iqn code 203 = string;\n"; #Only via gPXE, not a standard
push @dhcpconf, "ddns-update-style none;\n";