blob: b09cd5356e2b6806977efa01a221a11cff9575c9 [file] [log] [blame]
#!/usr/bin/expect
#
# Reboot a machine connected to a Lantronix SLC8
#
# Copyright 2008 Google Inc., Scott Zawalski <scottz@google.com>
# Released under the GPL v2
set P "reboot-lantronix"
if {[llength $argv] < 3} {
puts stderr "Usage: $P <ts host> <ts port> <outlet>"
exit 1
}
#Max number of attempts before stopping
set max_attempts {5}
set tshost [lindex $argv 0]
set tsport [lindex $argv 1]
set outlet [lindex $argv 2]
set connected {0}
set attempts {0}
while {$connected == 0 && $attempts < $max_attempts} {
spawn telnet $tshost $tsport
sleep 5
send "\r"
set timeout 15
set attempts [expr $attempts +1 ]
expect {
#Connection closed
"Connection closed by foreign host." {
puts "Retrying attempt $attempts"
}
#Already logged in
"RPC-22>" {
send "Reboot $outlet\r"
expect "Reboot Outlet $outlet"
send "Y\r"
expect "Rebooting"
expect "RPC-22"
send "quit\r"
puts "Machine successfully rebooted."
exit 0
}
timeout {
puts "Timed out connecting."
}
}
}
puts "Unable to connect after $attempts connection attempts."
exit 1