In scaling environment, it is possible that our lpar_netboot expect code cann't catch the ok promt after lpar change to open firmware state. Send '\r' command to openfirmware to catch ok promt
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@4154 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
This commit is contained in:
parent
70c97b3334
commit
1271b6ba9f
@ -560,7 +560,7 @@ sub mkvterm {
|
||||
# Give control to the user and intercept
|
||||
# the Ctrl-X (\030), and "~." sequences.
|
||||
##########################################
|
||||
my $escape = "\030";
|
||||
my $escape = "\030|~.";
|
||||
$ssh->send( "\r" );
|
||||
$ssh->interact( \*STDIN, $escape );
|
||||
|
||||
|
@ -370,7 +370,7 @@ proc get_phandle {} {
|
||||
send_command
|
||||
expect {
|
||||
-i $spawn_id_rconsole
|
||||
-re ">" {
|
||||
-re "dev(.*)ok(.*)0 >" {
|
||||
nc_msg "$PROGRAM Status: at root\n"
|
||||
}
|
||||
-re "]" {
|
||||
@ -2078,7 +2078,7 @@ trap {
|
||||
set signal SIG[trap -name]
|
||||
send_user "$PROGRAM: Received signal named '$signal'\n"
|
||||
exec kill -KILL $spawn_id_rconsole $ssh_spawn_id
|
||||
exit 3
|
||||
exit -1
|
||||
} {INT HUP QUIT TERM}
|
||||
|
||||
set timeout 10
|
||||
@ -2290,39 +2290,22 @@ while { ! $done } {
|
||||
sleep 1
|
||||
}
|
||||
|
||||
set retry 0
|
||||
set done 0
|
||||
set timeout 120
|
||||
set timeout 10
|
||||
nc_msg "$PROGRAM Status: Check for active console.\n"
|
||||
while { ! $done } {
|
||||
expect {
|
||||
expect {
|
||||
-i $spawn_id_rconsole
|
||||
-re "(.*)\[SCSI|scsi\](.*)0 >" {
|
||||
nc_msg "$PROGRAM Status: active console\n"
|
||||
set done 1
|
||||
}
|
||||
-re "PowerPC Firmware(.*)SMS(.*)" {
|
||||
nc_msg "$PROGRAM Status: SMS active console\n"
|
||||
set done 1
|
||||
}
|
||||
-re "To select this console as the active console press 0" {
|
||||
nc_msg "$PROGRAM Status: selecting active console\n"
|
||||
exec sleep 1
|
||||
send -i $spawn_id_rconsole "0";
|
||||
}
|
||||
-re "Press 0 to select this console.*as the active console" {
|
||||
nc_msg "$PROGRAM Status: selecting active console\n"
|
||||
exec sleep 1
|
||||
send -i $spawn_id_rconsole "0";
|
||||
}
|
||||
-re "(.*)elect this consol(.*)" {
|
||||
nc_msg "$PROGRAM Status: selecting active console\n"
|
||||
exec sleep 1
|
||||
send -i $spawn_id_rconsole "0";
|
||||
set command "0"
|
||||
send_command
|
||||
}
|
||||
-re "English|French|German|Italian|Spanish|Portuguese|Chinese|Japanese|Korean" {
|
||||
nc_msg "$PROGRAM Status: Languagae Selection Panel received\n"
|
||||
exec sleep 1
|
||||
send -i $spawn_id_rconsole "2\r"
|
||||
set command "2\r"
|
||||
send_command
|
||||
}
|
||||
-re "'admin'" {
|
||||
nc_msg "$PROGRAM Status: No password specified\n"
|
||||
@ -2334,22 +2317,24 @@ while { ! $done } {
|
||||
send_user "$PROGRAM Status: FSP password is invalid.\n"
|
||||
exit 1
|
||||
}
|
||||
-re "0 >" {
|
||||
-re "ok(.*)0 >" {
|
||||
nc_msg "$PROGRAM Status: at ok prompt\n"
|
||||
set done 1
|
||||
}
|
||||
-re "bumped" {
|
||||
exp_continue
|
||||
}
|
||||
timeout {
|
||||
send_user "$PROGRAM: Timeout; exiting\n"
|
||||
exit 1
|
||||
set command "\r"
|
||||
send_command
|
||||
incr retry
|
||||
if { $retry == 9 } {
|
||||
send_user "$PROGRAM: Timeout waiting for ok prompt; exiting.\n"
|
||||
exit 1
|
||||
}
|
||||
}
|
||||
eof {
|
||||
send_user "$PROGRAM: Cannot connect to $NODENAME\n"
|
||||
exit 1
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if { $set_boot_order > 1 } {
|
||||
@ -2358,17 +2343,28 @@ if { $set_boot_order > 1 } {
|
||||
|
||||
global phandle
|
||||
|
||||
#
|
||||
# Call get_phandle to gather information for all the supported network adapters
|
||||
# in the device tree.
|
||||
#
|
||||
get_phandle
|
||||
set done 0
|
||||
set retry 0
|
||||
exec sleep 1
|
||||
while { ! $done } {
|
||||
#
|
||||
# Call get_phandle to gather information for all the supported network adapters
|
||||
# in the device tree.
|
||||
#
|
||||
get_phandle
|
||||
|
||||
if { $rc } {
|
||||
send_user "$PROGRAM: Unable to obtain network adapter information. Quitting.\n"
|
||||
exit 1
|
||||
if { $rc } {
|
||||
incr retry
|
||||
if { $retry == 3 } {
|
||||
send_user "$PROGRAM: Unable to obtain network adapter information. Quitting.\n"
|
||||
exit 1
|
||||
}
|
||||
} else {
|
||||
set done 1
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
# Call multiple_open-dev to circumvent firmware OPEN-DEV failure
|
||||
multiple_open-dev
|
||||
if { $rc } {
|
||||
|
Loading…
Reference in New Issue
Block a user