From 162a383a2d80c6f14a1a5cef9470d4e69f8c0c75 Mon Sep 17 00:00:00 2001 From: sakolish Date: Wed, 5 Mar 2008 18:25:36 +0000 Subject: [PATCH] Return error message in enumerate(), but continue enumerating git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@684 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd --- perl-xCAT-2.0/xCAT/PPCscan.pm | 48 ++++++++++++++++++++++++++++++++--- 1 file changed, 44 insertions(+), 4 deletions(-) diff --git a/perl-xCAT-2.0/xCAT/PPCscan.pm b/perl-xCAT-2.0/xCAT/PPCscan.pm index a5bd836df..9d1e6bf70 100644 --- a/perl-xCAT-2.0/xCAT/PPCscan.pm +++ b/perl-xCAT-2.0/xCAT/PPCscan.pm @@ -209,10 +209,12 @@ sub enumerate { $Rc = shift(@$cages); ############################# - # Return error + # Skip... + # Frame in bad state ############################# if ( $Rc != SUCCESS ) { - return( @$cages[0] ); + push @values, "# $mtms: ERROR @$cages[0]"; + next; } ############################# # Success @@ -306,6 +308,7 @@ sub enumerate { # CEC could be "Incomplete" state #################################### if ( $Rc == RC_ERROR ) { + push @values, "# $mtms: ERROR @$lpars[0]"; next; } #################################### @@ -353,7 +356,11 @@ sub format_output { my $uid = @$exp[4]; my $pw = @$exp[5]; - xCAT::PPCdb::add_ppc( $hwtype, $values ); + ####################################### + # Strip errors for results + ####################################### + my @val = grep( !/^#.*: ERROR /, @$values ); + xCAT::PPCdb::add_ppc( $hwtype, \@val ); } ########################################### # -x flag for xml format @@ -372,6 +379,12 @@ sub format_output { # Get longest name for formatting ####################################### foreach ( @$values ) { + ################################### + # Skip error message + ################################### + if ( /^#.*: ERROR / ) { + next; + } /[^\,]+,([^\,]+),/; my $length = length( $1 ); $max_length = ($length > $max_length) ? $length : $max_length; @@ -388,10 +401,18 @@ sub format_output { ####################################### # Add node information ####################################### + my @errmsg; foreach ( @$values ) { my @data = split /,/; my $i = 0; + ################################### + # Save error messages for last + ################################### + if ( /^#.*: ERROR / ) { + push @errmsg, $_; + next; + } foreach ( @header ) { my $d = $data[$i++]; @@ -407,6 +428,12 @@ sub format_output { $result .= sprintf( @$_[1], $d ); } } + ####################################### + # Add any error messages + ####################################### + foreach ( @errmsg ) { + $result.= "\n$_"; + } } $output{data} = [$result]; return( [\%output] ); @@ -433,6 +460,12 @@ sub format_stanza { my $type = $data[0]; my $i = 0; + ################################# + # Skip error message + ################################# + if ( /^#.*: ERROR / ) { + next; + } ################################# # Node attributes ################################# @@ -486,6 +519,12 @@ sub format_xml { my $type = $data[0]; my $i = 0; + ################################# + # Skip error message + ################################# + if ( /^#.*: ERROR / ) { + next; + } ################################# # Initialize hash reference ################################# @@ -542,7 +581,7 @@ sub rscan { ################################### my $values = enumerate( $exp ); if ( ref($values) ne 'ARRAY' ) { - return( [[$server,$values]] ); + return( [[$server,$values,1]] ); } ################################### # Success @@ -560,3 +599,4 @@ sub rscan { +