2
0
mirror of https://github.com/xcat2/xcat-core.git synced 2025-05-22 11:42:05 +00:00

Remove trailing spaces in file xCAT-server/lib/xcat/plugins/openbmc.pm

This commit is contained in:
GONG Jie 2017-12-31 23:59:59 +00:00
parent c74f449b5f
commit 3ef8da5c5e

View File

@ -97,7 +97,7 @@ unless (-d $::XCAT_LOG_DUMP_DIR) {
mkpath($::XCAT_LOG_DUMP_DIR);
}
# Common logging messages:
# Common logging messages:
my $usage_errormsg = "Usage error.";
my $reventlog_no_id_resolved_errormsg = "Provide a comma separated list of IDs to be resolved. Example: 'resolved=x,y,z'";
@ -156,8 +156,8 @@ $::SOFTWARE_URL = "$openbmc_project_url/software";
$::LOGGING_URL = "$openbmc_project_url/logging/entry/#ENTRY_ID#/attr/Resolved";
#-------------------------------------------------------
# The hash table to store method and url for request,
# process function for response
# The hash table to store method and url for request,
# process function for response
#-------------------------------------------------------
my %status_info = (
@ -177,7 +177,7 @@ my %status_info = (
},
RBEACON_ON_REQUEST => {
method => "PUT",
init_url => "$openbmc_project_url/led/groups/enclosure_identify/attr/Asserted",
init_url => "$openbmc_project_url/led/groups/enclosure_identify/attr/Asserted",
data => "true",
},
RBEACON_ON_RESPONSE => {
@ -359,7 +359,7 @@ my %status_info = (
},
RPOWER_BMC_STATUS_RESPONSE => {
process => \&rpower_response,
},
},
RPOWER_BMC_CHECK_RESPONSE => {
process => \&rpower_response,
},
@ -484,8 +484,8 @@ my %status_info = (
RSPCONFIG_CLEAR_GARD_REQUEST => {
method => "POST",
init_url => "/org/open_power/control/gard/action/Reset",
data => "[]",
},
data => "[]",
},
RSPCONFIG_CLEAR_GARD_RESPONSE => {
process => \&rspconfig_response,
},
@ -546,7 +546,7 @@ my %status_info = (
},
RSPCONFIG_API_CONFIG_ON_REQUEST => {
method => "PUT",
init_url => "$openbmc_project_url",
init_url => "$openbmc_project_url",
data => "true",
},
RSPCONFIG_API_CONFIG_ON_RESPONSE => {
@ -587,7 +587,7 @@ my %status_info = (
},
);
# Setup configured subcommand.
# Setup configured subcommand.
# Currently only rspconfig is supported and only for boolean commands or attribute settings.
#
# Usage can also be autogenerated for these commands. However, changes to the xCAT::Usage->usage
@ -853,7 +853,7 @@ sub preprocess_request {
$reqcopy->{_xcatpreprocessed}->[0] = 1;
push @requests, $reqcopy;
}
return \@requests;
}
@ -902,7 +902,7 @@ sub retry_check_times {
$node_wait{$node} = time() + $wait_time;
return;
}
$node_info{$node}{cur_status} = $request_status;
$node_wait{$node} = time() + $wait_time;
return;
@ -1022,14 +1022,14 @@ sub process_request {
my $info_msg = "Invalid OpenBMC Hostname $node_info{$node}{bmc}, can't set to OpenBMC";
xCAT::SvrUtils::sendmsg([1, $info_msg], $callback, $node);
$wait_node_num--;
next;
next;
}
}
# All options parsed and validated. Now lock upload and activate processing, so that only one
# can continue in case multiples are issued for the same node
#
if (($next_status{LOGIN_RESPONSE} eq "RFLASH_FILE_UPLOAD_REQUEST") or
if (($next_status{LOGIN_RESPONSE} eq "RFLASH_FILE_UPLOAD_REQUEST") or
($next_status{LOGIN_RESPONSE} eq "RFLASH_UPDATE_ACTIVATE_REQUEST") or
($next_status{LOGIN_RESPONSE} eq "RFLASH_UPDATE_HOST_ACTIVATE_REQUEST")) {
@ -1039,7 +1039,7 @@ sub process_request {
xCAT::SvrUtils::sendmsg([ 1, $lock_msg ], $callback, $node);
$node_info{$node}{rst} = $lock_msg;
$wait_node_num--;
next;
next;
}
if ($::VERBOSE) {
xCAT::SvrUtils::sendmsg("Acquired the lock for upload and activate process", $callback, $node);
@ -1089,7 +1089,7 @@ rmdir \"/tmp/\$userid\" \n";
}
}
while (1) {
while (1) {
unless ($wait_node_num) {
if ($event_mapping and (ref($event_mapping) ne "HASH")) {
xCAT::SvrUtils::sendmsg("$event_mapping, install the OpenBMC RAS package to obtain more details logging messages.", $callback);
@ -1110,7 +1110,7 @@ rmdir \"/tmp/\$userid\" \n";
# In that case check the rflash log file for this node and extract error from there
unless ($node_info{$node}{rst}) {
my $rflash_log_file = xCAT::Utils->full_path($node.".log", $::XCAT_LOG_RFLASH_DIR);
# Extract the upload error from last line in log file
# Extract the upload error from last line in log file
my $upload_error = `tail $rflash_log_file -n1 | grep "$::FAILED_UPLOAD_MSG"`;
if ($upload_error) {
chomp $upload_error;
@ -1190,7 +1190,7 @@ rmdir \"/tmp/\$userid\" \n";
foreach my $d (@del) {
delete $node_wait{$d};
}
}
}
$callback->({ errorcode => [$check] }) if ($check);
return;
@ -1228,20 +1228,20 @@ sub parse_args {
return ([ 1, "Only one option is supported at the same time for $command" ]);
} elsif (scalar(@ARGV) >= 2 and $command eq "reventlog") {
my $option_s;
GetOptions( 's' => \$option_s );
GetOptions( 's' => \$option_s );
return ([ 1, "The -s option is not supported for OpenBMC." ]) if ($option_s);
if ( "resolved" ~~ @ARGV) {
return ([ 1, "$usage_errormsg $reventlog_no_id_resolved_errormsg" ]);
}
return ([ 1, "Only one option is supported at the same time for $command" ]);
} elsif (scalar(@ARGV) == 0 and $command =~ /rpower|rspconfig|rflash/) {
return ([ 1, "No option specified for $command" ]);
} else {
} else {
$subcommand = $ARGV[0];
}
if ($command eq "rbeacon") {
if ($command eq "rbeacon") {
unless ($subcommand =~ /^on$|^off$|^stat$/) {
return ([ 1, "Only 'on', 'off' or 'stat' are supported for OpenBMC managed nodes."]);
}
@ -1266,12 +1266,12 @@ sub parse_args {
if ($subcommand =~ /^(\w+)=(.*)/) {
my $key = $1;
my $value = $2;
if (not $value) {
if (not $value) {
return ([ 1, "$usage_errormsg $reventlog_no_id_resolved_errormsg" ]);
}
my $nodes_num = @$noderange;
if (@$noderange > 1) {
if (@$noderange > 1) {
return ([ 1, "Resolving faults over a xCAT noderange is not recommended." ]);
}
@ -1385,13 +1385,13 @@ sub parse_args {
# Only files ending on .tar are allowed
if ($opt =~ /.*\.tar$/i) {
$filename_passed = 1;
push (@flash_arguments, $opt);
push (@flash_arguments, $opt);
next;
}
# Check if hex number for the updateid is passed
elsif ($opt =~ /^[[:xdigit:]]+$/i) {
$updateid_passed = 1;
push (@flash_arguments, $opt);
push (@flash_arguments, $opt);
next;
}
# check if option starting with - was passed
@ -1424,16 +1424,16 @@ sub parse_args {
# show options parsed in bypass mode
print "DEBUG filename=$filename_passed, updateid=$updateid_passed, options=$option_flag, tar_file_path=@tarball_path, invalid=$invalid_options rflash_arguments=@flash_arguments\n";
if ($option_flag =~ tr{ }{ } > 0) {
if ($option_flag =~ tr{ }{ } > 0) {
unless ($verbose or $option_flag =~/^-d --no-host-reboot$/) {
return ([ 1, "Multiple options are not supported. Options specified: $option_flag"]);
}
}
if (scalar @flash_arguments > 1) {
if (($option_flag =~ /^-a$|^--activate$|^--delete$/) or ($filename_passed and $option_flag !~ /^-d$/)) {
# Handles:
# - Multiple options not supported to activate/delete at the same time
if (($option_flag =~ /^-a$|^--activate$|^--delete$/) or ($filename_passed and $option_flag !~ /^-d$/)) {
# Handles:
# - Multiple options not supported to activate/delete at the same time
# - Filename passed in and option is not -d for directory
return ([1, "More than one firmware specified is not supported."]);
} elsif ($option_flag =~ /^-d$/) {
@ -1477,13 +1477,13 @@ sub parse_args {
return ([ 1, "Invalid firmware specified with $option_flag" ]);
} else {
return ([ 1, "Invalid option specified" ]);
}
}
} else {
# Neither Filename nor updateid was not passed, check flags allowed without file or updateid
if ($option_flag !~ /^-c$|^--check$|^-l$|^--list$/) {
return ([ 1, "Invalid option specified with $option_flag: $invalid_options" ]);
}
}
}
}
} else {
return ([ 1, "Command is not supported." ]);
@ -1515,7 +1515,7 @@ sub parse_command_status {
$next_status{LOGIN_REQUEST} = "LOGIN_RESPONSE";
if ($command eq "rbeacon") {
if ($command eq "rbeacon") {
$subcommand = $$subcommands[0];
if ($subcommand eq "on") {
@ -1576,9 +1576,9 @@ sub parse_command_status {
$next_status{RINV_FIRM_RESPONSE}{NO_PENDING} = "RPOWER_BMCREBOOT_REQUEST";
$next_status{RPOWER_BMCREBOOT_REQUEST} = "RPOWER_RESET_RESPONSE";
$status_info{RPOWER_RESET_RESPONSE}{argv} = "$subcommand";
$status_info{RINV_FIRM_RESPONSE}{check} = 1;
$status_info{RINV_FIRM_RESPONSE}{check} = 1;
}
}
}
if ($command eq "rinv") {
if (defined($$subcommands[0])) {
@ -1619,7 +1619,7 @@ sub parse_command_status {
if (defined($::OPENBMC_FW) && ($::OPENBMC_FW < 1738)) {
#
# In 1738, the endpount URL changed. In order to support the older URL as a work around, allow for a environment
# variable to change this value.
# variable to change this value.
#
$::RSETBOOT_URL_PATH = "boot_source";
$status_info{RSETBOOT_SET_REQUEST}{init_url} = "$openbmc_project_url/control/host0/$::RSETBOOT_URL_PATH/attr/BootSource";
@ -1743,8 +1743,8 @@ sub parse_command_status {
# Setup chain for query subcommand
if ($api_config_info{$::RSPCONFIG_CONFIGURED_API_KEY}{type} eq "action_attribute") {
$next_status{LOGIN_RESPONSE} = "RSPCONFIG_API_CONFIG_ACTION_ATTR_QUERY_REQUEST";
$status_info{RSPCONFIG_API_CONFIG_ACTION_ATTR_QUERY_REQUEST}{init_url} =
$status_info{RSPCONFIG_API_CONFIG_ACTION_ATTR_QUERY_REQUEST}{init_url} .
$status_info{RSPCONFIG_API_CONFIG_ACTION_ATTR_QUERY_REQUEST}{init_url} =
$status_info{RSPCONFIG_API_CONFIG_ACTION_ATTR_QUERY_REQUEST}{init_url} .
$api_config_info{$::RSPCONFIG_CONFIGURED_API_KEY}{url} .
$api_config_info{$::RSPCONFIG_CONFIGURED_API_KEY}{query_url};
$next_status{RSPCONFIG_API_CONFIG_ACTION_ATTR_QUERY_REQUEST} = "RSPCONFIG_API_CONFIG_QUERY_RESPONSE";
@ -1836,11 +1836,11 @@ sub parse_command_status {
} else {
$next_status{LOGIN_RESPONSE} = "RSPCONFIG_DUMP_DOWNLOAD_REQUEST";
$next_status{RSPCONFIG_DUMP_DOWNLOAD_REQUEST} = "RSPCONFIG_DUMP_DOWNLOAD_RESPONSE";
$status_info{RSPCONFIG_DUMP_DOWNLOAD_REQUEST}{init_url} =~ s/#ID#/$$subcommands[2]/g;
$status_info{RSPCONFIG_DUMP_DOWNLOAD_REQUEST}{init_url} =~ s/#ID#/$$subcommands[2]/g;
$status_info{RSPCONFIG_DUMP_DOWNLOAD_REQUEST}{argv} = $$subcommands[2];
}
} else {
# this section handles the dump support where no options are given and xCAT will
# this section handles the dump support where no options are given and xCAT will
# # handle the creation, waiting, and download of the dump across a given noderange
# Verify directory for download is there
unless (-d $::XCAT_LOG_DUMP_DIR) {
@ -1999,7 +1999,7 @@ sub parse_command_status {
$tarfile_path =xCAT::Utils->full_path($update_file, $::cwd);
}
}
# Filename or file id was specified
# Filename or file id was specified
if ($update_file =~ /.*\.tar$/) {
# Filename ending on .tar was specified
if (File::Spec->file_name_is_absolute($update_file)) {
@ -2027,11 +2027,11 @@ sub parse_command_status {
my $purpose_version_in_file = `$grep_cmd $purpose_tag $::UPLOAD_FILE`;
chomp($firmware_version_in_file);
chomp($purpose_version_in_file);
(my $purpose_string,$purpose_value) = split("=", $purpose_version_in_file);
(my $version_string,$version_value) = split("=", $firmware_version_in_file);
(my $purpose_string,$purpose_value) = split("=", $purpose_version_in_file);
(my $version_string,$version_value) = split("=", $firmware_version_in_file);
if ($purpose_value =~ /host/) {
$purpose_value = "Host";
}
}
$::UPLOAD_FILE_VERSION = $version_value;
if (-x $sha512sum_cmd && -x $tr_cmd) {
# Save hash id this firmware version should resolve to:
@ -2095,7 +2095,7 @@ sub parse_command_status {
if ($streamline) {
$::UPLOAD_ACTIVATE_STREAM = 1;
if ($nohost_reboot) {
$::RFLASH_STREAM_NO_HOST_REBOOT = 1;
$::RFLASH_STREAM_NO_HOST_REBOOT = 1;
$nohost_reboot = 0;
}
$streamline = 0;
@ -2213,7 +2213,7 @@ sub parse_command_status {
$next_status{RPOWER_CHECK_ON_REQUEST} = "RPOWER_CHECK_ON_RESPONSE";
$next_status{RPOWER_CHECK_ON_RESPONSE}{OFF} = "RPOWER_ON_REQUEST";
}
}
}
}
return;
}
@ -2251,9 +2251,9 @@ sub fork_process_login {
#
#=head3 get_functional_software_ids
#
# Checks if the FW response data contains "functional" which
# indicates the actual software version currently running on
# the Server.
# Checks if the FW response data contains "functional" which
# indicates the actual software version currently running on
# the Server.
#
# Returns: reference to hash
#
@ -2267,7 +2267,7 @@ sub get_functional_software_ids {
#
# Get the functional IDs to accurately mark the active running FW
#
if (${ $response->{data} }{'/xyz/openbmc_project/software/functional'} ) {
if (${ $response->{data} }{'/xyz/openbmc_project/software/functional'} ) {
my %func_data = %{ ${ $response->{data} }{'/xyz/openbmc_project/software/functional'} };
foreach ( @{$func_data{endpoints}} ) {
my $fw_id = (split '/', $_)[-1];
@ -2358,7 +2358,7 @@ sub parse_node_info {
Generate request's information
If the node has method itself, use it as request's method.
If not, use method %status_info defined.
If the node has cur_url, check whether also has sub_urls.
If the node has cur_url, check whether also has sub_urls.
If has, request's url is join cur_url and one in sub_urls(use one at once to check which is needed).
If not, use method %status_info defined.
use xCAT::OPENBMC->send_request send request
@ -2434,7 +2434,7 @@ sub gen_send_request {
=head3 deal_with_response
Check response's status_line and
Check response's status_line and
Input:
$handle_id: Async return ID with response
$response: Async return response
@ -2462,13 +2462,13 @@ sub deal_with_response {
$error = "BMC NotReady";
xCAT::SvrUtils::sendmsg($error, $callback, $node);
$wait_node_num--;
return;
return;
}
if ($node_info{$node}{cur_status} eq "RPOWER_BMC_STATUS_RESPONSE" and defined $status_info{RPOWER_BMC_STATUS_RESPONSE}{argv} and $status_info{RPOWER_BMC_STATUS_RESPONSE}{argv} =~ /bmcstate$/) {
retry_check_times($node, "RPOWER_BMC_STATUS_REQUEST", "bmc_conn_check_times", $::BMC_CHECK_INTERVAL, $response->status_line);
return;
}
if ($response->status_line eq $::RESPONSE_SERVICE_UNAVAILABLE) {
$error = $::RESPONSE_SERVICE_UNAVAILABLE;
} elsif ($response->status_line eq $::RESPONSE_METHOD_NOT_ALLOWED) {
@ -2477,13 +2477,13 @@ sub deal_with_response {
} else {
# Special processing for file upload. At this point we do not know how to
# form a proper file upload request. It always fails with "Method not allowed" error.
# If that happens, just assume it worked.
# If that happens, just assume it worked.
# TODO remove this block when proper request can be generated
$status_info{ $node_info{$node}{cur_status} }->{process}->($node, $response);
$status_info{ $node_info{$node}{cur_status} }->{process}->($node, $response);
return;
}
} elsif ($response->status_line eq $::RESPONSE_SERVICE_TIMEOUT) {
if ($node_info{$node}{cur_status} eq "RPOWER_RESET_RESPONSE" and defined $status_info{RPOWER_RESET_RESPONSE}{argv} and $status_info{RPOWER_RESET_RESPONSE}{argv} =~ /bmcreboot$/) {
if ($node_info{$node}{cur_status} eq "RPOWER_RESET_RESPONSE" and defined $status_info{RPOWER_RESET_RESPONSE}{argv} and $status_info{RPOWER_RESET_RESPONSE}{argv} =~ /bmcreboot$/) {
my $infomsg = "BMC $::POWER_STATE_REBOOT";
xCAT::SvrUtils::sendmsg($infomsg, $callback, $node);
if ($::UPLOAD_ACTIVATE_STREAM) {
@ -2492,15 +2492,15 @@ sub deal_with_response {
}else{
$wait_node_num--;
return;
}
}
}
$error = $::RESPONSE_SERVICE_TIMEOUT;
} else {
my $response_info = decode_json $response->content;
# Handle 500
# Handle 500
if ($response->status_line eq $::RESPONSE_SERVER_ERROR) {
$error = "[" . $response->code . "] " . $response_info->{'data'}->{'exception'};
# Handle 403
# Handle 403
} elsif ($response->status_line eq $::RESPONSE_FORBIDDEN) {
#
# For any invalid data that we can detect, provide a better response message
@ -2523,20 +2523,20 @@ sub deal_with_response {
} else{
$error = "$::RESPONSE_FORBIDDEN - Requested endpoint does not exist or may indicate function is not yet supported by OpenBMC firmware.";
}
# Handle 404
# Handle 404
} elsif ($response->status_line eq $::RESPONSE_NOT_FOUND) {
#
# For any invalid data that we can detect, provide a better response message
#
if ($node_info{$node}{cur_status} eq "RFLASH_DELETE_IMAGE_RESPONSE") {
if ($node_info{$node}{cur_status} eq "RFLASH_DELETE_IMAGE_RESPONSE") {
$error = "Invalid ID provided to delete. Use the -l option to view valid firmware IDs.";
} elsif (($node_info{$node}{cur_status} eq "RSPCONFIG_API_CONFIG_QUERY_RESPONSE") ||
($node_info{$node}{cur_status} eq "RSPCONFIG_API_CONFIG_ATTR_RESPONSE")) {
} elsif (($node_info{$node}{cur_status} eq "RSPCONFIG_API_CONFIG_QUERY_RESPONSE") ||
($node_info{$node}{cur_status} eq "RSPCONFIG_API_CONFIG_ATTR_RESPONSE")) {
$error = "$::RESPONSE_NOT_FOUND - Requested endpoint does not exist or may indicate function is not supported on this OpenBMC firmware.";
} else {
$error = "[" . $response->code . "] " . $response_info->{'data'}->{'description'};
}
} else {
$error = "[" . $response->code . "] " . $response_info->{'data'}->{'description'};
}
@ -2586,7 +2586,7 @@ sub process_debug_info {
}
xCAT::SvrUtils::sendmsg("$flag_debug $debug_msg", $callback, $ts_node);
xCAT::MsgUtils->trace(0, "D", "$flag_debug $node $debug_msg");
xCAT::MsgUtils->trace(0, "D", "$flag_debug $node $debug_msg");
}
#-------------------------------------------------------
@ -2615,7 +2615,7 @@ sub login_request {
my $login_response = $brower->request($login_request);
# Check the return code
if ($login_response->code eq 500 or $login_response->code eq 404) {
if ($login_response->code eq 500 or $login_response->code eq 404) {
# handle only 404 and 504 in this code, defer to deal_with_response for the rest
xCAT::SvrUtils::sendmsg([1 ,"[" . $login_response->code . "] Login to BMC failed: " . $login_response->status_line . "."], $callback, $node);
return 1;
@ -2669,7 +2669,7 @@ sub rpower_response {
my $response_info = decode_json $response->content;
if ($node_info{$node}{cur_status} eq "RPOWER_ON_RESPONSE") {
if ($response_info->{'message'} eq $::RESPONSE_OK) {
if ($status_info{RPOWER_ON_RESPONSE}{argv}) {
@ -2961,12 +2961,12 @@ sub rinv_response {
#
# For 'rinv firm', only print Active software, unless verbose is specified
#
if ( (%{$functional} and exists($functional->{$sw_id}) ) or
(!%{$functional} and $activation_value =~ "Active" and $priority_value == 0) or
if ( (%{$functional} and exists($functional->{$sw_id}) ) or
(!%{$functional} and $activation_value =~ "Active" and $priority_value == 0) or
$::VERBOSE ) {
#
# The space below between "Firmware Product Version:" and $content{Version} is intentional
# to cause the sorting of this line before any additional info lines
# to cause the sorting of this line before any additional info lines
#
$content_info = "$purpose_value Firmware Product: $content{Version} ($activation_value)";
my $indicator = "";
@ -2977,12 +2977,12 @@ sub rinv_response {
$indicator = "*";
}
$content_info .= $indicator;
push (@sorted_output, $content_info);
if (defined($content{ExtendedVersion}) and $content{ExtendedVersion} ne "") {
push (@sorted_output, $content_info);
if (defined($content{ExtendedVersion}) and $content{ExtendedVersion} ne "") {
# ExtendedVersion is going to be a comma separated list of additional software
my @versions = split(',', $content{ExtendedVersion});
foreach my $ver (@versions) {
foreach my $ver (@versions) {
$content_info = "$purpose_value Firmware Product: -- additional info: $ver";
push (@sorted_output, $content_info);
}
@ -2994,7 +2994,7 @@ sub rinv_response {
if (! defined $content{Present}) {
# If the Present field is not part of the attribute, then it's most likely a callout
# Do not print as part of the inventory response
next;
next;
}
# SPECIAL CASE: If 'serial' or 'model' is specified, only return the system level information
@ -3024,7 +3024,7 @@ sub rinv_response {
@sorted_output = () if ($status_info{RINV_FIRM_RESPONSE}{check});
# If sorted array has any contents, sort it naturally and print it
if (scalar @sorted_output > 0) {
# sort alpha, then numeric
# sort alpha, then numeric
foreach (sort natural_sort_cmp @sorted_output) {
#
# The firmware output requires the ID to be part of the string to sort correctly.
@ -3105,7 +3105,7 @@ sub rsetboot_response {
my $node = shift;
my $response = shift;
my $response_info = decode_json $response->content;
my $response_info = decode_json $response->content;
if ($node_info{$node}{cur_status} eq "RSETBOOT_STATUS_RESPONSE") {
my $one_time_enabled;
@ -3170,7 +3170,7 @@ sub rbeacon_response {
if ($response_info->{'message'} eq $::RESPONSE_OK) {
xCAT::SvrUtils::sendmsg("$::BEACON_STATE_ON", $callback, $node);
}
}
}
if ($node_info{$node}{cur_status} eq "RBEACON_OFF_RESPONSE") {
if ($response_info->{'message'} eq $::RESPONSE_OK) {
@ -3240,7 +3240,7 @@ sub reventlog_response {
if ($node_info{$node}{cur_url}) {
$next_status{"REVENTLOG_RESOLVED_RESPONSE"} = "REVENTLOG_RESOLVED_REQUEST";
} else {
# Break out of this loop if there are no more IDs to resolve
# Break out of this loop if there are no more IDs to resolve
$wait_node_num--;
return;
}
@ -3264,14 +3264,14 @@ sub reventlog_response {
push @{ $status_info{REVENTLOG_RESOLVED_RESPONSE}{remain_entries} }, @entries;
}
else {
# Return if there are no entries with callout data
# Return if there are no entries with callout data
xCAT::SvrUtils::sendmsg("There are no event log entries contributing to LED fault", $callback, $node);
$wait_node_num--;
return;
}
} else {
my $entry_string = $status_info{REVENTLOG_RESPONSE}{argv};
my $content_info;
my $content_info;
my %output = ();
my $entry_num = 0;
$entry_string = "all" if ($entry_string eq "0");
@ -3446,12 +3446,12 @@ sub rspconfig_response {
}
my ($path, $adapter_id) = (split(/\/ipv4\//, $key_url));
if ($adapter_id) {
if ( (defined($content{Origin}) and $content{Origin} =~ /LinkLocal/) or
if ( (defined($content{Origin}) and $content{Origin} =~ /LinkLocal/) or
(defined($content{Address}) and $content{Address} =~ /^169.254/) ) {
# OpenBMC driver has a interim bug where ZeroConfigIP comes up as DHCP instead of LinkLocal.
# To protect xCAT while the drivers change, check the 169.254 IP also
# To protect xCAT while the drivers change, check the 169.254 IP also
if ($xcatdebugmode) {
my $debugmsg = "Found LocalLink " . $content{Address} . " for interface " . $key_url . " Ignoring...";
process_debug_info($node, $debugmsg);
@ -3509,13 +3509,13 @@ sub rspconfig_response {
if (scalar (keys %nicinfo) == 0) {
my $error = "No valid BMC network information";
xCAT::SvrUtils::sendmsg([1, "$error"], $callback, $node);
$node_info{$node}{cur_status} = "";
$node_info{$node}{cur_status} = "";
} else {
my @address = ();
my @ipsrc = ();
my @netmask = ();
my @gateway = ();
my @vlan = ();
my @vlan = ();
my @ntpservers = ();
my $real_ntp_server = 0;
my @nics = keys %nicinfo;
@ -3562,25 +3562,25 @@ sub rspconfig_response {
next;
}
if ($opt eq "ip") {
push @output, @address;
push @output, @address;
} elsif ($opt eq "ipsrc") {
push @output, @ipsrc;
} elsif ($opt eq "netmask") {
push @output, @netmask;
} elsif ($opt eq "gateway") {
push @output, @gateway;
push @output, @gateway;
} elsif ($opt eq "vlan") {
push @output, @vlan;
}
}
xCAT::SvrUtils::sendmsg("$_", $callback, $node) foreach (@output);
if ($multiple_error and $mul_out) {
xCAT::SvrUtils::sendmsg([1, "$multiple_error"], $callback, $node);
$wait_node_num--;
return;
}
if ($grep_string eq "all") {
# If all current values equal the input, just print out message
my @checks = split("-", $status_info{RSPCONFIG_CHECK_RESPONSE}{argv});
@ -3625,7 +3625,7 @@ sub rspconfig_response {
}
}
}
my $origin_type;
if ($node_info{$node}{cur_status} eq "RSPCONFIG_CHECK_RESPONSE") {
my @checks = split("-", $status_info{RSPCONFIG_CHECK_RESPONSE}{argv});
@ -3736,7 +3736,7 @@ sub rspconfig_response {
}
} else {
$wait_node_num--;
}
}
}
#-------------------------------------------------------
@ -3781,9 +3781,9 @@ sub rspconfig_api_config_response {
}
elsif ($node_info{$node}{cur_status} eq "RSPCONFIG_API_CONFIG_ATTR_RESPONSE") {
if ($response_info->{'message'} eq $::RESPONSE_OK) {
xCAT::SvrUtils::sendmsg("BMC Setting ".
$api_config_info{$::RSPCONFIG_CONFIGURED_API_KEY}{display_name} .
"... " .
xCAT::SvrUtils::sendmsg("BMC Setting ".
$api_config_info{$::RSPCONFIG_CONFIGURED_API_KEY}{display_name} .
"... " .
$api_config_info{$::RSPCONFIG_CONFIGURED_API_KEY}{instruct_msg}, $callback, $node);
}
else {
@ -3803,7 +3803,7 @@ sub rspconfig_api_config_response {
}
}
} else {
# "data" is not a hash, field contains the value
# "data" is not a hash, field contains the value
$value = $response_info->{data};
}
if (($value eq "0") || ($value eq "1")) {
@ -3820,7 +3820,7 @@ sub rspconfig_api_config_response {
if ($value) {
xCAT::SvrUtils::sendmsg($api_config_info{$::RSPCONFIG_CONFIGURED_API_KEY}{display_name} . " : $last_component", $callback, $node);
my $found = grep(/$value/, @valid_values);
if ($found eq 0) {
if ($found eq 0) {
# Received data value not expected
xCAT::SvrUtils::sendmsg("WARNING: Unexpected value set: $value", $callback, $node);
xCAT::SvrUtils::sendmsg("WARNING: Valid values: " . join(",", @valid_values), $callback, $node);
@ -3962,7 +3962,7 @@ sub rspconfig_dump_response {
my $id;
if (defined $content{Elapsed}) {
$id = $key_url;
$id =~ s/.*\///g;
$id =~ s/.*\///g;
if ($node_info{$node}{cur_status} eq "RSPCONFIG_DUMP_CHECK_RESPONSE") {
if ($id eq $node_info{$node}{dump_id}) {
@ -3976,8 +3976,8 @@ sub rspconfig_dump_response {
$mon += 1;
$year += 1900;
my $UTC_time = sprintf ("%02d/%02d/%04d %02d:%02d:%02d", $mon, $mday, $year, $hour, $min, $sec);
$dump_info{$id} = "[$id] Generated: $UTC_time, Size: $content{Size}";
$dump_info{$id} = "[$id] Generated: $UTC_time, Size: $content{Size}";
if ($::RSPCONFIG_DUMP_DOWNLOAD_ALL_REQUESTED) {
# Save dump info for later, when dump download all
$node_info{$node}{dump_info}{$id} = "[$id] Generated: $UTC_time, Size: $content{Size}";
@ -3986,7 +3986,7 @@ sub rspconfig_dump_response {
}
xCAT::SvrUtils::sendmsg("$::NO_ATTRIBUTES_RETURNED", $callback, $node) if (!%dump_info and $node_info{$node}{cur_status} eq "RSPCONFIG_DUMP_LIST_RESPONSE");
# If processing the "download all" request, do not print anything now.
# If processing the "download all" request, do not print anything now.
# Download function dump_download_process() will be
# printing the output for each downloaded dump
unless ($::RSPCONFIG_DUMP_DOWNLOAD_ALL_REQUESTED) {
@ -4000,7 +4000,7 @@ sub rspconfig_dump_response {
$node_info{$node}{dump_wait_attemp} = $::RSPCONFIG_DUMP_MAX_RETRY;
}
if ( $node_info{$node}{dump_wait_attemp} > 0) {
$node_info{$node}{dump_wait_attemp} --;
$node_info{$node}{dump_wait_attemp} --;
retry_after($node, "RSPCONFIG_DUMP_LIST_REQUEST", $::RSPCONFIG_DUMP_INTERVAL);
unless ($node_info{$node}{dump_wait_attemp} % int(8)) { # display message every 8 iterations of the interval
xCAT::SvrUtils::sendmsg("Still waiting for dump $node_info{$node}{dump_id} to be generated...", $callback, $node);
@ -4012,7 +4012,7 @@ sub rspconfig_dump_response {
return;
}
}
}
}
if ($node_info{$node}{cur_status} eq "RSPCONFIG_DUMP_DOWNLOAD_ALL_RESPONSE") {
&dump_download_all_process($node);
}
@ -4047,7 +4047,7 @@ sub rspconfig_dump_response {
$wait_node_num--;
return;
}
}
}
}
if ($node_info{$node}{cur_status} eq "RSPCONFIG_DUMP_CLEAR_RESPONSE") {
@ -4058,7 +4058,7 @@ sub rspconfig_dump_response {
my $error_msg = "Could not clear BMC diagnostics successfully (". $response_info->{'message'} . ")";
xCAT::MsgUtils->message("W", { data => ["$node: $error_msg"] }, $callback) if ($next_status{ $node_info{$node}{cur_status} });
}
}
}
if ($next_status{ $node_info{$node}{cur_status} }) {
$node_info{$node}{cur_status} = $next_status{ $node_info{$node}{cur_status} };
@ -4197,7 +4197,7 @@ sub rvitals_response {
my $grep_string;
if ($node_info{$node}{cur_status} =~ "RVITALS_LEDS_RESPONSE") {
$grep_string = $status_info{RVITALS_LEDS_RESPONSE}{argv};
} else {
} else {
$grep_string = $status_info{RVITALS_RESPONSE}{argv};
}
my $src;
@ -4210,7 +4210,7 @@ sub rvitals_response {
my %content = %{ ${ $response_info->{data} }{$key_url} };
my $label = (split(/\//, $key_url))[ -1 ];
# replace underscore with space, uppercase the first letter
# replace underscore with space, uppercase the first letter
$label =~ s/_/ /g;
$label =~ s/\b(\w)/\U$1/g;
@ -4221,16 +4221,16 @@ sub rvitals_response {
$calc_value = (split(/\./, $content{State}))[-1];
$content_info = $label . ": " . $calc_value ;
if ($key_url =~ "fan0") { $leds{fan0} = $calc_value; }
if ($key_url =~ "fan1") { $leds{fan1} = $calc_value; }
if ($key_url =~ "fan2") { $leds{fan2} = $calc_value; }
if ($key_url =~ "fan3") { $leds{fan3} = $calc_value; }
if ($key_url =~ "front_id") { $leds{front_id} = $calc_value; }
if ($key_url =~ "front_fault") { $leds{front_fault} = $calc_value; }
if ($key_url =~ "front_power") { $leds{front_power} = $calc_value; }
if ($key_url =~ "rear_id") { $leds{rear_id} = $calc_value; }
if ($key_url =~ "rear_fault") { $leds{rear_fault} = $calc_value; }
if ($key_url =~ "rear_power") { $leds{rear_power} = $calc_value; }
if ($key_url =~ "fan0") { $leds{fan0} = $calc_value; }
if ($key_url =~ "fan1") { $leds{fan1} = $calc_value; }
if ($key_url =~ "fan2") { $leds{fan2} = $calc_value; }
if ($key_url =~ "fan3") { $leds{fan3} = $calc_value; }
if ($key_url =~ "front_id") { $leds{front_id} = $calc_value; }
if ($key_url =~ "front_fault") { $leds{front_fault} = $calc_value; }
if ($key_url =~ "front_power") { $leds{front_power} = $calc_value; }
if ($key_url =~ "rear_id") { $leds{rear_id} = $calc_value; }
if ($key_url =~ "rear_fault") { $leds{rear_fault} = $calc_value; }
if ($key_url =~ "rear_power") { $leds{rear_power} = $calc_value; }
} else {
# print out Sensor info
@ -4238,43 +4238,43 @@ sub rvitals_response {
# Skip over attributes that are not asked to be printed
#
if ($grep_string =~ "temp") {
unless ( $content{Unit} =~ "DegreesC") { next; }
}
unless ( $content{Unit} =~ "DegreesC") { next; }
}
if ($grep_string =~ "voltage") {
unless ( $content{Unit} =~ "Volts") { next; }
}
unless ( $content{Unit} =~ "Volts") { next; }
}
if ($grep_string =~ "wattage") {
unless ( $content{Unit} =~ "Watts") { next; }
}
unless ( $content{Unit} =~ "Watts") { next; }
}
if ($grep_string =~ "fanspeed") {
unless ( $content{Unit} =~ "RPMS") { next; }
}
unless ( $content{Unit} =~ "RPMS") { next; }
}
if ($grep_string =~ "power") {
unless ( $content{Unit} =~ "Amperes" || $content{Unit} =~ "Joules" || $content{Unit} =~ "Watts" ) { next; }
}
unless ( $content{Unit} =~ "Amperes" || $content{Unit} =~ "Joules" || $content{Unit} =~ "Watts" ) { next; }
}
if ($grep_string =~ "altitude") {
unless ( $content{Unit} =~ "Meters" ) { next; }
}
}
#
# Calculate the adjusted value based on the scale attribute
#
#
$calc_value = $content{Value};
if (!defined($calc_value)) {
# Handle the bug where the keyword in the API is lower case value
# Handle the bug where the keyword in the API is lower case value
$calc_value = $content{value};
}
if (defined $content{Scale} and $content{Scale} != 0) {
if (defined $content{Scale} and $content{Scale} != 0) {
$calc_value = ($content{Value} * (10 ** $content{Scale}));
}
}
$content_info = $label . ": " . $calc_value;
if (defined($content{Unit})) {
if (defined($content{Unit})) {
$content_info = $content_info . " " . $sensor_units{ $content{Unit} };
}
push (@sorted_output, $content_info); #Save output in array
}
}
}
if ($node_info{$node}{cur_status} =~ "RVITALS_LEDS_RESPONSE") {
@ -4404,7 +4404,7 @@ sub rflash_response {
#
$update_activation = $update_activation . "(*)";
} elsif ($update_priority == 0) {
# Priority attribute of 0 indicates the firmware to be activated on next boot
# Priority attribute of 0 indicates the firmware to be activated on next boot
my $indicator = "(+)";
if (!%{$functional}) {
# cannot detect, so mark firmware as Active
@ -4490,7 +4490,7 @@ sub rflash_response {
# Special processing for file upload
#
# Unable to form a proper file upload request to the BMC, it fails with: 405 Method Not Allowed
# For now, always upload using curl commands.
# For now, always upload using curl commands.
#
# TODO: Remove this block when proper request can be generated
#
@ -4545,7 +4545,7 @@ sub rflash_response {
if ($version ne $::UPLOAD_FILE_VERSION and $version ne $::UPLOAD_PNOR_VERSION) {
next;
}
# Get values of some attributes to determine activation status
# Get values of some attributes to determine activation status
$activation_state{$version} = $content{Activation};
$progress_state{$version} = $content{Progress};
$priority_state{$version} = $content{Priority};
@ -4586,11 +4586,11 @@ sub rflash_response {
} elsif ($activation_state{$firm_version} =~ /Software.Activation.Activations.Active/) {
if (scalar($priority_state{$firm_version}) == 0) {
$version_num ++;
my $flash_success_msg = "$node: $firm_msg activation successful.";
my $flash_success_msg = "$node: $firm_msg activation successful.";
push @{ $rsp->{data} },$flash_success_msg;
# Activation state of active and priority of 0 indicates the activation has been completed
if ( $length == $version_num ) {
xCAT::MsgUtils->message("I", $rsp, $callback) if ($rsp);
if ( $length == $version_num ) {
xCAT::MsgUtils->message("I", $rsp, $callback) if ($rsp);
print RFLASH_LOG_FILE_HANDLE "$flash_success_msg\n";
$node_info{$node}{rst} = "$flash_success_msg";
if (!$::UPLOAD_ACTIVATE_STREAM) {
@ -4606,7 +4606,7 @@ sub rflash_response {
print "$firm_version update is already active, just need to set priority to 0\n";
if ($::UPLOAD_ACTIVATE_STREAM) {
$status_info{RFLASH_SET_PRIORITY_REQUEST}{init_url} =
$::SOFTWARE_URL . "/$update_ids{$firm_version}/attr/Priority";
$::SOFTWARE_URL . "/$update_ids{$firm_version}/attr/Priority";
}
$next_status{ $node_info{$node}{cur_status} } = "RFLASH_SET_PRIORITY_REQUEST";
}
@ -4659,7 +4659,7 @@ sub rflash_response {
$found_match = 1;
# Found a match of uploaded file version with the image in software/enumerate
# If we have a saved expected hash ID, compare it to the one just found
# If we have a saved expected hash ID, compare it to the one just found
if ($::UPLOAD_FILE_HASH_ID && ($::UPLOAD_FILE_HASH_ID ne $update_id)) {
xCAT::SvrUtils::sendmsg([1,"Firmware uploaded but activation cancelled due to hash ID mismatch. $update_id does not match expected $::UPLOAD_FILE_HASH_ID. Verify BMC firmware is at the latest level."], $callback, $node);
$wait_node_num--;
@ -4774,9 +4774,9 @@ sub rflash_upload {
my $curl_error = "$::FAILED_UPLOAD_MSG. Did not receive response from OpenBMC after running command '$curl_login_cmd'";
xCAT::SvrUtils::sendmsg([1, "$curl_error"], $callback, $node);
print RFLASH_LOG_FILE_HANDLE "$curl_error\n";
$node_info{$node}{rst} = "$curl_error";
$node_info{$node}{rst} = "$curl_error";
return 1;
}
}
eval { $h = from_json($curl_login_result) }; # convert command output to hash
if ($@) {
my $curl_error = "$::FAILED_UPLOAD_MSG. Received wrong format response for command '$curl_login_cmd': $curl_login_result";
@ -4812,7 +4812,7 @@ sub rflash_upload {
if ($xcatdebugmode) {
my $debugmsg = "RFLASH_FILE_UPLOAD_RESPONSE: CMD: $upload_cmd";
process_debug_info($node, $debugmsg);
}
}
my $curl_upload_result = `$upload_cmd`;
if (!$curl_upload_result) {
my $curl_error = "$::FAILED_UPLOAD_MSG. Did not receive response from OpenBMC after running command '$upload_cmd'";