From b892b556d34e6e56c360b9a04e9a24334e4107e0 Mon Sep 17 00:00:00 2001 From: lissav Date: Tue, 24 Sep 2013 10:37:46 -0400 Subject: [PATCH] defect 3799 --- xCAT-server/lib/xcat/plugins/updatenode.pm | 33 ++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/xCAT-server/lib/xcat/plugins/updatenode.pm b/xCAT-server/lib/xcat/plugins/updatenode.pm index 399704c03..c620a8d81 100644 --- a/xCAT-server/lib/xcat/plugins/updatenode.pm +++ b/xCAT-server/lib/xcat/plugins/updatenode.pm @@ -1497,6 +1497,16 @@ sub buildnodestatus { my ($node,$info) = split (/:/, $line); if ($::REPORTSTATUS eq "Y" ) { # return status NOW + if (grep(/^$node$/, @::FAILEDNODES)) { # already on the fail buffer + my $rsp2 = {}; # report failed + $rsp2->{status}->[0] = "$node: FAILED"; + $::CALLERCALLBACK->($rsp2); + # update the nodelist table updatestatus flag for the node + my $stat="failed"; + my @nodearray=(); + push @nodearray,$node; + xCAT::TableUtils->setUpdateStatus(\@nodearray, $stat); + } else { # completely successful my $rsp2 = {}; $rsp2->{status}->[0] = "$node: SUCCEEDED"; $::CALLERCALLBACK->($rsp2); @@ -1505,6 +1515,7 @@ sub buildnodestatus my @nodearray=(); push @nodearray,$node; xCAT::TableUtils->setUpdateStatus(\@nodearray, $stat); + } } if (grep(/^$node$/, @::SUCCESSFULLNODES)) { # already on the buffer next; @@ -1748,6 +1759,16 @@ sub getdata { my ($node,$info) = split (/:/, $output); if ($::REPORTSTATUS eq "Y" ) { # return status NOW + if (grep(/^$node$/, @::FAILEDNODES)) { # already on the fail buffer + my $rsp2 = {}; # report failed + $rsp2->{status}->[0] = "$node: FAILED"; + $::CALLERCALLBACK->($rsp2); + # update the nodelist table updatestatus flag for the node + my $stat="failed"; + my @nodearray=(); + push @nodearray,$node; + xCAT::TableUtils->setUpdateStatus(\@nodearray, $stat); + } else { # completely successful my $rsp2 = {}; $rsp2->{status}->[0] = "$node: SUCCEEDED"; $::CALLERCALLBACK->($rsp2); @@ -1756,6 +1777,7 @@ sub getdata my @nodearray=(); push @nodearray,$node; xCAT::TableUtils->setUpdateStatus(\@nodearray, $stat); + } } if (grep(/^$node$/, @::SUCCESSFULLNODES)) { # already on the buffer next; @@ -1790,6 +1812,16 @@ sub getdata } } else { # already installed is ok if ($::REPORTSTATUS eq "Y" ) { # return status NOW + if (grep(/^$node$/, @::FAILEDNODES)) { # already on the fail buffer + my $rsp2 = {}; # report failed + $rsp2->{status}->[0] = "$node: FAILED"; + $::CALLERCALLBACK->($rsp2); + # update the nodelist table updatestatus flag for the node + my $stat="failed"; + my @nodearray=(); + push @nodearray,$node; + xCAT::TableUtils->setUpdateStatus(\@nodearray, $stat); + } else { # completely successful my $rsp2 = {}; $rsp2->{status}->[0] = "$node: SUCCEEDED"; $::CALLERCALLBACK->($rsp2); @@ -1798,6 +1830,7 @@ sub getdata my @nodearray=(); push @nodearray,$node; xCAT::TableUtils->setUpdateStatus(\@nodearray, $stat); + } } if (grep(/^$node$/, @::SUCCESSFULLNODES)) { # already on the buffer next;