From ee9ee54e5b31661866a840ae9e6fa76213bcb1b8 Mon Sep 17 00:00:00 2001
From: ellen56 <ellen56@8638fb3e-16cb-4fca-ae20-7b5d299a9bcd>
Date: Fri, 11 Mar 2011 07:04:37 +0000
Subject: [PATCH] fix defect 3152286

git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@9030 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
---
 xCAT-server/lib/xcat/plugins/nodestat.pm | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)

diff --git a/xCAT-server/lib/xcat/plugins/nodestat.pm b/xCAT-server/lib/xcat/plugins/nodestat.pm
index 54482de6c..b561aceeb 100644
--- a/xCAT-server/lib/xcat/plugins/nodestat.pm
+++ b/xCAT-server/lib/xcat/plugins/nodestat.pm
@@ -1095,18 +1095,18 @@ sub process_request {
 		   
 		   my $oldappstatus=$stuff->{$node1}->[0]->{'appstatus'};
 		   my $newappstatus=$status->{$node1}->{'appsd'};
-		   if ($newappstatus) {
-		       if ((!$oldappstatus) || ($newappstatus ne $oldappstatus)) { 
-			   $status1->{$node1}->{appstatus}= $newappstatus; 
-			   $status1->{$node1}->{appstatustime}= $currtime; 
-		       }  
-		   } 
-		   else {
-		       if ($oldappstatus) {
-			   $status1->{$node1}->{appstatus}= "";
-			   $status1->{$node1}->{appstatustime}= ""; 
-		       }
-		   }
+		   while ($newappstatus =~ /(\w+)\=(\w+)/) {
+                       my $tmp1=$1;
+                       my $tmp2=$2;
+                       if($oldappstatus =~ /$tmp1\=/){
+                           $oldappstatus =~ s/$tmp1\=\w+/$tmp1\=$tmp2/g;
+                       }else{
+                           $oldappstatus = $oldappstatus."\,$tmp1\=$tmp2";
+                       }
+                       $newappstatus =~ s/(\w+)\=(\w+)//g;
+                    }
+	 	    $status1->{$node1}->{appstatus}= $oldappstatus; 
+		    $status1->{$node1}->{appstatustime}= $currtime; 
 	       }  
 	       #print Dumper($status1);    
 	       $nodetab->setNodesAttribs($status1);