diff --git a/xCAT-server/lib/xcat/plugins/updatenode.pm b/xCAT-server/lib/xcat/plugins/updatenode.pm index 7295b26b7..da2ef58a4 100644 --- a/xCAT-server/lib/xcat/plugins/updatenode.pm +++ b/xCAT-server/lib/xcat/plugins/updatenode.pm @@ -878,7 +878,7 @@ sub updatenode @::FAILEDNODES=(); #print Dumper($request); my $nodes = $request->{node}; - # $request->{status}= "yes"; for testing + # $request->{status}= "yes"; # for testing my $requeststatus; if (defined($request->{status})) { $requeststatus = $request->{status}; @@ -1484,12 +1484,20 @@ sub buildnodestatus if($line =~ /^\s*(\S+)\s*:\s*Remote_command_successful/) { my ($node,$info) = split (/:/, $line); - push(@::SUCCESSFULLNODES,$node); + if (grep(/^$node$/, @::SUCCESSFULLNODES)) { # already on the buffer + next; + } else { + push(@::SUCCESSFULLNODES,$node); + } } elsif($line =~ /^\s*(\S+)\s*:\s*Remote_command_failed/) { my ($node,$info)= split (/:/, $line); - push(@::FAILEDNODES,$node); + if (grep(/^$node$/, @::FAILEDNODES)) { # already on the buffer + next; + } else { + push(@::FAILEDNODES,$node); + } } else { @@ -1684,12 +1692,20 @@ sub getdata if($output =~ /^\s*(\S+)\s*:\s*Remote_command_successful/) { my ($node,$info) = split (/:/, $output); - push(@::SUCCESSFULLNODES,$node); + if (grep(/^$node$/, @::SUCCESSFULLNODES)) { # already on the buffer + next; + } else { + push(@::SUCCESSFULLNODES,$node); + } } if($output =~ /^\s*(\S+)\s*:\s*Remote_command_failed/) { my ($node,$info) = split (/:/, $output); - push(@::FAILEDNODES,$node); + if (grep(/^$node$/, @::FAILEDNODES)) { # already on the buffer + next; + } else { + push(@::FAILEDNODES,$node); + } } @@ -1742,7 +1758,11 @@ sub getdata2 if($output =~ /^\s*(\S+)\s*:\s*Remote_command_successful/) { my ($node,$info) = split (/:/, $output); - push(@::SUCCESSFULLNODES,$node); + if (grep(/^$node$/, @::SUCCESSFULLNODES)) { # already on the buffer + next; + } else { + push(@::SUCCESSFULLNODES,$node); + } } # check for already installed, this is not an error if($output =~ /^\s*(\S+)\s*:\s*already installed/) @@ -1753,7 +1773,11 @@ sub getdata2 { if ($alreadyinstalled == 0) { # not an already install error my ($node,$info) = split (/:/, $output); - push(@::FAILEDNODES,$node); + if (grep(/^$node$/, @::FAILEDNODES)) { # already on the buffer + next; + } else { + push(@::FAILEDNODES,$node); + } } }