Fixed bug 2728953 about rnetboot/getmacs in Norm's test: use environment variables to save the passwd and userid instead of create one random file

git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@3148 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
This commit is contained in:
wanghuaz 2009-04-09 09:32:55 +00:00
parent f4eda5f591
commit c45d208ed3
3 changed files with 28 additions and 80 deletions

View File

@ -103,17 +103,12 @@ sub ivm_rnetboot {
return( [RC_ERROR,"Command not installed: $cmd"] );
}
#######################################
# Create random temporary userid/pw
# file between 1000000 and 2000000
# Save user name and passwd of hcp to
# environment variables.
# lpar_netboot.expect depends on it
#######################################
my $random = int( rand(1000001)) + 1000000;
my $fname = "/tmp/xCAT-$hcp-$random";
unless ( open( CRED, ">$fname" )) {
return( [RC_ERROR,"Error creating temporary password file '$fname'"]);
}
print CRED "$userid $pw\n";
close( CRED );
$ENV{HCP_USERID} = $userid;
$ENV{HCP_PASSWD} = $pw;
#######################################
# Turn on verbose and debugging
@ -135,7 +130,7 @@ sub ivm_rnetboot {
#######################################
# Add command options
#######################################
$cmd.= " -t ent -f \"$name\" \"$pprofile\" \"$fsp\" $id $hcp $fname \"$node\"";
$cmd.= " -t ent -f \"$name\" \"$pprofile\" \"$fsp\" $id $hcp \"$node\"";
#######################################
# Execute command
@ -151,12 +146,6 @@ sub ivm_rnetboot {
}
close OUTPUT;
#######################################
# If command did not, remove file
#######################################
if ( -r $fname ) {
unlink( $fname );
}
#######################################
# Get command exit code
#######################################

View File

@ -165,17 +165,12 @@ sub ivm_getmacs {
return( [RC_ERROR,"Command not installed: $cmd"] );
}
#######################################
# Create random temporary userid/pw
# file between 1000000 and 2000000
# Save user name and passwd of hcp to
# environment variables.
# lpar_netboot.expect depends on this
#######################################
my $random = int( rand(1000001)) + 1000000;
my $fname = "/tmp/xCAT-$hcp-$random";
unless ( open( CRED, ">$fname" )) {
return( [RC_ERROR,"Error creating temporary password file '$fname'"]);
}
print CRED "$userid $pw\n";
close( CRED );
$ENV{HCP_USERID} = $userid;
$ENV{HCP_PASSWD} = $pw;
#######################################
# Turn on verbose and debugging
@ -198,7 +193,7 @@ sub ivm_getmacs {
#######################################
# Add command options
#######################################
$cmd.= " -t ent -f -M -A -n \"$name\" \"$pprofile\" \"$fsp\" $id $hcp $fname \"$node\"";
$cmd.= " -t ent -f -M -A -n \"$name\" \"$pprofile\" \"$fsp\" $id $hcp \"$node\"";
#######################################
# Execute command
@ -214,12 +209,6 @@ sub ivm_getmacs {
}
close OUTPUT;
#######################################
# If command did not, remove file
#######################################
if ( -r $fname ) {
unlink( $fname );
}
#######################################
# Get command exit code
#######################################

View File

@ -19,37 +19,6 @@ proc nc_msg { msg } {
}
}
#
# PROCEDURE
#
proc read_credentials {} {
global filename
global userid
global passwd
global PROGRAM
if [catch { open $filename "r" } fhandle ] {
send_user "$PROGRAM: Error opening temporary password file $filename\n"
exit 1
}
###############################################
# Read the password from the file,
# then close and immediately delete it
###############################################
set buf [ read $fhandle ]
set cred ""
close $fhandle
exec rm $filename
if { ![regexp {([^ ]+ [^ ]+)\n} $buf match cred ]} {
send_user "$PROGRAM: Error parsing temporary password file $filename\n"
exit 1
}
set userid [ lindex $cred 0 ]
set passwd [ lindex $cred 1 ]
}
#
# PROCEDURE
#
@ -121,7 +90,7 @@ proc run_lssyscfg {} {
global rc
global prompt
set timeout 10
set timeout 20
send -i $ssh_spawn_id "lssyscfg -r lpar -m \"$manage\" --filter lpar_names=\"$node\" -F state; echo Rc=\$\?\r";
expect {
@ -143,7 +112,13 @@ proc run_lssyscfg {} {
exit 1
}
}
# Slow down the requests speed to hcp, so that hcp will not busy on
# query. Instead, hcp should put more time on other activities.
# Another reason to set this sleep is giving some time to the lpars
# to be more stable.
sleep 4
if { $rc } {
send_user "$PROGRAM: Unable to determine machine state\n"
nc_msg "$PROGRAM Status: error from lssyscfg command\n"
@ -245,10 +220,6 @@ proc ck_args {} {
nc_msg "$PROGRAM Status: managed system $manage\n"
}
if { $filename == "" } {
send_user "$PROGRAM: userid/password filename is required\n"
usage
}
if { $hcp == "" } {
send_user "$PROGRAM: Hardware control point address is required\n"
usage
@ -533,7 +504,7 @@ proc get_adap_prop { phandle } {
set adap_prop_list {}
set rc 0
set timeout 60
set timeout 120
set state 0
nc_msg "$PROGRAM Status: get_adap_prop start\n"
@ -1951,7 +1922,6 @@ trap {
#
# Main MAIN main
#
@ -2136,7 +2106,7 @@ if { [llength $argv] < 1 } {
set arg0 [lindex $argv 0]
set arg1 [lindex $argv 1]
if { [llength $argv] > 7 } {
if { [llength $argv] > 6 } {
send_user "$PROGRAM: Extraneous parameter(s)\n"
usage
}
@ -2164,8 +2134,7 @@ set profile [lindex $argv 1]
set manage [lindex $argv 2]
set lparid [lindex $argv 3]
set hcp [lindex $argv 4]
set filename [lindex $argv 5]
set name [lindex $argv 6]
set name [lindex $argv 5]
if {$dev_type_found} { nc_msg "$PROGRAM Status: List only $list_type adapters\n" }
if {$noboot} { nc_msg "$PROGRAM Status: -n (no boot) flag detected\n" }
@ -2203,7 +2172,8 @@ if { ! $noboot } {
}
# Get userid and password
read_credentials
set userid $env(HCP_USERID)
set passwd $env(HCP_PASSWD)
#
# Connect to the remote server
@ -2263,7 +2233,7 @@ if { ([string compare "$msg" "Off"] == 0) || ([string compare "$msg" "Not Activa
} else {
set cmd "chsysstate -r lpar -o shutdown -m \"$manage\" -n \"$node\""
}
set timeout 10
set timeout 30
send -i $ssh_spawn_id "$cmd; echo Rc=\$\?\r";
expect {
@ -2330,7 +2300,7 @@ if { $list_disk == 1 } {
} else {
send_user "# Power on $NODENAME to Open Firmware.\n"
set timeout 20
set timeout 60
send -i $ssh_spawn_id "chsysstate -r lpar -o on -b of -m \"$manage\" -n \"$node\" -f \"$profile\"; echo Rc=\$\?\r"
expect {
@ -2563,7 +2533,7 @@ if { $noboot } { # Display information for all supported adapters
} else {
set cmd "chsysstate -r lpar -o shutdown -m \"$manage\" -n \"$node\""
}
set timeout 10
set timeout 30
send -i $ssh_spawn_id "$cmd; echo Rc=\$\?\r";
expect {