removed --hfi in mkdsknode and some hfi mac address failover checkin

git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@9542 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
This commit is contained in:
wanghuaz 2011-05-10 12:29:55 +00:00
parent 45372b5a4b
commit 486d337d85

View File

@ -6873,7 +6873,6 @@ sub prenimnodeset
'b|backupSN' => \$::BACKUP,
'f|force' => \$::FORCE,
'h|help' => \$::HELP,
'hfi' => \$::HFI,
'i=s' => \$::OSIMAGE,
'l=s' => \$::opt_l,
'n|new' => \$::NEWNAME,
@ -8081,7 +8080,6 @@ sub mkdsklsnode
'b|backup' => \$::BACKUP,
'f|force' => \$::FORCE,
'h|help' => \$::HELP,
'hfi' => \$::HFI,
'i=s' => \$::OSIMAGE,
'l=s' => \$::opt_l,
'n|new' => \$::NEWNAME,
@ -8476,44 +8474,53 @@ sub mkdsklsnode
my $mac_or_local_link_addr;
my $adaptertype;
my $netmask;
my $if = 1;
my $netname;
# Use -F to workaround ping time during diskless node defined in nim
my $defcmd = "/usr/sbin/nim -Fo define -t $type ";
$objhash{$node}{'mac'} =~ s/://g; # strip out colons if any
if (xCAT::NetworkUtils->getipaddr($nodeshorthost) =~ /:/) #ipv6 node
my @macs = split /\|/, $objhash{$node}{'mac'};
foreach my $mac (@macs)
{
$mac_or_local_link_addr = xCAT::NetworkUtils->linklocaladdr($objhash{$node}{'mac'});
$adaptertype = "ent6";
$netmask = xCAT::NetworkUtils->prefixtomask($nethash{$node}{'mask'});
} else {
$mac_or_local_link_addr = $objhash{$node}{'mac'};
# only support Ethernet for management interfaces
if ($::HFI)
if (xCAT::NetworkUtils->getipaddr($nodeshorthost) =~ /:/) #ipv6 node
{
$adaptertype = "hfi0";
$mac_or_local_link_addr = xCAT::NetworkUtils->linklocaladdr($mac);
$adaptertype = "ent6";
$netmask = xCAT::NetworkUtils->prefixtomask($nethash{$node}{'mask'});
} else {
$adaptertype = "ent";
$mac_or_local_link_addr = $mac;
# only support Ethernet for management interfaces
if ($nethash{$node}{'mgtifname'} =~ /hf/)
{
$adaptertype = "hfi0";
} else {
$adaptertype = "ent";
}
$netmask = $nethash{$node}{'mask'};
}
$netmask = $nethash{$node}{'mask'};
}
my $netname = $nethash{$node}{'netname'};
if ($::NEWNAME)
{
$defcmd .= "-a if1='find_net $nodeshorthost 0' ";
} else
{
$defcmd .=
"-a if1='find_net $nodeshorthost $mac_or_local_link_addr $adaptertype' ";
$netname = $nethash{$node}{'netname'};
if ($::NEWNAME)
{
$defcmd .= "-a if$if='find_net $nodeshorthost 0' ";
} else
{
$defcmd .=
"-a if$if='find_net $nodeshorthost $mac_or_local_link_addr $adaptertype' ";
}
$defcmd .= "-a cable_type$if=N/A ";
$if = $if + 1;
}
$defcmd .= "-a cable_type1=N/A -a netboot_kernel=mp ";
$defcmd .= "-a netboot_kernel=mp ";
if (!$::HFI)
if ($nethash{$node}{'mgtifname'} !~ /hf/)
{
$defcmd .=
"-a net_definition='$adaptertype $netmask $nethash{$node}{'gateway'}' ";
"-a net_definition='$adaptertype $netmask $nethash{$node}{'gateway'}' ";
$defcmd .= "-a net_settings1='$speed $duplex' ";
}
@ -8526,7 +8533,6 @@ sub mkdsklsnode
$defcmd .= "-a $attr=$attrs{$attr} ";
}
}
$defcmd .= "$nim_name 2>&1";
if ($::VERBOSE)
{
@ -8535,10 +8541,10 @@ sub mkdsklsnode
#push @{$rsp->{data}}, "Running: \'$defcmd\'\n";
xCAT::MsgUtils->message("I", $rsp, $callback);
} else {
my $rsp;
push @{$rsp->{data}}, "$Sname: Creating NIM client definition \'$nim_name.\'\n";
xCAT::MsgUtils->message("I", $rsp, $callback);
}
my $rsp;
push @{$rsp->{data}}, "$Sname: Creating NIM client definition \'$nim_name.\'\n";
xCAT::MsgUtils->message("I", $rsp, $callback);
}
$output = xCAT::Utils->runcmd("$defcmd", -1);
if ($::RUNCMD_RC != 0)
{
@ -8599,10 +8605,10 @@ sub mkdsklsnode
if ($imagehash{$image_name}{paging})
{
$arg_string .= "-a paging=$imagehash{$image_name}{paging} ";
# add extras from the cmd line
if ($attrs{sparse_paging} ) {
$arg_string .= "-a sparse_paging=$attrs{sparse_paging} ";
}
# add extras from the cmd line
if ($attrs{sparse_paging} ) {
$arg_string .= "-a sparse_paging=$attrs{sparse_paging} ";
}
}
if ($imagehash{$image_name}{resolv_conf})
{
@ -8612,12 +8618,12 @@ sub mkdsklsnode
if ($imagehash{$image_name}{dump})
{
$arg_string .= "-a dump=$imagehash{$image_name}{dump} ";
if ($attrs{configdump} ) {
$arg_string .= "-a configdump=$attrs{configdump} ";
} else {
# the default is selective
$arg_string .= "-a configdump=selective ";
}
if ($attrs{configdump} ) {
$arg_string .= "-a configdump=$attrs{configdump} ";
} else {
# the default is selective
$arg_string .= "-a configdump=selective ";
}
}
if ($imagehash{$image_name}{home})
{
@ -8670,7 +8676,7 @@ sub mkdsklsnode
my $rsp;
push @{$rsp->{data}}, "$Sname: Initializing NIM machine \'$nim_name\'. \n";
xCAT::MsgUtils->message("I", $rsp, $callback);
xCAT::MsgUtils->message("I", $rsp, $callback);
$output = xCAT::Utils->runcmd("$initcmd", -1);
if ($::RUNCMD_RC != 0)
@ -8721,6 +8727,36 @@ sub mkdsklsnode
}
# Update /etc/bootptab for HFI mac address failover
my $if = 1;
my $firstmac;
my @macs = split /\|/, $objhash{$node}{'mac'};
my $cmd = "cat /etc/bootptab | grep $macs[0]";
my @result = xCAT::Utils->runcmd("$cmd", -1);
if ($::RUNCMD_RC == 0)
{
foreach my $mac (@macs)
{
my $newline = $result[0];
if ($if == 1)
{
$if = $if + 1;
$firstmac = $mac;
next;
}
my $cmd = "cat /etc/bootptab | grep $mac";
my @rt = xCAT::Utils->runcmd("$cmd", -1);
if ($::RUNCMD_RC == 0)
{
$if = $if + 1;
next;
}
$newline =~ s/^(.*)$firstmac(.*)$/$1$mac$2/g;
$cmd = "echo $newline >> /etc/bootptab";
xCAT::Utils->runcmd("$cmd", -1);
$if = $if + 1;
}
}
} # end - for each node
#
@ -9095,7 +9131,7 @@ sub checkNIMnetworks
# create new nim network def
# use the same network name as xCAT uses
my $devtype;
if ($::HFI)
if ($nethash{$node}{'mgtifname'} =~ /hf/)
{
$devtype = "hfi";
} else {