All pastes #737868 Raw Edit

Unnamed

public text v1 · immutable
·published 2007-10-15 20:05 UTC
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 }
}