#
# Populate a list of multi node targets.
#
set slots [ list ]
set slots [ get_multinode_list_for_slot $blade_no ]
#
# Validate it has data.
#
set count [ llength $slots ]
if {$count == 0} {
ft_error "Unable to find any valid multi node configuration."
return 1
}
#
# Get a big timeout value while we flash.
#
set timeout 1000
set complex_name [ lindex $slots 0 ]
ft_log "Attempting to flash complex: $complex_name"
#
# Flash each slot number.
#
foreach slot $slots {
if {$slot == $complex_name} {
continue
}
ft_log "Flashing slot number: $slot"
#
# Send the update command.
#
send -i $amm_id "update -i $tftp_server -l $firmware_image -T system:blade\[$slot\]:sp\r\n"
#
# Process results.
#
set rv 1
expect {
-i $amm_id "successful" { set rv 0 }
-i $amm_id "meant" { set rv 1 }
-i $amm_id "failed" { set rv 1 }
-i $amm_id "*nable*" { set rv 1 }
}
if {$rv == 0} {
ft_log "AMM reports flash success for slot $slot"
} else {
return ${rv}
}
}
#
# Restore the timeout and return the rv.
#
set timeout $g_normal_timeout_value
return 0
}
################################################################################
# #
# Code from source : support/include/FlashBlade.exp #
# #
################################################################################
Chapter 4. Configuring the blade server 95