From 4dfda3a6d825bd18ca297cb96166755fb5abb836 Mon Sep 17 00:00:00 2001 From: jjhua Date: Fri, 26 Feb 2010 09:46:29 +0000 Subject: [PATCH] move the invoking fsp-api function in every FSPxxx.pm to Utils.pm git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@5309 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd --- perl-xCAT/xCAT/Utils.pm | 109 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 109 insertions(+) diff --git a/perl-xCAT/xCAT/Utils.pm b/perl-xCAT/xCAT/Utils.pm index 2b9b3ee5d..b0b55c3a5 100644 --- a/perl-xCAT/xCAT/Utils.pm +++ b/perl-xCAT/xCAT/Utils.pm @@ -5449,4 +5449,113 @@ sub full_path } +#------------------------------------------------------------------------------- + +=head3 fsp_api_action + Description: + invoke the fsp_api to perform the functions + + Arguments: + $node_name: + $attrs: an attributes hash + $action: the operations on the fsp, bpa or lpar + $tooltype: 0 for HMC, 1 for HNM + Returns: + Return result of the operation + Globals: + none + Error: + none + Example: + my $res = xCAT::Utils::fsp_api_action( $node_name, $d, "add_connection", $tooltype ); + Comments: + +=cut + +#------------------------------------------------------------------------------- +sub fsp_api_action { + my $node_name = shift; + my $attrs = shift; + my $action = shift; + my $tooltype = shift; +# my $user = "HMC"; +# my $password = "abc123"; + my $fsp_api = ($::XCATROOT) ? "$::XCATROOT/sbin/fsp-api" : "/opt/xcat/sbin/fsp-api"; + my $id = 1; + my $fsp_name = (); + my $fsp_ip = (); + my $target_list=(); + my $type = (); # fsp|lpar -- 0. BPA -- 1 + my @result; + my $Rc = 0 ; + my %outhash = (); + my $res; + + if( !defined($tooltype) ) { + $tooltype = 0; + } + + $id = $$attrs[0]; + $fsp_name = $$attrs[3]; + + my %objhash = (); + $objhash{$fsp_name} = "node"; + my %myhash = xCAT::DBobjUtils->getobjdefs(\%objhash); +# my $password = $myhash{$fsp_name}{"passwd.hscroot"}; + my $password = $myhash{$fsp_name}{"passwd.HMC"}; + print "fspname:$fsp_name password:$password\n"; + if(!$password ) { + $res = "The password.hscroot of $fsp_name in ppcdirect table is empty"; + return ([$node_name, $res, -1]); + } + my $user = "HMC"; + #my $user = "hscroot"; +# my $cred = $request->{$fsp_name}{cred}; +# my $user = @$cred[0]; +# my $password = @$cred[1]; + + if($$attrs[4] =~ /^fsp$/ || $$attrs[4] =~ /^lpar$/) { + $type = 0; + } else { + $type = 1; + } + + ############################ + # Get IP address + ############################ + $fsp_ip = xCAT::Utils::get_hdwr_ip($fsp_name); + if($fsp_ip == -1) { + $res = "Failed to get the $fsp_name\'s ip"; + return ([$node_name, $res, -1]); + } + + print "fsp name: $fsp_name\n"; + print "fsp ip: $fsp_ip\n"; + + my $cmd; + if( $action =~ /^code_update$/) { + $cmd = "$fsp_api -a $action -u $user -p $password -T $tooltype -t $type:$fsp_ip:$id:$node_name: -d /install/packages_fw/"; + } else { + $cmd = "$fsp_api -a $action -u $user -p $password -T $tooltype -t $type:$fsp_ip:$id:$node_name:"; + } + + print "cmd: $cmd\n"; + $SIG{CHLD} = (); + $res = xCAT::Utils->runcmd($cmd, -1); + #$res = "good"; + $Rc = $::RUNCMD_RC; + #$Rc = -1; + ################## + # output the prompt + ################# + #$outhash{ $node_name } = $res; + + return( [$node_name,$res, $Rc] ); + +} + + + + + 1;