mirror of
https://github.com/xcat2/xcat-core.git
synced 2025-05-29 09:13:08 +00:00
Merge pull request #5346 from gurevichmark/ipmi_rflash
rflash for ipmi machines enhancements
This commit is contained in:
commit
4c93552c01
@ -50,6 +50,7 @@ my $xcatdebugmode = 0;
|
||||
|
||||
my $IPMIXCAT = "/opt/xcat/bin/ipmitool-xcat";
|
||||
my $NON_BLOCK = 1;
|
||||
my $BIG_DATA_MACHINE_MODELS = "8001-22C|9006-22C|5104-22C|8001-12C|9006-12C";
|
||||
use constant RFLASH_LOG_DIR => "/var/log/xcat/rflash";
|
||||
if (-d RFLASH_LOG_DIR) {
|
||||
chmod 0700, RFLASH_LOG_DIR;
|
||||
@ -1978,7 +1979,7 @@ sub do_firmware_update {
|
||||
# P9 Boston (9006-22C, 9006-12C, 5104-22C) or P8 Briggs (8001-22C)
|
||||
# firmware update is done using pUpdate utility expected to be in the
|
||||
# specified data directory along with the update files .bin for BMC or .pnor for Host
|
||||
if ($output =~ /8001-22C|9006-22C|5104-22C|8001-12C|9006-12C/) {
|
||||
if ($output =~ /$BIG_DATA_MACHINE_MODELS/) {
|
||||
# Verify valid data directory was specified
|
||||
if (defined $directory_name) {
|
||||
unless (File::Spec->file_name_is_absolute($directory_name)) {
|
||||
@ -2040,6 +2041,7 @@ sub do_firmware_update {
|
||||
$exit_with_error_func->($sessdata->{node}, $callback,
|
||||
"At least one update file (.bin or .pnor) needs to be in data directory $pUpdate_directory.");
|
||||
}
|
||||
|
||||
# All checks are done, run pUpdate utility on each of the update files found in
|
||||
# the specified data directory
|
||||
xCAT::SvrUtils::sendmsg("rflash started, Please wait...", $callback, $sessdata->{node});
|
||||
@ -2105,13 +2107,28 @@ sub do_firmware_update {
|
||||
}
|
||||
|
||||
$exit_with_success_func->($sessdata->{node}, $callback, "Firmware updated, powering chassis on to populate FRU information...");
|
||||
} else {
|
||||
|
||||
# The target machine is *NOT* IBM Power S822LC for Big Data (Supermicro)
|
||||
# Only .hpm files is supported for such machine, no directory option is supported
|
||||
if (defined $directory_name and $output =~ /Chassis Part Number\s*:\s*(\S*)/) {
|
||||
my $model = $1;
|
||||
$exit_with_error_func->($sessdata->{node}, $callback, "Flashing of $model is not supported with pUpdate, supported Model Types: $BIG_DATA_MACHINE_MODELS");
|
||||
}
|
||||
}
|
||||
|
||||
if (($hpm_data_hash{deviceID} ne $sessdata->{device_id}) ||
|
||||
($hpm_data_hash{productID} ne $sessdata->{prod_id}) ||
|
||||
($hpm_data_hash{manufactureID} ne $sessdata->{mfg_id})) {
|
||||
$exit_with_error_func->($sessdata->{node}, $callback,
|
||||
"The image file doesn't match this machine");
|
||||
# If we fall through here, it is *NOT* IBM Power S822LC for Big Data (Supermicro) and we expact some data in hpm_data_hash.
|
||||
# Verify hpm_data_hash has some values
|
||||
|
||||
|
||||
if (!exists($hpm_data_hash{deviceID})
|
||||
|| !exists($hpm_data_hash{manufactureID})
|
||||
|| !exists($hpm_data_hash{productID})) {
|
||||
$exit_with_error_func->($sessdata->{node}, $callback, "Extract data from .hpm update file failed, no deviceID, productID or manufactureID got");
|
||||
} elsif (($hpm_data_hash{deviceID} ne $sessdata->{device_id}) ||
|
||||
($hpm_data_hash{productID} ne $sessdata->{prod_id}) ||
|
||||
($hpm_data_hash{manufactureID} ne $sessdata->{mfg_id})) {
|
||||
$exit_with_error_func->($sessdata->{node}, $callback, "The image file doesn't match target machine: \n$output");
|
||||
}
|
||||
|
||||
# check for 8335-GTB Firmware above 1610A release. If below, exit
|
||||
|
Loading…
x
Reference in New Issue
Block a user