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
This commit is contained in:
jjhua 2010-02-26 09:46:29 +00:00
parent 8096b2141c
commit 4dfda3a6d8

View File

@ -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;