rendered paste body#!/usr/bin/expect -f
set force_conservative 0 ;# set to 1 to force conservative mode even if
;# script wasn't run conservatively originally
if {$force_conservative} {
set send_slow {1 .1}
proc send {ignore arg} {
sleep .1
exp_send -s -- $arg
}
}
set timeout -1
lappend env(PATH) :/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin
set env(TERM) vt100
set env(INPUTRC) /etc/inputrc
set env(LANG) en_US
proc help {} {
puts "\tcuda-power - tool for rebooting(power cycling) CUDA systems in the C327 lab"
puts "\tUsage: cuda-power SYSTEMNAME "
puts "\tWhere SYSTEMNAME is the DNS resolvable hostname of any system in the C327 lab (cuda-linux, cuda-spare, compiler-linux, etc)\n\n"
puts "\tReport bugs to Lonni J Friedman <lfriedman@nvidia.com>\n"
}
proc cuda-power4.exp {power box} {
puts "Trying to telnet into $power"
spawn telnet $power
match_max 100000
expect "Username: "
send -- "admn\r"
expect -exact "Password: "
send -- "admn\r"
expect -exact "Switched CDU: "
send -- "reboot $box\r"
sleep 1
send -- "quit\r"
expect eof
}
# Add a proc for the other ones. Or maybe it is only a differnece in the expect-related text?
switch [lindex $argv 0] {
# Note that the -/-- has issues with expect as started in this script
--help help
-h help
compiler-linux {
cuda-power4.exp cuda-power4 compiler-linux }
cuda-reports {
cuda-power4.exp cuda-power4 cuda-reports }
cuda-linux32-test1 {
cuda-power4.exp cuda-power4 cuda-linux32-test1 }
cuda-win64-minidvs0 {
cuda-power3.exp cuda-power3 cuda-win64-minidvs0 }
cuda-win64-test0 {
cuda-power3.exp cuda-power3 cuda-win64-test0 }
cuda-win64-test1 {
cuda-power3.exp cuda-power3 cuda-win64-test1 }
cuda-spare {
cuda-power3.exp cuda-power3 cuda-spare }
cuda-spare-2 {
cuda-power3.exp cuda-power3 cuda-spare-2 }
cuda-win32-test2 {
cuda-power3.exp cuda-power3 cuda-win32-test2 }
cuda-win32-test0 {
cuda-power2.exp cuda-power2 cuda-win32-test0 }
cuda-win32-test1 {
cuda-power2.exp cuda-power2 cuda-win32-test1 }
cuda-win-gputest0 {
cuda-power2.exp cuda-power2 cuda-win-gputest0 }
cuda-linux-gputest0 {
cuda-power2.exp cuda-power2 cuda-linux-gputest0 }
cuda-linux-gputest1 {
cuda-power2.exp cuda-power2 cuda-linux-gputest1 }
cuda-linux64-test0 {
cuda-power2.exp cuda-power2 cuda-linux64-test0 }
cuda-linux32-test0 {
cuda-power2.exp cuda-power2 cuda-linux32-test0 }
cuda-linux32-minidvs0 {
cuda-power2.exp cuda-power2 cuda-linux32-minidvs0 }
cuda-linux-bench0 {
cuda-power1.exp cuda-power1 cuda-linux-bench0 }
cuda-linux64-minidvs0 {
cuda-power1.exp cuda-power1 cuda-linux64-minidvs0 }
cuda-win-bench0 {
cuda-power1.exp cuda-power1 cuda-win-bench0 }
cuda-win32-minidvs0 {
cuda-power1.exp cuda-power1 cuda-win32-minidvs0 }
cuda-linux-farm0 {
cuda-power0.exp cuda-power0 cuda-linux-farm0 }
cuda-linux-farm1 {
cuda-power0.exp cuda-power0 cuda-linux-farm1 }
cuda-linux-farm2 {
cuda-power0.exp cuda-power0 cuda-linux-farm2 }
cuda-linux-mayor0 {
cuda-power0.exp cuda-power0 cuda-linux-mayor0 }
cuda-linux64 {
cuda-power0.exp cuda-power0 cuda-linux64 }
cuda-linux {
cuda-power0.exp cuda-power0 cuda-linux }
TowerA_Outlet8 {
cuda-power0.exp cuda-power4 TowerA_Outlet8 }
default {
puts "Invalid syntax or unknown system\n"; help }
}