add back the setbootfromnet code
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@5831 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
This commit is contained in:
parent
3260ca229e
commit
990e85c532
@ -12,6 +12,7 @@ use xCAT::Utils;
|
||||
use xCAT::SvrUtils;
|
||||
use Data::Dumper;
|
||||
use File::Basename;
|
||||
use Socket;
|
||||
use strict;
|
||||
|
||||
|
||||
@ -367,6 +368,27 @@ sub makescript {
|
||||
push @scriptd, "export NOSYNCFILES\n";
|
||||
}
|
||||
|
||||
my $setbootfromnet = 0;
|
||||
if (($arch eq "ppc64") || ($os =~ /aix.*/i))
|
||||
{
|
||||
if (($provmethod) && ($provmethod ne "install")) {
|
||||
# on Linux, the provmethod can be install,netboot or statelite,
|
||||
# on AIX, the provmethod can be null or diskless image name
|
||||
(my $ip,my $mask,my $gw) = net_parms($node);
|
||||
if (!$ip || !$mask || !$gw)
|
||||
{
|
||||
xCAT::MsgUtils->message('S',"Unable to determine IP, netmask or gateway for $node, can not set the node to boot from network");
|
||||
}
|
||||
else
|
||||
{
|
||||
$setbootfromnet = 1;
|
||||
push @scriptd, "NETMASK=$mask\n";
|
||||
push @scriptd, "export NETMASK\n";
|
||||
push @scriptd, "GATEWAY=$gw\n";
|
||||
push @scriptd, "export GATEWAY\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
###Please do not remove or modify this line of code!!! xcatdsklspost depends on it
|
||||
push @scriptd, "# postscripts-start-here\n";
|
||||
|
||||
@ -395,7 +417,10 @@ sub makescript {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if ($setbootfromnet)
|
||||
{
|
||||
push @scriptd, "setbootfromnet\n";
|
||||
}
|
||||
###Please do not remove or modify this line of code!!! xcatdsklspost depends on it
|
||||
push @scriptd, "# postscripts-end-here\n";
|
||||
|
||||
@ -483,5 +508,32 @@ sub getnodesetstate {
|
||||
}
|
||||
|
||||
|
||||
sub net_parms {
|
||||
my $ip = shift;
|
||||
if (inet_aton($ip)) {
|
||||
$ip = inet_ntoa(inet_aton($ip));
|
||||
} else {
|
||||
xCAT::MsgUtils->message("S","Unable to resolve $ip");
|
||||
return undef;
|
||||
}
|
||||
my $nettab = xCAT::Table->new('networks');
|
||||
unless ($nettab) { return undef };
|
||||
my @nets = $nettab->getAllAttribs('net','mask','gateway');
|
||||
foreach (@nets) {
|
||||
my $net = $_->{'net'};
|
||||
my $mask =$_->{'mask'};
|
||||
my $gw = $_->{'gateway'};
|
||||
$ip =~ /([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)/;
|
||||
my $ipnum = ($1<<24)+($2<<16)+($3<<8)+$4;
|
||||
$mask =~ /([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)/;
|
||||
my $masknum = ($1<<24)+($2<<16)+($3<<8)+$4;
|
||||
$net =~ /([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)/;
|
||||
my $netnum = ($1<<24)+($2<<16)+($3<<8)+$4;
|
||||
if (($ipnum & $masknum)==$netnum) {
|
||||
return ($ip,$mask,$gw);
|
||||
}
|
||||
}
|
||||
xCAT::MsgUtils->message("S","xCAT BMC configuration error, no appropriate network for $ip found in networks, unable to determine netmask");
|
||||
}
|
||||
|
||||
1;
|
||||
|
Loading…
Reference in New Issue
Block a user