diff --git a/perl-xCAT/xCAT/FSPUtils.pm b/perl-xCAT/xCAT/FSPUtils.pm index 63e9b8b78..04a7359c1 100644 --- a/perl-xCAT/xCAT/FSPUtils.pm +++ b/perl-xCAT/xCAT/FSPUtils.pm @@ -143,6 +143,19 @@ sub fsp_api_action { } else { $tmp_node = $fsp_name; } + + # find parent for fsp/bpa, use parent's attributes first. + my $ntype = xCAT::DBobjUtils->getnodetype($tmp_node); + if ($ntype =~ /^(fsp|bpa)$/) { + my $ptab = xCAT::Table->new('ppc'); + if ($ptab) { + my $parent = $ptab->getNodeAttribs($tmp_node, ["parent"]); + if ($parent and $parent->{parent}) { + $tmp_node = $parent->{parent}; + } + } + } + ($user, $password) = xCAT::PPCdb::credentials( $tmp_node, $fsp_bpa_type,'HMC'); if ( !$password) { $res = "Cannot get password of userid 'HMC'. Please check table 'passwd' or 'ppcdirect'.";