mirror of
https://github.com/xcat2/xcat-core.git
synced 2025-06-13 09:50:19 +00:00
Merge pull request #2695 from xuweibj/issforobmc
Get default username and password from passwd table for openbmc
This commit is contained in:
@ -196,7 +196,7 @@ sub preprocess_request {
|
||||
|
||||
my $parse_result = parse_args($command, $extrargs);
|
||||
if (ref($parse_result) eq 'ARRAY') {
|
||||
$callback->({ error => $parse_result->[1], errorcode => $parse_result->[0] });
|
||||
$callback->({ errorcode => $parse_result->[0], data => $parse_result->[1] });
|
||||
$request = {};
|
||||
return;
|
||||
}
|
||||
@ -304,7 +304,7 @@ sub parse_args {
|
||||
return ([ 1, "No option specified for rpower" ]);
|
||||
}
|
||||
unless ($subcommand =~ /^on$|^off$|^reset$|^boot$|^status$|^stat$|^state$/) {
|
||||
return ([ 1, "$subcommand is not supported for rpower" ]);
|
||||
return ([ 1, "Unsupported command: $command $subcommand" ]);
|
||||
}
|
||||
} elsif ($command eq "rinv") {
|
||||
#
|
||||
@ -314,7 +314,7 @@ sub parse_args {
|
||||
|
||||
|
||||
unless ($subcommand =~ /^cpu$|^dimm$|^bios$|^all$/) {
|
||||
return ([ 1, "Only 'cpu','dimm', 'bios','all' are supported currently" ]);
|
||||
return ([ 1, "Unsupported command: $command $subcommand" ]);
|
||||
}
|
||||
} else {
|
||||
return ([ 1, "Command is not supported." ]);
|
||||
@ -387,28 +387,35 @@ sub parse_command_status {
|
||||
sub parse_node_info {
|
||||
my $noderange = shift;
|
||||
|
||||
my $table = xCAT::Table->new('openbmc');
|
||||
my $tablehash = $table->getNodesAttribs(\@$noderange, ['bmc', 'username', 'password']);
|
||||
my $passwd_table = xCAT::Table->new('passwd');
|
||||
my $passwd_hash = $passwd_table->getAttribs({ 'key' => 'openbmc' }, qw(username password));
|
||||
|
||||
my $openbmc_table = xCAT::Table->new('openbmc');
|
||||
my $openbmc_hash = $openbmc_table->getNodesAttribs(\@$noderange, ['bmc', 'username', 'password']);
|
||||
|
||||
foreach my $node (@$noderange) {
|
||||
if (defined($tablehash->{$node}->[0])) {
|
||||
if ($tablehash->{$node}->[0]->{'bmc'}) {
|
||||
$node_info{$node}{bmc} = $tablehash->{$node}->[0]->{'bmc'};
|
||||
if (defined($openbmc_hash->{$node}->[0])) {
|
||||
if ($openbmc_hash->{$node}->[0]->{'bmc'}) {
|
||||
$node_info{$node}{bmc} = $openbmc_hash->{$node}->[0]->{'bmc'};
|
||||
} else {
|
||||
xCAT::SvrUtils::sendmsg("Unable to get attribute bmc", $callback, $node);
|
||||
next;
|
||||
}
|
||||
|
||||
if ($tablehash->{$node}->[0]->{'username'}) {
|
||||
$node_info{$node}{username} = $tablehash->{$node}->[0]->{'username'};
|
||||
if ($openbmc_hash->{$node}->[0]->{'username'}) {
|
||||
$node_info{$node}{username} = $openbmc_hash->{$node}->[0]->{'username'};
|
||||
} elsif ($passwd_hash and $passwd_hash->{username}) {
|
||||
$node_info{$node}{username} = $passwd_hash->{username};
|
||||
} else {
|
||||
xCAT::SvrUtils::sendmsg("Unable to get attribute username", $callback, $node);
|
||||
delete $node_info{$node};
|
||||
next;
|
||||
}
|
||||
|
||||
if ($tablehash->{$node}->[0]->{'password'}) {
|
||||
$node_info{$node}{password} = $tablehash->{$node}->[0]->{'password'};
|
||||
if ($openbmc_hash->{$node}->[0]->{'password'}) {
|
||||
$node_info{$node}{password} = $openbmc_hash->{$node}->[0]->{'password'};
|
||||
} elsif ($passwd_hash and $passwd_hash->{password}) {
|
||||
$node_info{$node}{password} = $passwd_hash->{password};
|
||||
} else {
|
||||
xCAT::SvrUtils::sendmsg("Unable to get attribute password", $callback, $node);
|
||||
delete $node_info{$node};
|
||||
|
Reference in New Issue
Block a user