Have getbmcconfig use the refactored password retrieval function, get ready for remoteimmsetup
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@14481 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
This commit is contained in:
parent
bbda4fdff2
commit
3df2492e9d
@ -4,6 +4,7 @@ use Data::Dumper;
|
||||
use xCAT::Table;
|
||||
use xCAT::MsgUtils;
|
||||
use xCAT::Utils;
|
||||
use xCAT::PasswordUtils;
|
||||
use xCAT::TableUtils;
|
||||
use IO::Select;
|
||||
use Socket;
|
||||
@ -11,6 +12,7 @@ use Socket;
|
||||
sub handled_commands {
|
||||
return {
|
||||
getbmcconfig => 'bmcconfig',
|
||||
remoteimmsetup => 'bmcconfig',
|
||||
};
|
||||
}
|
||||
|
||||
@ -95,44 +97,27 @@ sub process_request {
|
||||
}
|
||||
#my $sitetable = xCAT::Table->new('site');
|
||||
my $ipmitable = xCAT::Table->new('ipmi');
|
||||
my $passtable = xCAT::Table->new('passwd');
|
||||
my $tmphash;
|
||||
my $username = 'USERID';
|
||||
my $username;
|
||||
my $gennedpassword=0;
|
||||
my $bmc;
|
||||
my $password = 'PASSW0RD';
|
||||
if ($passtable) { ($tmphash)=$passtable->getAttribs({key=>'ipmi'},'username','password'); }
|
||||
#Check for generics, can grab for both user and pass with a query
|
||||
#since they cannot be in disparate records in passwd tab
|
||||
if ($tmphash->{username}) {
|
||||
$username=$tmphash->{username};
|
||||
}
|
||||
if ($tmphash->{password}) { #It came for free with the last query
|
||||
$password=$tmphash->{password};
|
||||
}
|
||||
#$tmphash=($sitetable->getAttribs({key=>'genpasswords'},'value'))[0];
|
||||
my @entries = xCAT::TableUtils->get_site_attribute("genpasswords");
|
||||
my $site_entry = $entries[0];
|
||||
if ($site_entry eq "1" or $site_entry =~ /y(es)?/i) {
|
||||
my $password;
|
||||
$tmphash=$ipmitable->getNodesAttribs([$node],['bmc','username','bmcport','password','taggedvlan']);
|
||||
my $authmap = xCAT::PasswordUtils::getIPMIAuth(noderange=>[$node],ipmihash=>$tmphash);
|
||||
if ($::XCATSITEVALS{genpasswords} eq "1" or $::XCATSITEVALS{genpasswords} =~ /y(es)?/i) {
|
||||
$password = genpassword(10)."1cA!";
|
||||
$gennedpassword=1;
|
||||
$tmphash=$ipmitable->getNodeAttribs($node,['bmc','username','bmcport','taggedvlan']);
|
||||
} else {
|
||||
$tmphash=$ipmitable->getNodeAttribs($node,['bmc','username','bmcport','password','taggedvlan']);
|
||||
if ($tmphash->{password}) {
|
||||
$password = $tmphash->{password};
|
||||
}
|
||||
$password = $authmap->{$node}->{password};
|
||||
}
|
||||
my $bmcport;
|
||||
if (defined $tmphash->{bmcport}) {
|
||||
$bmcport = $tmphash->{bmcport};
|
||||
if (defined $tmphash->{$node}->[0]->{bmcport}) {
|
||||
$bmcport = $tmphash->{$node}->[0]->{bmcport};
|
||||
}
|
||||
if ($tmphash->{bmc} ) {
|
||||
$bmc=$tmphash->{bmc};
|
||||
}
|
||||
if ($tmphash->{username}) {
|
||||
$username = $tmphash->{username};
|
||||
if ($tmphash->{$node}->[0]->{bmc} ) {
|
||||
$bmc=$tmphash->{$node}->[0]->{bmc};
|
||||
}
|
||||
$username = $authmap->{$node}->{username};
|
||||
unless (defined $bmc) {
|
||||
xCAT::MsgUtils->message('S',"Unable to identify bmc for $node, refusing to give config data");
|
||||
$callback->({error=>["Invalid table configuration for bmcconfig"],errorcode=>[1]});
|
||||
@ -141,7 +126,7 @@ sub process_request {
|
||||
foreach my $sbmc (split /,/,$bmc) {
|
||||
(my $ip,my $mask,my $gw) = net_parms($sbmc);
|
||||
unless ($ip and $mask and $username and $password) {
|
||||
xCAT::MsgUtils->message('S',"Unable to determine IP, netmask, username, and/or pasword for $sbmc, ensure that host resolution is working. Best guess parameters would have been: IP: '$ip', netmask: '$netmask', username: '$username', password: '$password'", );
|
||||
xCAT::MsgUtils->message('S',"Unable to determine IP, netmask, username, and/or pasword for $sbmc, ensure that host resolution is working. Best guess parameters would have been: IP: '$ip', netmask: '$mask', username: '$username', password: '$password'", );
|
||||
$callback->({error=>["Invalid table configuration for bmcconfig"],errorcode=>[1]});
|
||||
return 1;
|
||||
}
|
||||
@ -149,8 +134,8 @@ sub process_request {
|
||||
if (defined $bmcport) {
|
||||
$response->{bmcport}=$bmcport;
|
||||
}
|
||||
if (defined $tmphash->{taggedvlan}) {
|
||||
$response->{taggedvlan}=$tmphash->{taggedvlan};
|
||||
if (defined $tmphash->{$node}->[0]->{taggedvlan}) {
|
||||
$response->{taggedvlan}=$tmphash->{$node}->[0]->{taggedvlan};
|
||||
}
|
||||
$callback->($response);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user