FSP/BPA redundancy: modify the way of matching node in rscan

git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@8764 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
This commit is contained in:
yinle 2011-01-28 14:30:02 +00:00
parent 40f482fb1a
commit 87954afea6

View File

@ -1,6 +1,7 @@
# IBM(c) 2007 EPL license http://www.eclipse.org/legal/epl-v10.html
package xCAT::PPCdb;
use xCAT_plugin::lsslp;
use strict;
use xCAT::Table;
use xCAT::GlobalDef;
@ -252,9 +253,59 @@ sub update_ppc {
'pprofile','parent','supernode',
'comments', 'disable']);
my @maclist = $db{mac}->getAllNodeAttribs(['node','mac']);
###################################
# Update FSP in tables
# Need to do database migration first
###################################
foreach my $value ( @$values ) {
my ($ttype,
$tname,
$tid,
$tmtm,
$tsn,
$tside,
$server,
$pprofile,
$parent,
$ips ) = split /,/, $value;
if ( $ttype eq 'cec' )
{
my $hostname = xCAT_plugin::lsslp::gethost_from_url_or_old($tname, "FSP", $tmtm, $tsn, "", "", $tid, "","");
if ($hostname ne $tname)
{
$hostname =~ /\-(\w)$/;
if ($1 =~ /^(A|B)$/)
{
$tside = $1;
}
if ( update_node_attribs($hwtype, $ttype, $hostname, $tid, $tmtm, $tsn, $tside,
$server, $pprofile, $parent, $ips, \%db, $tname, \@ppclist))
{
push @update_list, $value;
}
}
} elsif ( $ttype eq 'frame' )
{
my $hostname = xCAT_plugin::lsslp::gethost_from_url_or_old($tname, "BPA", $tmtm, $tsn, "", "", $tid, "","");
if ($hostname ne $tname)
{
$hostname =~ /\-(\w)$/;
if ($1 =~ /^(A|B)$/)
{
$tside = $1;
}
if ( update_node_attribs($hwtype, $ttype, $hostname, $tid, $tmtm, $tsn, $tside,
$server, $pprofile, $parent, $ips, \%db, $tname, \@ppclist))
{
push @update_list, $value;
}
}
}
}
###################################
# Update CEC in tables
###################################
foreach my $value ( @$values ) {
my ($type,
@ -268,18 +319,14 @@ sub update_ppc {
$parent,
$ips ) = split /,/, $value;
next if ( $type ne 'fsp' );
next if ( $type ne 'cec' );
my $predefined_node = undef;
foreach my $vpdent (@vpdlist)
{
if ( $vpdent->{mtm} eq $model && $vpdent->{serial} eq $serial && $vpdent->{side} eq $side )
if ( $vpdent->{mtm} eq $model && $vpdent->{serial} eq $serial )
{
$predefined_node = $vpdent->{node};
if ( $predefined_node =~ /-B$/ ) {
$name = $name . "-B";
}
if ( update_node_attribs($hwtype, $type, $name, $id, $model, $serial, $side,
$server, $pprofile, $parent, $ips,
\%db, $predefined_node, \@ppclist))
@ -295,7 +342,7 @@ sub update_ppc {
'pprofile','parent','supernode',
'comments', 'disable']);
###################################
# Update BPA in tables
# Update FRAME in tables
###################################
foreach my $value ( @$values ) {
my ($type,
@ -309,7 +356,7 @@ sub update_ppc {
$parent,
$ips ) = split /,/, $value;
next if ( $type ne 'bpa');
next if ( $type ne 'frame');
my $predefined_node = undef;
foreach my $vpdent (@vpdlist)
@ -317,9 +364,7 @@ sub update_ppc {
if ( $vpdent->{mtm} eq $model && $vpdent->{serial} eq $serial && $vpdent->{side} eq $side )
{
$predefined_node = $vpdent->{node};
if ( $predefined_node =~ /-B$/ ) {
$name = $name . "-B";
}
if (update_node_attribs($hwtype, $type, $name, $id, $model, $serial, $side,
$server, $pprofile, $parent, $ips,
\%db, $predefined_node, \@newppclist))