From 8317f55531d9e50f25e7d9b9aaad8143a77c42a2 Mon Sep 17 00:00:00 2001 From: sakolish Date: Mon, 18 Feb 2008 20:00:34 +0000 Subject: [PATCH] Return errorcode on exit git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@512 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd --- perl-xCAT-2.0/xCAT/PPC.pm | 40 +++++++++++++++++++++++---------------- 1 file changed, 24 insertions(+), 16 deletions(-) diff --git a/perl-xCAT-2.0/xCAT/PPC.pm b/perl-xCAT-2.0/xCAT/PPC.pm index dd9bd69fc..a8b8ce3fc 100644 --- a/perl-xCAT-2.0/xCAT/PPC.pm +++ b/perl-xCAT-2.0/xCAT/PPC.pm @@ -44,7 +44,7 @@ my %errmsg = ( ########################################################################## # Invokes the callback with the specified message ########################################################################## -sub send_msg { +sub send_emsg { my $request = shift; my %output; @@ -55,6 +55,7 @@ sub send_msg { if ( exists( $request->{pipe} )) { my $out = $request->{pipe}; + $output{errorcode} = 1; $output{data} = \@_; print $out freeze( [\%output] ); print $out "\nENDOFFREEZE6sK4ci\n"; @@ -65,6 +66,7 @@ sub send_msg { elsif ( exists( $request->{callback} )) { my $callback = $request->{callback}; + $output{errorcode} = 1; $output{data} = \@_; $callback->( \%output ); } @@ -124,11 +126,9 @@ sub process_command { ####################################### while ( $children > 0 ) { child_response( $callback, $fds ); - } + } if ( exists( $request->{verbose} )) { - my $elapsed = Time::HiRes::gettimeofday() - $start; - my $msg = sprintf( "Total Elapsed Time: %.3f sec\n", $elapsed ); - trace( $request, $msg ); + trace( $request, $start ); } return(0); } @@ -140,11 +140,18 @@ sub process_command { sub trace { my $request = shift; + my $start = shift; my $msg = shift; + my %output; + my $elapsed = Time::HiRes::gettimeofday() - $start; + my $time = sprintf( "Total Elapsed Time: %.3f sec\n", $elapsed ); my ($sec,$min,$hour,$mday,$mon,$yr,$wday,$yday,$dst) = localtime(time); - my $msg = sprintf "%02d:%02d:%02d %5d %s", $hour,$min,$sec,$$,$msg; - send_msg( $request, $msg ); + my $msg = sprintf "%02d:%02d:%02d %5d %s", $hour,$min,$sec,$$,$time; + + my $callback = $request->{callback}; + $output{data} = \@_; + $callback->( \%output ); } @@ -206,7 +213,7 @@ sub preprocess_nodes { my $db = xCAT::Table->new( $tab ); if ( !defined( $db )) { - send_msg( $request, sprintf( $errmsg{DB_UNDEF}, $tab )); + send_emsg( $request, sprintf( $errmsg{DB_UNDEF}, $tab )); return undef; } #################################### @@ -217,7 +224,7 @@ sub preprocess_nodes { if ( !defined( $ent )) { my $msg = sprintf( "$_: $errmsg{NODE_UNDEF}", $tab ); - send_msg( $request, $msg ); + send_emsg( $request, $msg ); next; } ################################ @@ -235,7 +242,7 @@ sub preprocess_nodes { $tabs{$_} = xCAT::Table->new($_); if ( !exists( $tabs{$_} )) { - send_msg( $request, sprintf( $errmsg{DB_UNDEF}, $_ )); + send_emsg( $request, sprintf( $errmsg{DB_UNDEF}, $_ )); return undef; } } @@ -249,7 +256,7 @@ sub preprocess_nodes { # Error locating node attributes ###################################### if ( ref($d) ne 'ARRAY' ) { - send_msg( $request,"$node: $d"); + send_emsg( $request,"$node: $d"); next; } ###################################### @@ -474,7 +481,7 @@ sub fork_cmd { ################################### # Fork error ################################### - send_msg( $request, "Fork error: $!" ); + send_emsg( $request, "Fork error: $!" ); return undef; } elsif ( $pid == 0 ) { @@ -522,7 +529,7 @@ sub invoke_cmd { # Error connecting #################################### if ( ref($exp[0]) ne "LWP::UserAgent" ) { - send_msg( $request, $exp[0] ); + send_emsg( $request, $exp[0] ); return; } my $result = xCAT::PPCfsp::handler( $host, $request, \@exp ); @@ -561,7 +568,7 @@ sub invoke_cmd { # Error connecting ######################################## if ( ref($exp[0]) ne "Expect" ) { - send_msg( $request, $exp[0] ); + send_emsg( $request, $exp[0] ); return; } ######################################## @@ -584,7 +591,7 @@ sub invoke_cmd { # Return error ######################################## if ( ref($result) ne 'ARRAY' ) { - send_msg( $request, $$verbose_log.$result ); + send_emsg( $request, $$verbose_log.$result ); return; } ######################################## @@ -692,7 +699,7 @@ sub process_request { # Return error #################################### if ( ref($opt) eq 'ARRAY' ) { - send_msg( \%request, @$opt ); + send_emsg( \%request, @$opt ); return(1); } #################################### @@ -717,3 +724,4 @@ sub process_request { +